基于Python3的arima模型训练——出现类型转换报错


model = ARIMA(stock_train, order=(2, 1, 2),freq=None)

result = model.fit()

报错信息:Cannot cast ufunc subtract output from dtype('float64') to dtype('int64') with casting rule 'same_kind'

原因是由于读取的csv数据是整形,将其中的数据修改为浮点数,问题解决。

不知道是不是arima训练模型的数据必须为float。可以通过下面的语句完成类型转换

dta=np.array(dta,dtype=np.float) 


索引时间以天为间隔没问题,但修改为小时间隔会报错

model = ARIMA(stock_train, order=(2, 1, 2),freq='H')
——以时间点为索引查看,需要根据freq修改配置





ARIMA模型是一种时间序列分析方法,可以用于预测未来的趋势和周期性变化。ARIMA模型的全称是自回归移动平均模型(Autoregressive Integrated Moving Average Model),其主要思想是利用历史数据进行拟合,并通过该模型对未来数据进行预测。 下面是基于Python实现ARIMA模型的步骤: 1. 导入相关库 ``` import pandas as pd import numpy as np import matplotlib.pyplot as plt from statsmodels.tsa.arima_model import ARIMA ``` 2. 读取数据 ``` data = pd.read_csv('data.csv', index_col='date', parse_dates=True) ``` 其中,`data.csv`为需要分析的数据集,`index_col`参数指定了日期列作为索引列,`parse_dates`参数将字符串日期解析为日期类型。 3. 数据可视化 ``` plt.plot(data) plt.show() ``` 通过可视化数据,可以初步观察数据的趋势和周期性变化。 4. 拟合ARIMA模型 ``` model = ARIMA(data, order=(p, d, q)) result = model.fit(disp=-1) ``` 其中,`order`参数指定了ARIMA模型的参数,包括自回归项(p)、差分阶数(d)和移动平均项(q)。 5. 预测未来数据 ``` forecast = result.forecast(steps=10)[0] ``` `steps`参数指定了需要预测的未来数据的个数。 6. 可视化预测结果 ``` plt.plot(data) plt.plot(pd.date_range('2022-01-01', periods=10, freq='M'), forecast) plt.show() ``` 其中,`pd.date_range`函数生成了未来日期序列,`freq`参数指定了日期序列的频率。 以上就是基于Python实现ARIMA模型的主要步骤。需要注意的是,ARIMA模型的参数需要通过大量的实验和调参才能得到最优的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值