3

在 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'),而不是循环每一行,因为循环会很慢。

4

1 回答 1

3

在熊猫中有这样做的方法,请参阅文档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()

显示滚动测试版

于 2013-07-03T15:13:02.490 回答