可变大小滚动窗口回归

时间:2013-07-03 14:14:59

标签: pandas

在Pandas OLS中,窗口大小是固定长度。如何根据索引而不是行数来设置窗口大小?

我有一个系列,每天有不同的观察次数,我有10年的数据历史,所以我想在1年滚动窗口上运行滚动OLS。循环通过每个日期有点太慢,无论如何要让它更快?以下是数据的示例。

  Date     x      y
2008-1-2  10.0    2
2008-1-2  5.0     1
2008-1-3  7.0   1.5
2008-1-5  9.0   3.0
...
2013-5-30 11.0  2.5

我想要像pandas.ols(df.y, df.x, window='1y')之类的简单内容,而不是循环每一行,因为循环很慢。

1 个答案:

答案 0 :(得分:3)

在pandas中有这样做的方法,请参阅文档http://pandas.pydata.org/pandas-docs/dev/computation.html#computing-rolling-pairwise-correlations

model = pandas.ols(y=df.y, x=df.x, window=250)

你只需提供你的期间是帧数而不是'1y'。您可能会发现许多其他选项对您的数据有用。

所有滚动ols统计信息都在模型

model.beta.plot()

显示滚动测试版