首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stats.VAR不工作的Python预测函数

stats.VAR不工作的Python预测函数
EN

Stack Overflow用户
提问于 2016-10-04 20:21:28
回答 1查看 689关注 0票数 0

我有一组宏观经济变量的数据。我使用stats.VAR进行模型拟合和预测。我的数据集df已经通过列进行了规范化:

代码语言:javascript
复制
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经验的人能帮我开几盏灯吗?

提前谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-05-12 18:14:16

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

代码语言:javascript
复制
df.values[-k:]

k指的是您在训练VAR模型时使用的AR顺序p。假设你有一个训练集和一个测试集数据。其中的-k将是训练集中从末尾开始的k行数,然后测试集开始。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39861094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档