时间序列预测代码 matlab
时间: 2024-02-12 11:01:33 浏览: 115
时间序列预测matlab代码
当涉及到时间序列预测的代码,Matlab是一个非常强大和流行的工具。以下是一个简单的时间序列预测的Matlab代码示例:
```matlab
% 加载数据
data = load('data.csv');
time = data(:, 1);
series = data(:, 2);
% 划分训练集和测试集
train_size = floor(0.8 * length(series));
train_data = series(1:train_size);
test_data = series(train_size+1:end);
% 创建时间序列模型
model = arima(2, 0, 1); % ARIMA(p, d, q)模型,这里使用了ARIMA(2, 0, 1)模型
% 拟合模型
fitted_model = estimate(model, train_data);
% 预测未来值
num_predictions = length(test_data);
[forecast, ~] = forecast(fitted_model, num_predictions);
% 绘制预测结果
figure;
plot(time, series, 'b', 'LineWidth', 2);
hold on;
plot(time(train_size+1:end), forecast, 'r--', 'LineWidth', 2);
legend('原始数据', '预测结果');
xlabel('时间');
ylabel('数值');
title('时间序列预测');
% 计算预测误差
mse = mean((forecast - test_data).^2);disp(['均方误差:', num2str(mse)]);
```
这段代码做了以下几个步骤:
1. 加载时间序列数据,其中`data.csv`是包含时间和数值的CSV文件。
2. 将数据划分为训练集和测试集,这里使用了80%的数据作为训练集。
3. 创建ARIMA模型,这里使用了ARIMA(2, 0, 1)模型,即自回归阶数为2,差分阶数为0,移动平均阶数为1。
4. 使用训练集拟合模型。
5. 预测未来值,这里预测了与测试集相同长度的未来值。
6. 绘制原始数据和预测结果的图形。
7. 计算预测误差,这里使用了均方误差(MSE)作为评估指标。
希望这个代码示例能够帮助到你!如果你有任何进一步的问题,请随时提问。
阅读全文