写一段利用arima模型进行单变量时间序列预测的python代码
时间: 2023-07-30 18:10:07 浏览: 133
以下是一个简单的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)
# 将数据转换成时间序列
ts = pd.Series(data.values, index=pd.date_range('2000-01-01', periods=len(data), freq='M'))
# 绘制时间序列图
plt.plot(ts)
plt.show()
# 拆分训练集和测试集
train_size = int(len(ts) * 0.8)
train, test = ts[:train_size], ts[train_size:]
# 对训练集进行ARIMA建模
model = ARIMA(train, order=(2, 1, 2))
model_fit = model.fit(disp=0)
# 输出模型信息
print(model_fit.summary())
# 对测试集进行预测
predictions = model_fit.predict(start=len(train), end=len(train)+len(test)-1, dynamic=False)
# 绘制预测结果和实际结果图
plt.plot(test.index, test.values)
plt.plot(predictions.index, predictions.values, color='red')
plt.show()
```
在这个例子中,我们首先读取数据并将其转换为时间序列。然后,我们将数据拆分为训练集和测试集,并使用训练集训练ARIMA模型。最后,我们使用测试集对模型进行评估,并绘制预测结果和实际结果图。
阅读全文