是否有更快的lm功能

Ban*_*you 20 r lm

我想获得适合1M个独立数据集的线性回归斜率(对于data.frame为1M*50行,对于数组为1M*50).现在我正在使用这个lm()功能,这需要很长时间(大约10分钟).

线性回归有更快的功能吗?

Dir*_*tel 22

是的有:

  • R本身具有lm.fit()更多的基础:没有公式表示法,更简单的结果集

  • 我们的几个与Rcpp相关的包具有fastLm()实现:RcppArmadillo,RcppEigen,RcppGSL.

我们fastLm()在一些博客文章和演示文稿中进行了描述.如果您想以最快的方式使用它,请不要使用公式界面:解析公式并准备模型矩阵比实际回归需要更多时间.

也就是说,如果您在单个向量上回归单个向量,则可以简化此操作,因为不需要矩阵包.

  • 还有一个`speedglm`包,不知道它有多快(如果有的话). (3认同)

Jot*_* eN 11

从3.1.0开始就有一个.lm.fit()功能.这个功能应该比lm()和更快lm.fit().

它的描述和性能与lm这里的不同功能进行了比较 - https://rpubs.com/maechler/fast_lm.


小智 8

Rfast 包中的lmfit甚至比 .lm.fit 还要快。唯一的缺点是当设计矩阵没有满秩时它不起作用。


Leo*_*ira 6

speedlmfromspeedglm应该这样做,因为它适用于大型数据集。