在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')
之类的简单内容,而不是循环每一行,因为循环很慢。
答案 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()
显示滚动测试版