我有一组宏观经济变量的数据。我使用stats.VAR进行模型拟合和预测。我的数据集df已经通过列进行了规范化:
def main():
cwd = os.getcwd()
old = os.path.join(cwd, 'dat','prod_lf_usuk_520.xlsx')
new=old.replace('\\','/')
myList = ['UK','US']
for idx, region in enumerate(myList):
df = pd.read_excel(open(new,'rb'), sheetname = region)
df = (df - np.mean(df, axis=0))/np.std(df, axis = 0)
model = stats.VAR(df)
model.select_order(15)
results = model.fit(maxlags=15, ic='aic')
results.summary()
lag_order = results.k_ar
steps_to_forecast = 1
results.forecast(df[-lag_order:], steps_to_forecast) 一切都正常,直到results.forecast线。我一直得到* KeyError:-1或* KeyError:-2错误,不管我设置了什么lag_order和steps_to_forecast值。换句话说,results.forecast(df-1,1]或results.forecast(df-4,1)或results.forecast(df-3,2)也有相同的错误。
我是Python的新手,却想不出解决方案。有stats.VAR经验的人能帮我开几盏灯吗?
提前谢谢!
发布于 2021-05-12 18:14:16
我也遇到了同样的问题。解决办法是使用:
df.values[-k:]k指的是您在训练VAR模型时使用的AR顺序p。假设你有一个训练集和一个测试集数据。其中的-k将是训练集中从末尾开始的k行数,然后测试集开始。
https://stackoverflow.com/questions/39861094
复制相似问题