我正在使用Amazon EC2上的RStudio 0.97.320(R 2.15.3)。我的数据框有20万行和12列。
我正在尝试拟合大约1500个参数的逻辑回归模型。
R正在使用7%的CPU和60+GB的内存,但仍需要很长时间。
以下是代码:
glm.1.2 <- glm(formula = Y ~ factor(X1) * log(X2) * (X3 + X4 * (X5 + I(X5^2)) * (X8 + I(X8^2)) + ((X6 + I(X6^2)) * factor(X7))),
family = binomial(logit), data = df[1:150000,])
有什么建议可以显著加快这个过程的速度吗?
var+I(var^2)
,而应该使用poly(var,2)
。你构建了一个非常复杂的公式,很难确定你是否需要这样一个庞然大物。你应该描述研究问题,并获得有关分析设计的进一步建议,最好在CrossValidated上进行。 - IRTFMRcppArmadillo
包中有一个名为fastLm
的函数,演示了如何加速线性回归 http://gallery.rcpp.org/articles/fast-linear-model-with-armadillo/ ,但重新实现GLM需要更多的工作。(2) 安装优化后的BLAS库可能是更容易实现的目标: http://www.r-bloggers.com/faster-r-through-better-blas/。(3) 线性回归可能效果不错,尽管这种情况下 N/P 只有133。(4) 通过glmnet
包尝试惩罚GLM... - Ben Bolker?glm.fit
和?sparse.model.matrix
)可能会提高速度--特别是如果您的因子具有许多级别。 - Ben Bolkerglmnet
,它非常快(采用梯度下降法),并且在拟合1500个参数时,我认为正则化(通过弹性网络)不会造成伤害... - dickoa