全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
2724 5
2021-12-13
#4)定阶
from statsmodels.tsa.arima_model import ARIMA
data['股价'] = data['股价'].astype(float)
pmax = int(len(D_data)/10) #一般阶数不超过length/10
qmax = int(len(D_data)/10) #一般阶数不超过length/10
e_matrix = [] #评价矩阵
for p in range(pmax+1):
    tmp = []
    for q in range(qmax+1):
        try: #存在部分报错,所以用try来跳过报错。
            tmp.append(ARIMA(data, (p,1,q)).fit().aic)
        except:
            tmp.append(None)
    e_matrix.append(tmp)
e_matrix = pd.DataFrame(e_matrix) #从中可以找出最小值
p,q = e_matrix.stack().idxmin() #先用stack展平,然后用找出最小值位置。
print('AIC最小的p值和q值为:%s、%s' %(p,q))

运行结果:
C:\ProgramData\Anaconda3\lib\site-packages\statsmodels\tsa\base\tsa_model.py:165: ValueWarning: No frequency information was provided, so inferred frequency D will be used.  % freq, ValueWarning)请问这是怎么回事
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-12-15 16:09:14
数据的问题?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2022-1-20 09:58:41
需要freq参数
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2022-1-24 22:06:07
听雨在小楼 发表于 2022-1-20 09:58
需要freq参数
谢谢,如何设置啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2022-1-25 09:58:49
keshin008 发表于 2022-1-24 22:06
谢谢,如何设置啊
tmp.append(ARIMA(data, (p,1,q),freq='D').fit().aic)
估计是这里要参数,不过现在的statsmodels中,已经有变化了,你用的是老版本,我也不知道具体的了。

另外,那个值要按pandas中的时间序列频率来写
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-4-9 20:57:51
现在可以试试问问chagpt了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群