用MATLAB实现ARIMA时序预测模型
时间: 2024-02-13 09:01:19 浏览: 86
好的,以下是一个简单的MATLAB实现ARIMA时序预测模型的示例。
首先,我们需要准备一些数据,这里我们使用MATLAB的内置数据集 `airline`,它包含了1949年到1960年间每个月的国际航空旅客数目。
```matlab
% 导入数据
data = airline;
% 将数据分成训练集和测试集
train_data = data(1:end-12);
test_data = data(end-11:end);
```
接下来,我们使用 `arima` 函数创建ARIMA模型并进行拟合,这里我们选择ARIMA(2,1,1)模型。
```matlab
% 创建ARIMA模型
Mdl = arima(2,1,1);
% 拟合训练数据
EstMdl = estimate(Mdl,train_data);
```
然后,我们使用 `forecast` 函数对未来12个月的数据进行预测,并计算预测误差。
```matlab
% 对未来12个月进行预测
[Forecast,~,ForecastCI] = forecast(EstMdl,12,'Y0',train_data);
% 计算预测误差
rmse = sqrt(mean((Forecast-test_data).^2));
```
最后,我们可以将预测结果可视化。
```matlab
% 绘制预测结果
figure
plot(data,'b')
hold on
plot(length(train_data)+(1:12),Forecast,'r','LineWidth',2)
xlabel('Time')
ylabel('Airline Passengers')
title(['ARIMA(2,1,1) Forecast with RMSE = ' num2str(rmse)])
legend('Observed','Forecast','Location','NorthWest')
```
这样,我们就完成了ARIMA模型的建立和预测。
阅读全文