滚动窗口预测

时间:2019-05-14 15:18:09

标签: python regression rolling-computation forecast horizon

我想用宏观经济基本面来预测汇率,而不是使用Python中的时间序列数据进行样本外预测。

要评估预测准确性,我想应用滚动窗口回归,即每个滚动窗口的连续观察数。 因变量是欧元/美元汇率,而我的(第一个解释性变量)是美国和欧洲之间的利率差异。时间跨度为01/1999至01/2019。

理论上,首先选择窗口大小,然后选择预测范围,然后使用RMSE评估模型。

但是我不太确定如何在Python中设置滚动回归。

我在不赞成使用的stats / ols模块中使用MovingOLS感到挣扎。 因此,我下载了Pyfinance软件包,其中包括滚动回归。

但是如何将此处的预测范围更改为3个月?还有其他方法/软件包可以解决此问题吗?

以下是有关Pyfinance软件包的代码:

rolling = ols.PandasRollingOLS(y=y, x=X, window=228,) #window size equal to the length of my training set

rolling.beta.head()

rolling.ms_err.head()
rolling.ms_err

1 个答案:

答案 0 :(得分:0)

如果目标变量和预测变量是pandas.Series或pandas.DataFrame对象:

model = pd.stats.ols.MovingOLS(y=y, x=x, window_type='rolling', window=90)
prediction = model.y_predict

将window参数更改为天数(假设您的数据是每天的)

编辑:pd.stats实际上已在较新版本的熊猫中弃用,pandas.rolling_apply应该可以实现这一点,并提供您正在使用的任何OLS回归函数:

http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.rolling_apply.html