Python中的Statsmodels包 - 检索ARIMA模型的样本外预测的问题

时间:2015-09-23 16:36:08

标签: python forecasting statsmodels

我正在尝试检索ARIMA模型的样本外预测。但是,我经常收到错误,我不知道我现在该怎么办:(代码如下:

    forecast = fit.predict(params.all(), typ='levels')

当我只使用时,它运作良好(即给我一个结果,但不是一个非样本的...)

$ cat tst.awk
BEGIN { OFS="\t" }
NR>1 {
    if ( ($1==p[1]) && ($2==(p[2]+1)) ) {
        print p[1], p[2], $3, p[4]+$4
        delete p[0]
        next
    }
    else if (0 in p) {
        print p[0]
    }
}
{ split($0,p); p[0]=$0 }
END { if (0 in p) print p[0] }
$
$ awk -f tst.awk file
chr1    10495   10500   212
chr1    10587   10592   94
chr1    10639   10643   4
chr1    10668   10672   11
chr1    10697   10701   13
chr1    10726   10730   8
chr1    10755   10759   7
chr1    10784   10788   5
chr2    10856   10860   4
chr3    10932   10937   8
chr5    11056   11060   4
chr6    11155   11159   9

但是当我添加“开始”和“结束”日期(或仅“开始”)它不想工作时,我经常会出错。在第一个引用的代码块的情况下:“TypeError:predict()得到关键字参数'start'”的多个值。我也尝试过datetime类型,但也没用。任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:0)

我收到了与上述报道类似的错误:

"AttributeError: 'NoneType' object has no attribute 'get_loc' "

但我意识到这是因为我传递的数组(或列表)没有日期时间索引,例如如果您使用pandas数据帧并将其输入为df.values,则删除时间索引,并且ARMA没有日期信息(因此日期为无),这会触发此错误。我建议您使用日期时间索引输入pd.DataFramepd.Series对象。另请参见此主题http://pystatsmodels.narkive.com/rhX3T509/arma-predict-throws-attributeerror-with-start-and-end-dates

答案 1 :(得分:0)

您可以使用

fit.forecast(steps, exog=None, alpha=0.05)

其中steps=365根据您的startend参数(如果按月)。 请参阅this answer