stats.VAR的Python预测功能不起作用

时间:2016-10-04 20:21:28

标签: python pandas dataframe

我有一个宏观经济变量数据集。我使用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) 

一切正常,直到结果。预测线。我不断得到 * 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会给我一些灯吗?

提前多多谢谢!

1 个答案:

答案 0 :(得分:-1)

我也遇到了同样的问题。解决方法是使用:

df.values[-k:]

k 我指的是您在训练 VAR 模型时使用的 AR 的订单 p。因此,假设您有一个训练集和一个测试集数据。这里的 -k 将是训练集中从最后开始的 k 行数,之后是测试集。