我想用宏观经济基本面来预测汇率,而不是使用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
答案 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