计算arima算法预测的准确率的python代码
时间: 2024-01-26 19:01:43 浏览: 130
以下是使用ARIMA算法进行时间序列预测的Python代码,包括计算预测准确率的函数:
```python
import pandas as pd
import numpy as np
from statsmodels.tsa.arima_model import ARIMA
from sklearn.metrics import mean_squared_error
# 加载数据
data = pd.read_csv('data.csv', header=None, index_col=0, parse_dates=True, squeeze=True)
# 拆分数据集
train_data = data[:'2019']
test_data = data['2020':]
# 训练ARIMA模型
model = ARIMA(train_data, order=(1, 1, 0))
model_fit = model.fit(disp=0)
# 预测
predictions = model_fit.predict(start='2020-01-01', end='2020-12-31', typ='levels')
# 计算预测准确率
def evaluate_forecast(test_data, predictions):
mse = mean_squared_error(test_data, predictions)
rmse = np.sqrt(mse)
mape = np.mean(np.abs(predictions - test_data) / np.abs(test_data)) * 100
return {'MSE': mse, 'RMSE': rmse, 'MAPE': mape}
results = evaluate_forecast(test_data, predictions)
print(results)
```
其中,`data.csv`是一个包含时间序列数据的文件,`train_data`和`test_data`分别表示训练集和测试集,`model`表示ARIMA模型,`predictions`是预测结果。`evaluate_forecast`函数用于计算预测结果的MSE、RMSE和MAPE。
阅读全文