我需要一次执行 X 个周期的滚动线性回归。我有以下熊猫数据框:
value
0 4354
1 7564
2 657
3 7876
我可以使用 scipy 对整个数据框执行线性回归,如下所示:
from scipy import stats
slope, intercept, r_value, p_value, std_err = stats.linregress(df.index, df['value'])
然后为了得到线性回归线,我这样做:
df['linreg'] = intercept + slope * df.index
但我一直无法弄清楚如何做滚动线性回归,例如使用 20 行滚动窗口。
线性回归需要计算五个总和:Xi、Xi²、Yi、Yi²、Xi.Yi。您可以以滚动窗口的方式更新这些,添加新点并扣除旧点。
这对于不超过机器表示精度的整数非常有效。否则,您需要时不时地重新启动以减少错误的累积。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)