对于我的评估,我想运行一个滚动的1000窗口OLS regression estimation
在这个URL中找到的数据集:
https://drive.google.com/open?id=0B2Iv8dfU4fTUa3dPYW5tejA0bzg
使用下面的Python
脚本。
# /usr/bin/python -tt
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from statsmodels.formula.api import ols
df = pd.read_csv('estimated.csv', names=('x','y'))
model = pd.stats.ols.MovingOLS(y=df.Y, x=df[['y']],
window_type='rolling', window=1000, intercept=True)
df['Y_hat'] = model.y_predict
但是,当我运行Python脚本时,会出现以下错误:AttributeError: module 'pandas.stats' has no attribute 'ols'
。这个错误可能来自我正在使用的版本吗?安装在Linux节点上的pandas
版本为0.20.2
pd.stats.ols.MovingOLS
在Pandas版本0.20.0中被删除http://pandas-docs.github.io/pandas-docs-travis/whatsnew.html#whatsnew-0200-prior-deprecations
https://github.com/pandas-dev/pandas/pull/11898
对于滚动回归这样一个显而易见的用例,我找不到现成的解决方案。
下面的方法应该可以做到这一点,而不必花太多时间在更优雅的解决方案上。它使用numpy根据回归参数和滚动窗口中的X值计算回归的预测值。
上面的代码相当于以下代码,大约快35%:
相关问题 更多 >
编程相关推荐