我正在寻找一个基于 numpy
的普通最小二乘法的实现,它允许用更多的观察来更新拟合。类似于 Applied Statistics algorithm AS 274 的内容或 R 的 biglm
.
否则,用新行更新 QR 分解的例程也会很有趣。
有什么建议吗?
最佳答案
scikits.statsmodels 有一个递归 OLS,它更新沙箱中可用于此的逆 X'X。 (仅用于计算递归 OLS 残差。)
Nathaniel Smith 将他的 OLS 代码发布到 scipy-user 邮件列表中,当数据太大无法放入内存时。主代码更新 X'X。
我认为 econpy 也有这个功能。
Pandas 有一个扩展的 OLS,但它可能不太容易在线使用。
Nathaniel 的代码可能是最接近 biglm 的。我认为一般线性模型没有任何意义(误差协方差与恒等性不同)。
所有这些都需要一些工作才能用于此目的。我不知道会更新 QR 的任何 python(-wrapped)代码。
更新: 见http://mail.scipy.org/pipermail/scipy-dev/2010-February/013853.html
在 cholmod 中有增量 qr 和 cholesky 可用,但我没有尝试过,无论是许可还是编译问题,我认为我没有尝试让 incremental_qr 工作 见附件
http://mail.scipy.org/pipermail/scipy-dev/2010-February/013844.html
关于python - numpy:使用更多观察值更新最小二乘法的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5952815/