arima模型预测实例
时间: 2023-08-21 13:25:47 浏览: 121
好的,下面我给您介绍一个简单的ARIMA模型预测实例。
ARIMA(Autoregressive Integrated Moving Average)模型是一种常用的时间序列预测模型,用于对时间序列数据进行预测。ARIMA模型包括自回归(AR)、差分(I)和移动平均(MA)三个步骤,因此也称为ARIMA(p,d,q)模型。
下面是一个简单的ARIMA模型预测实例:
首先,我们需要导入需要的库和数据集。这里我们使用Python中的pandas、matplotlib和statsmodels库,以及AirPassengers数据集。
```python
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.arima_model import ARIMA
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
# 导入数据集
df = pd.read_csv('AirPassengers.csv', parse_dates=['Month'], index_col='Month')
```
接下来,我们需要对数据进行可视化分析,以了解其趋势和季节性模式。
```python
# 可视化分析
plt.figure(figsize=(12,6))
plt.plot(df)
plt.xlabel('Year')
plt.ylabel('Passengers')
plt.title('Air Passengers Data')
plt.show()
```
从图中可以看出,该数据集具有逐年增长的趋势和季节性模式。
接下来,我们需要对数据进行差分操作,将其转化为平稳时间序列。这里我们使用一阶差分进行处理。
```python
# 一阶差分
diff_1 = df.diff(1)
diff_1.dropna(inplace=True)
# 可视化分析
plt.figure(figsize=(12,6))
plt.plot(diff_1)
plt.xlabel('Year')
plt.ylabel('Passengers')
plt.title('Air Passengers Data (First Difference)')
plt.show()
```
从图中可以看出,一阶差分后的数据已经具有平稳性。
接下来,我们需要对平稳时间序列进行自相关和偏自相关分析,以确定ARIMA模型的参数。这里我们使用自相关函数(ACF)和偏自相关函数(PACF)图来分析。
```python
# 自相关和偏自相关分析
fig, ax = plt.subplots(2, 1, figsize=(12,8))
plot_acf(diff_1, lags=50, ax=ax[0])
plot_pacf(diff_1, lags=50, ax=ax[1])
plt.show()
```
从ACF和PACF图中可以看出,差分后的数据具有一阶自相关和一阶偏自相关,因此我们可以选择ARIMA(1,1,1)模型。
接下来,我们可以使用ARIMA模型进行预测。
```python
# ARIMA模型
model = ARIMA(df, order=(1,1,1))
model_fit = model.fit(disp=0)
# 预测结果
forecast = model_fit.forecast(steps=12)[0]
# 可视化分析
plt.figure(figsize=(12,6))
plt.plot(df, label='Actual')
plt.plot(forecast, label='Forecast')
plt.xlabel('Year')
plt.ylabel('Passengers')
plt.title('Air Passengers Data (ARIMA Forecast)')
plt.legend()
plt.show()
```
从图中可以看出,ARIMA模型能够较好地预测出未来12个月的乘客数量。
以上就是一个简单的ARIMA模型预测实例。
阅读全文