初始变量:
yt: 输入的时间序列数据
j: 预测的未来步数
线性回归预测法:
function results = forecast13(~, yt, j)
% yt: 输入的时间序列数据
% j: 预测的未来步数
% 确定输入数据的长度
n = length(yt);
% 将时间序列数据转换为设计矩阵,用于线性回归
X = [ones(n, 1), (1:n)']; % 添加截距项和时间趋势项
% 使用最小二乘法进行线性回归
B = regress(yt', X);
% 初始化预测结果数组
predictions = zeros(j, 1);
% 计算最后一个已知数据点的索引
lastIndex = n;
% 使用线性回归模型进行预测
for i = 1:j
% 预测未来值
predictions(i) = B(1) + B(2) * (lastIndex + i);
end
% 将预测结果转换为列向量形式
predictions = predictions';
% 将预测结果添加到原始时间序列数据中
% 确保yt也是一个列向量
if isvector(yt) && iscolumn(yt)
yt = [yt; predictions];
else
yt = [yt, predictions]; % 如果yt不是列向量,使用水平拼接
end
% 输出预测结果
results = yt(n+1:end);
e