我正在尝试将逻辑回归拟合到一个小数据集(17k行,16列)。但它在60多分钟后继续运行,我刚刚结束了它。我的CPU和RAM都没有达到最大值 - 我们只是在开始拟合过程后观察到更高的利用率。为了排除出现严重编码错误的可能性,我使用5行乘16列的数据集测试了相同的代码。它奏效了 - 我能够获得summary
和confints
。因此,必须有另一个问题。
数据集混合了factor
,int
和numerical
个变量。我想分享它的架构,但它包含敏感的专有信息。
我想知道是否有一些可以提出的解决方案,或者下面分享的五十年前老帖子中提出的解决方案是否仍然相关(我现在正在尝试这些旧解决方案)。
数据集维度和代码:
> dim(design_mat_final)
[1] 16812 16
log_model <- glm(label ~.,
family = binomial(link = 'logit'),
data = design_mat_final)
我的会话信息:
> sessionInfo()
R version 3.4.3 (2017-11-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] bindrcpp_0.2 dplyr_0.7.4 bit64_0.9-7 bit_1.1-12 data.table_1.10.4-3
loaded via a namespace (and not attached):
[1] Rcpp_0.12.15 utf8_1.1.3 crayon_1.3.4 assertthat_0.2.0 R6_2.2.2 magrittr_1.5
[7] pillar_1.1.0 cli_1.0.0 rlang_0.1.6 tools_3.4.3 glue_1.2.0 yaml_2.1.16
[13] compiler_3.4.3 pkgconfig_2.0.1 knitr_1.20 bindr_0.1 tibble_1.4.2
与这篇5岁的帖子相关:How to speed up GLM estimation in r?
与这个6岁的CrossValidated帖子相关: https://stats.stackexchange.com/questions/26965/logistic-regression-is-slow
更新
我尝试了speedglm
并且没有明显的效果。