You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何估算R语言中glm函数的运行耗时?

运行时长估算方法及优化建议
  • 抽样预跑测试
    从全量40000条观测中按10%、20%、50%的比例随机抽取分层子样本(抽样时注意保留1800水平因子的全部类别,避免子样本丢失因子水平),分别用glm()运行完全相同的logit模型,记录每个子样本的运行时长。glm的运行时长和样本量基本呈线性正相关,你可以用三个梯度样本的耗时拟合线性趋势,外推得到全样本的预估总时长。比如10%样本耗时1.5分钟、20%耗时2.9分钟、50%耗时7.2分钟的情况下,全样本预估时长在14-15分钟区间,可以和你已跑10分钟未终止的情况交叉验证。
  • 迭代过程监控
    给glm()添加上trace = TRUE的控制参数,代码示例如下:
    glm(因变量 ~ 自变量 + 高维因子变量, data = 数据集, family = binomial(link = "logit"), control = list(trace = TRUE, maxit = 25))
    运行时控制台会输出每一轮迭代的偏差值和单轮耗时,你可以记录前3-5轮的平均单轮耗时,乘以logit模型常规所需的5-15轮收敛迭代数,就能快速估算总耗时。如果前3轮平均每轮要2.2分钟,总耗时大概率在11-33分钟区间。

额外优化提示

你当前运行慢的核心原因是1800水平的因子会被glm()默认生成1799个虚拟变量,大幅拉高模型计算量。如果这个因子是固定效应变量,建议直接更换为fixest包的feglm()函数,该工具专门针对高维固定效应优化,跑你这个量级的logit模型通常几十秒即可得到结果,无需长时间等待。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:15:05