ARIMA时间序列预测模型完整代码matlab
时间: 2023-10-01 21:04:21 浏览: 111
以下是一个简单的ARIMA时间序列预测模型的MATLAB代码示例:
```matlab
% 读取数据
data = csvread('data.csv'); % 假设数据存储在CSV文件中
% 拆分训练集和测试集
train_data = data(1:100);
test_data = data(101:end);
% 训练ARIMA模型
Mdl = arima(2,1,2); % 创建ARIMA(2,1,2)模型
EstMdl = estimate(Mdl, train_data); % 估计模型参数
% 预测测试集
Y = forecast(EstMdl, numel(test_data), 'Y0', train_data); % 预测未来值
rmse = sqrt(mean((test_data - Y).^2)); % 计算均方根误差
% 绘制预测结果
figure;
plot(data, 'b'); % 原始数据
hold on;
plot([100, 101], [train_data(end), test_data(1)], 'r'); % 训练集-测试集分界线
plot([101:numel(data)], Y, 'g'); % 预测结果
legend('原始数据', '训练集-测试集分界线', '预测结果');
title(['ARIMA(2,1,2)模型预测结果,RMSE=', num2str(rmse)]);
```
这段代码将数据从CSV文件中读取,并将前100个数据点用于训练ARIMA模型,剩余的数据点用于测试模型。模型参数为ARIMA(2,1,2)。
然后,代码使用 `forecast` 函数预测未来值,并计算测试集的均方根误差。最后,绘制原始数据、训练集-测试集分界线和预测结果,以及显示均方根误差。
阅读全文