0

我想用 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
4

1 回答 1

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

于 2019-05-14T16:17:39.113 回答