基于贝叶斯线性回归模型的多元时序预测

本文给出了如何对一个具有三个输入(分别是平均气温,风速,气压)和一个输出(湿度)的数据集进行建模并往后114步的湿度输出。

理论基础请自行查阅相关学术资料,此处不做叙述。(仅给出结果)

先进行数据预处理得到如下图像:

label_cell = ({'平均温度','风速','气压','湿度'});
for j = 1:4
    ax(j) = subplot(2,2,j);
    plot(a(:,j));
    ax(j).YLabel.String = label_cell(j);
    ax(j).YLabel.FontName = '仿宋';
    ax(j).YLabel.FontSize = 15;
    ax(j).YLabel.FontWeight = 'bold';
end
基于贝叶斯线性回归模型的多元时序预测_第1张图片 原始时序图(已经过预处理)

 

建立先验模型:

PriorMdl = bayeslm(3,ModelType="lasso",VarNames=["平均气温","风速","气压"]);
PriorMdl.Lambda = [1;1;100];

由于数据量充足,因此先验模型对预测结果的影响并不显得那么重要,此处仅仅只是简单的建立了一个普通的贝叶斯线性回归模型并对其lasso正则化系数进行了简单调整。

接着导入数据到模型中进行模拟估计,得到以下指标:

基于贝叶斯线性回归模型的多元时序预测_第2张图片 先验和后验密度指标

 可以看到0附近所对应的密度值非常小,因此可以大致判断每一个特征在贝叶斯线性回归模型中都有着较为重要的权重。

预测结果:

基于贝叶斯线性回归模型的多元时序预测_第3张图片 预测结果和预测区间

 


需要数据集和源代码的请私信

你可能感兴趣的:(MAT小卖部,matlab,数据分析,大数据,概率论)