ARIMA 模型的不可逆 [英] non Invertible of a ARIMA model

查看:44
本文介绍了ARIMA 模型的不可逆的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试编写代码来生成一系列 arima 模型并比较不同的模型.代码如下.

I am trying to write a code to generate a series of arima model and compare different models.The code is as follow.

p=0
q=0
d=0
pdq=[]
aic=[]

for p in range(6):
    for d in range(2):
        for q in range(4):
            arima_mod=sm.tsa.ARIMA(df,(p,d,q)).fit(transparams=True)

            x=arima_mod.aic


            x1= p,d,q
            print (x1,x)

            aic.append(x)
            pdq.append(x1)



keys = pdq
values = aic
d = dict(zip(keys, values))
print (d)

minaic=min(d, key=d.get)

for i in range(3):
 p=minaic[0]
    d=minaic[1]
    q=minaic[2]
print (p,d,q)

其中'df'是时间序列数据,输出如下,

Where 'df' is the time series data.And the output is as follow,

(0, 0, 0) 1712.55522759
(0, 0, 1) 1693.436483044094
(0, 0, 2) 1695.2226857997066
(0, 0, 3) 1690.9437925956158
(0, 1, 0) 1712.74161799
(0, 1, 1) 1693.0408994539348
(0, 1, 2) 1677.2235087182808
(0, 1, 3) 1679.209810237856
(1, 0, 0) 1700.0762847127553
(1, 0, 1) 1695.353190569905
(1, 0, 2) 1694.7907607467605
(1, 0, 3) 1692.235442716487
(1, 1, 0) 1714.5088374907164

ValueError: The computed initial MA coefficients are not invertible
You should induce invertibility, choose a different model order, or you can
pass your own start_params.

即对于阶数 (1,1,1),模型是不可逆的.所以这个过程就停止了.我怎么能跳过这种不可逆的 p、d、q 组合并继续其他组合

i.e for order (1,1,1) the model is non invertible. so the process stops there.How can i skip such non invertible combination of p,d,q and go on with other combination

推荐答案

使用 try: ... except: ... 捕获异常并继续

Use try: ... except: ... to catch the exception and continue

for p in range(6):
    for d in range(2):
        for q in range(4):
            try:
                arima_mod=sm.tsa.ARIMA(df,(p,d,q)).fit(transparams=True)

                x=arima_mod.aic

                x1= p,d,q
                print (x1,x)

                aic.append(x)
                pdq.append(x1)
            except:
                pass
                # ignore the error and go on

这篇关于ARIMA 模型的不可逆的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆