揭阳企业网站建设公司,宣传片制作公司简介,义乌网站建设托管,福州百度seo排名软件【MATLAB第115期】基于MATLAB的多元时间序列的ARIMAX的预测模型
一、简介
ARIMAX#xff08;Autoregressive Integrated Moving Average with eXogenous inputs#xff09;模型是一种结合自回归#xff08;AR#xff09;、差分#xff08;I#xff09;、移动平均Autoregressive Integrated Moving Average with eXogenous inputs模型是一种结合自回归AR、差分I、移动平均MA和外生变量的时间序列预测方法。其核心公式为 AR§利用历史值的线性组合 I(d)差分处理非平稳序列 MA(q)建模误差项的移动平均 X外生变量如X1~X7等外部因素
二、数据准备与预处理
1. 数据导入 数据格式最后一列为目标变量其他列为外生变量
data xlsread(数据集.xlsx); % 读取Excel数据2. 数据预处理 目标变量处理
y data(:, end);
y(1) []; % 删除首项以对齐差分后的外生变量外生变量处理
IX data(:, 1:end-1);
X diff(IX, 1); % 一阶差分使序列平稳数据常具趋势性差分可消除非平稳性使模型更准确。
三、滚动时间窗口创建
1. 参数设置
P 2; % AR阶数
D 1; % 差分次数
WindowSize 31; % 训练窗口大小
ForecastPeriod numel(y) - WindowSize - P - D; % 预测期数2. 初始化存储矩阵 目标变量
yyT zeros(ForecastPeriod, WindowSize P D 1);外生变量
for i 1:size(X, 2)eval([XX, num2str(i), zeros(ForecastPeriod, WindowSize1);]);
end3. 窗口数据填充
for nYear 1:ForecastPeriod% 目标变量窗口yyT(nYear, :) transpose(y(m:m WindowSize P D));% 外生变量窗口for i 1:size(X, 2)eval([XX, num2str(i), (nYear,:) ...]);endm m 1; % 窗口滑动
end四、ARIMAX模型训练与预测
1. 模型参数设置
Mdl arima(P, D, 2); % 创建ARIMAX(2,1,2)模型2. 递归预测流程
% 模型估计
Mdl estimate(Mdl, sY(1:end-1), Y0, yy0(t1,:), X, sX(1:end-1, :));关键参数解析
Y0模型初始条件差分后的初始值 X0外生变量初始条件 XF预测期的外生变量值
五、预测结果可视化
figure;
axH axes;
plot(axH, 1:ForecastPeriod, y(end-ForecastPeriod1:end), Color, [0.9290 0.6940 0.1250], LineWidth, 1.2);
hold on;
plot(axH, 1:ForecastPeriod, eGNPR, Color, [0 0.4470 0.7410], LineWidth, 1.2);
legend([Actual, Forecasted]);
title(ARIMAX(2,1,2)模型预测效果对比);六、代码获取
1.阅读首页置顶文章 2.关注CSDN 3.根据自动回复消息私信回复“115期”以及相应指令即可获取对应下载方式。