我有兴趣在 R 中找到在添加观察或预测变量时有效更新线性模型的方法。biglm 在添加观察时具有更新功能,但我的数据足够小,可以驻留在内存中(尽管我确实有大量实例要更新)。有一些方法可以徒手完成,例如更新 QR 分解(请参阅Hammarling 和 Lucas 从 2008 年开始的“更新 QR 分解和最小二乘问题”),但我希望有一个现有的实现。
在 R 中添加观察和/或预测变量时有效地更新线性回归
机器算法验证
r
回归
计算统计
线性模型
2022-01-21 04:20:00
4个回答
如果您正在寻找的算法确实类似于Applied Statistics 274 , 1992, Vol 41(2)那么您可以只使用biglm因为它不需要您将数据保存在文件中。
在 matlab 中有排名第一的 QR 更新函数,它可以在更新 p 变量线性回归的系数的复杂性中为 您节省一个因子。
尽管几个月前搜索了几天,但我一直无法在 R 中找到等价物(请注意 cran 中有许多 qr.update 函数,但是当你在引擎盖下查看时,它们只是假的——即他们调用lm.update
都一样)。
更新:尝试包“跳跃”的源代码。在 R 源代码中,您会发现一个函数 'leaps.forward',它调用 FORTRAN 例程 'forwrd',位于包的 /src 中,它似乎实现了 rank 1 QR 更新。
不如试试线性模型对象的更新能力
update.lm( lm.obj, formula, data, weights, subset, na.action)
看看这个链接
- 更新函数的一般解释:
http://stat.ethz.ch/R-manual/R-devel/library/stats/html/update.html
- 有关 update.lm 的特定说明:
http://www.science.oregonstate.edu/~shenr/Rhelp/update.lm.html
很长一段时间以来,我一直在寻找与 matlab qr 更新等效的东西,跳跃似乎是一个不错的方法!
在 R 中,您可以查看 strucchange 包中的 recresid() 函数,当您添加观察值(而不是变量!)时,它将给出递归残差。我的猜测是,这将需要很少的修改来获得递归 beta(代码中的 beta?)。
其它你可能感兴趣的问题