python代码 arima季节性模型
时间: 2023-09-11 17:04:12 浏览: 122
ARIMA 模型是一种常用的时间序列预测模型,其可以对数据的趋势、季节性等特征进行建模。下面是使用 Python 实现 ARIMA 季节性模型的代码示例:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.arima_model import ARIMA
# 读取数据
data = pd.read_csv('data.csv', header=None, index_col=0, squeeze=True)
# 绘制时间序列图
plt.plot(data)
plt.show()
# 分解时间序列
from statsmodels.tsa.seasonal import seasonal_decompose
decomposition = seasonal_decompose(data)
trend = decomposition.trend
seasonal = decomposition.seasonal
residual = decomposition.resid
plt.subplot(411)
plt.plot(data, label='Original')
plt.legend(loc='best')
plt.subplot(412)
plt.plot(trend, label='Trend')
plt.legend(loc='best')
plt.subplot(413)
plt.plot(seasonal,label='Seasonality')
plt.legend(loc='best')
plt.subplot(414)
plt.plot(residual, label='Residuals')
plt.legend(loc='best')
plt.tight_layout()
plt.show()
# ARIMA 模型拟合
model = ARIMA(data, order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
result = model.fit(disp=-1)
# 绘制预测结果
plt.plot(data)
plt.plot(result.predict(start=1, end=100), color='red')
plt.show()
```
其中,代码中的 `data.csv` 是存储时间序列数据的文件,可以根据实际情况进行修改。在拟合 ARIMA 模型时,需要指定 `order=(p, d, q)` 参数和 `seasonal_order=(P, D, Q, m)` 参数,分别表示 ARIMA 模型的自回归、差分和移动平均部分及季节性部分的自回归、差分和移动平均部分和季节周期。在本示例中,我们使用了 1 阶差分和 12 个季节周期。最后,我们使用 `result.predict()` 函数对模型进行预测,并将结果与原始数据进行可视化比较。
阅读全文