主要内容

conjugateblm

数据似然的共轭先验贝叶斯线性回归模型

描述

贝叶斯线性回归模型对象conjugateblm表示回归系数与扰动方差的联合先验分布,即(βσ2)是依赖的,正-逆-共轭模型.的条件先验分布β|σ2多元高斯是有均值的吗μ和方差σ2V.的先验分布σ2逆有形状吗一个和规模B

数据似然为 t 1 T ϕ y t ; x t β σ 2 在哪里ϕyt;xtβσ2)为高斯概率密度,求值于yt与的意思xtβ和方差σ2.指定的先验对似然是共轭的,由此产生的边际和条件后验分布在分析上是可处理的。有关后验分布的详细信息,请参见分析易于处理的后躯

一般来说,当您创建贝叶斯线性回归模型对象时,它只指定线性回归模型的联合先验分布和特征。也就是说,模型对象是一个用于进一步使用的模板。具体来说,将数据纳入模型进行后验分布分析,将模型对象和数据传递给相应的对象目标函数

创建

描述

例子

PriorMdl= conjugateblm (NumPredictors创建一个贝叶斯线性回归模型对象(PriorMdl由…组成NumPredictors预测器和截距,并设置NumPredictors财产。的联合先验分布βσ2)是相关的正-逆共轭模型。PriorMdl是定义先验分布和维数的模板吗β

例子

PriorMdl= conjugateblm (NumPredictors名称,值属性(除了NumPredictors),使用名称-值对参数。将每个属性名称用引号括起来。例如,conjugateblm(2“VarNames”[“失业率会”;“CPI”)指定模型中两个预测变量的名称。

属性

全部展开

您可以在使用名称-值对参数语法创建模型对象时设置可写属性值,或者在使用点表示法创建模型对象之后设置可写属性值。例如,设置一个更分散的先验协方差矩阵PriorMdl比默认值,一个包含三个模型系数的贝叶斯线性回归模型,输入

PriorMdl。V=100*eye(3);

贝叶斯多元线性回归模型中的预测变量数,指定为非负整数。

NumPredictors必须与您在模型估计或模拟期间指定的预测器数据中的列数相同。

当指定NumPredictors,排除该值的任何截取项。

在创建模型之后,如果您更改的值NumPredictors使用点表示法,然后这些参数恢复为默认值:

  • 变量名称(VarNames

  • 的先验平均值βμ

  • 的先验协方差矩阵βV

数据类型:

包含回归模型截距的标志,在该表中指定为一个值。

价值 描述
从回归模型中排除一个截距。因此,β是一个p-维向量,其中p的值是NumPredictors
真正的 在回归模型中包含一个截距。因此,β是吗?p+ 1)维向量。此规范导致T在估计和模拟过程中,预加到预测器数据的1乘1向量。

如果在一个截距项的预测数据中包含一列1,则设置拦截

例子:“拦截”,假的

数据类型:逻辑

显示的预测变量名,指定为字符串向量或字符向量的单元向量。VarNames必须包含NumPredictors元素。VarNames (j变量的名称在列中吗j您在估计、模拟或预测期间指定的预测器数据集的。

默认值为β{β(1),(2),…,β(p)},在那里p的值是NumPredictors

例子:“VarNames”,(“失业率会”;“CPI”)

数据类型:字符串|细胞|字符

高斯先验的平均参数β,指定为数字标量或矢量。

如果μ是一个向量,那么它一定有NumPredictorsNumPredictors + 1元素。

  • NumPredictors元素,conjugateblm的先验均值NumPredictors预测因子。预测器对应于预测器数据中的列(在估计、模拟或预测期间指定)。conjugateblm忽略模型中的截距,即:conjugateblm指定任何截距的默认先验均值。

  • NumPredictors + 1元素中,第一个元素对应于截距的先验均值,所有其他元素对应于预测因子。

例子:“亩”,[1;0.08;2]

数据类型:

高斯先验的条件协方差矩阵β,指明为c——- - - - - -c对称的正定矩阵。c可以NumPredictorsNumPredictors + 1

  • 如果cNumPredictors,然后conjugateblm将先验协方差矩阵设置为

    1 e 5 0 0 0 V 0

    conjugateblm将默认先验协方差属性为截距,以及属性V到数据中预测变量的系数。的行和列V对应于预测器数据中的列(变量)。

  • 如果cNumPredictors + 1,然后conjugateblm将整个先验协方差设置为V.第一行和第一列对应于截距。所有其他行和列都对应于预测器数据中的列。

默认值为a公寓前.对于一个自适应前,指定diag(Inf(Intercept + NumPredictors,1)).为了使先验分布对后验分布的影响尽可能小,自适应先验表明精度为零。

V先验协方差是β到的因子σ2

例子:“V”,诊断接头(正(3,1))

数据类型:

先验逆的形状超参数σ2,指定为数字标量。

一个至少是这样- (Intercept + NumPredictors)/2

B当保持不变时,逆伽马分布变得更高更集中一个增加。该特性对先前的模型进行加权σ2比后验估计时的似然更重。

有关反分布的函数形式,请参见分析易于处理的后躯

例子:“一个”,0.1

数据类型:

反演先验的尺度参数σ2,指定为正标量或

一个当保持不变时,逆伽马分布变得更高更集中B增加。该特性对先前的模型进行加权σ2比后验估计时的似然更重。

例子:“B”,5

数据类型:

对象的功能

估计 估计贝叶斯线性回归模型参数的后验分布
模拟 模拟贝叶斯线性回归模型的回归系数和扰动方差
预测 贝叶斯线性回归模型的预测响应
情节 可视化贝叶斯线性回归模型参数的先验和后验密度
总结 标准贝叶斯线性回归模型的分布汇总统计量

例子

全部折叠

考虑预测美国实际国民生产总值(gdp)的多元线性回归模型(GNPR),利用工业生产指数(新闻学会)、总就业人数(E)和实际工资(或者说是)。

GNPR t β 0 + β 1 新闻学会 t + β 2 E t + β 3. 或者说是 t + ε t

对所有 t 时间点, ε t 是一系列均值为0,方差为0的独立高斯扰动 σ 2

假设先验分布为:

  • β | σ 2 N 4 σ 2 V 是均值的4 × 1向量 V 是一个缩放的4 × 4正定协方差矩阵。

  • σ 2 G 一个 B 一个 B 分别为逆伽玛分布的形状和尺度。

这些假设和数据似然意味着一个正-逆-共轭模型。

为线性回归参数创建正态-逆-共轭先验模型。指定预测器的数量p

P = 3;Mdl = bayeslm(p,“ModelType”“共轭”
Mdl = conjugateblm with properties: NumPredictors: 3 Intercept: 1 VarNames: {4x1 cell} Mu: [4x1 double] V: [4x4 double] A: 3 B:1 |意味着性病CI95积极的分布  ----------------------------------------------------------------------------------- 拦截| 0 70.7107 [-141.273,141.273]0.500 t(0.00、57.74 ^ 2,6)β(1)| 0 70.7107 [-141.273,141.273]0.500 t(0.00、57.74 ^ 2,6)β(2)| 0 70.7107 [-141.273,141.273]0.500 t(0.00、57.74 ^ 2,6)β(3)| 0 70.7107 [-141.273,141.273]0.500 t(0.00、57.74 ^ 2,6)Sigma2 | 0.5000 - 0.5000[0.138, 1.616] 1.000搞笑(3.00,1)

Mdl是一个conjugateblm贝叶斯线性回归模型对象表示回归系数和扰动方差的先验分布。在命令窗口中,bayeslm显示先前分布的摘要。

您可以使用点表示法设置已创建模型的可写属性值。将回归系数名称设置为对应的变量名称。

Mdl。VarNames = [“他们”“E”“福”
Mdl = conjugateblm with properties: NumPredictors: 3 Intercept: 1 VarNames: {4x1 cell} Mu: [4x1 double] V: [4x4 double] A: 3 B:1 |意味着性病CI95积极的分布  ----------------------------------------------------------------------------------- 拦截| 0 70.7107 [-141.273,141.273]0.500 t(0.00、57.74 ^ 2,6)IPI | 0 70.7107 [-141.273, 141.273] 0.500 t(0.00、57.74 ^ 2,6)E | 0 70.7107 [-141.273, 141.273] 0.500 t(0.00、57.74 ^ 2,6)WR | 0 70.7107 [-141.273, 141.273] 0.500 t(0.00、57.74 ^ 2,6)Sigma2 | 0.5000 - 0.5000[0.138, 1.616] 1.000搞笑(3.00,1)

考虑中的线性回归模型创建正反共轭先验模型

为线性回归参数创建正态-逆-共轭先验模型。指定预测器的数量p还有回归系数的名称。

P = 3;PriorMdl = bayeslm(p,“ModelType”“共轭”“VarNames”, (“他们”“E”“福”]);

加载Nelson-Plosser数据集。为响应和预测器系列创建变量。

负载Data_NelsonPlosserX = DataTable{:,PriorMdl.VarNames(2:end)};y = DataTable{:,“GNPR”};

估计的边际后验分布 β σ 2

PosteriorMdl = estimate(PriorMdl,X,y);
方法:分析后验分布观测数:62预测因子数:4对数边际似然:-259.348 |意味着性病CI95积极的分布  ----------------------------------------------------------------------------------- 拦截| -24.2494 - 8.7821[-41.514,-6.985]0.003吨(-24.25、8.65 ^ 2,68)IPI | 4.3913 - 0.1414 [4.113, 4.669] 1.000 t E(4.39、0.14 ^ 2,68)| 0.0011 - 0.0003[0.000,0.002]1.000吨(0.00、0.00 ^ 2,68)代为| 2.4683 - 0.3490[1.782,3.154]1.000吨(2.47、0.34 ^ 2,68)Sigma2 | 44.1347 - 7.8020[31.427, 61.855] 1.000搞笑(34.00,0.00069)

PosteriorMdl是一个conjugateblm模型对象存储关节边缘后验分布 β σ 2 根据数据。估计向命令窗口显示边际后验分布的摘要。摘要的行对应回归系数和扰动方差,列对应后验分布特征。其特点包括:

  • CI95,其中包含参数的95%贝叶斯均衡可信区间。的回归系数的后验概率或者说是[1.782, 3.154]是0.95。

  • 积极的,其中包含参数大于0的后验概率。例如,截距大于0的概率为0.003。

  • 分布,其中包含参数的后验分布的描述。例如,的边际后验分布新闻学会t均值为4.39,标准差为0.14,自由度为68。

使用点表示法的后验分布的访问属性。例如,显示的边际后意味着通过访问μ财产。

PosteriorMdl。μ
ans =4×1-24.2494 4.3913 0.0011 2.4683

考虑中的线性回归模型创建正反共轭先验模型

为线性回归参数创建正态-逆-共轭先验模型。指定预测器的数量p,以及回归系数的名称。

P = 3;PriorMdl = bayeslm(p,“ModelType”“共轭”“VarNames”, (“他们”“E”“福”])
PriorMdl = conjugateblm with properties: NumPredictors: 3 Intercept: 1 VarNames: {4x1 cell} Mu: [4x1 double] V: [4x4 double] A: 3 B:1 |意味着性病CI95积极的分布  ----------------------------------------------------------------------------------- 拦截| 0 70.7107 [-141.273,141.273]0.500 t(0.00、57.74 ^ 2,6)IPI | 0 70.7107 [-141.273, 141.273] 0.500 t(0.00、57.74 ^ 2,6)E | 0 70.7107 [-141.273, 141.273] 0.500 t(0.00、57.74 ^ 2,6)WR | 0 70.7107 [-141.273, 141.273] 0.500 t(0.00、57.74 ^ 2,6)Sigma2 | 0.5000 - 0.5000[0.138, 1.616] 1.000搞笑(3.00,1)

加载Nelson-Plosser数据集。为响应和预测器系列创建变量。

负载Data_NelsonPlosserX = DataTable{:,PriorMdl.VarNames(2:end)};y = DataTable{:,“GNPR”};

估计的条件后验分布 β 给定数据和 σ 2 2 ,并返回评估汇总表以访问评估。

[Mdl,Summary] = estimate(PriorMdl,X,y)“Sigma2”2);
方法:分析后验分布条件变量:Sigma2定值为2观测值:62个预测因子数量:4 |意味着性病CI95积极的分布  -------------------------------------------------------------------------------- 拦截| -24.2494 - 1.8695 [-27.914,-20.585]0.000 N(-24.25、1.87 ^ 2)IPI | 4.3913 - 0.0301 [4.332, 4.450] 1.000 N E(4.39、0.03 ^ 2)| 0.0011 - 0.0001 [0.001,0.001]1.000 N(0.00、0.00 ^ 2)WR | 2.4683 - 0.0743 [2.323, 2.614] 1.000 N(2.47、0.07 ^ 2)Sigma2 | 2 0[2.000, 2.000] 1.000固定值

估计显示的条件后验分布的摘要 β .因为 σ 2 在估计时固定为2,对它的推论是微不足道的。

提取的条件后验的均值向量和协方差矩阵 β 从估计汇总表中。

condPostMeanBeta =摘要。平均值(1:(end - 1))
condPostMeanBeta =4×1-24.2494 4.3913 0.0011 2.4683
CondPostCovBeta =摘要。协方差(1:(end - 1),1:(end - 1))
CondPostCovBeta =4×43.4950 0.0350 -0.0001 - 0.0241 0.0350 0.0009 -0.0000 -0.0013 -0.0001 -0.0000 -0.0000 0.0241 -0.0013 -0.0000 0.0055

显示Mdl

Mdl
Mdl = conjugateblm with properties: NumPredictors: 3 Intercept: 1 VarNames: {4x1 cell} Mu: [4x1 double] V: [4x4 double] A: 3 B:1 |意味着性病CI95积极的分布  ----------------------------------------------------------------------------------- 拦截| 0 70.7107 [-141.273,141.273]0.500 t(0.00、57.74 ^ 2,6)IPI | 0 70.7107 [-141.273, 141.273] 0.500 t(0.00、57.74 ^ 2,6)E | 0 70.7107 [-141.273, 141.273] 0.500 t(0.00、57.74 ^ 2,6)WR | 0 70.7107 [-141.273, 141.273] 0.500 t(0.00、57.74 ^ 2,6)Sigma2 | 0.5000 - 0.5000[0.138, 1.616] 1.000搞笑(3.00,1)

因为估计计算条件后验分布,它返回原始先验模型,而不是后验,在输出参数列表的第一个位置。

考虑中的线性回归模型估计边际后验分布

为回归系数和扰动方差创建一个先验模型,然后估计边际后验分布。

P = 3;PriorMdl = bayeslm(p,“ModelType”“共轭”“VarNames”, (“他们”“E”“福”]);负载Data_NelsonPlosserX = DataTable{:,PriorMdl.VarNames(2:end)};y = DataTable{:,“GNPR”};PosteriorMdl = estimate(PriorMdl,X,y);
方法:分析后验分布观测数:62预测因子数:4对数边际似然:-259.348 |意味着性病CI95积极的分布  ----------------------------------------------------------------------------------- 拦截| -24.2494 - 8.7821[-41.514,-6.985]0.003吨(-24.25、8.65 ^ 2,68)IPI | 4.3913 - 0.1414 [4.113, 4.669] 1.000 t E(4.39、0.14 ^ 2,68)| 0.0011 - 0.0003[0.000,0.002]1.000吨(0.00、0.00 ^ 2,68)代为| 2.4683 - 0.3490[1.782,3.154]1.000吨(2.47、0.34 ^ 2,68)Sigma2 | 44.1347 - 7.8020[31.427, 61.855] 1.000搞笑(34.00,0.00069)

提取后均值 β 由后验模型,和后验协方差 β 返回的估计摘要总结

estBeta = PosteriorMdl.Mu;Summary = Summary (PosteriorMdl);estBetaCov = Summary。协方差{1:(end - 1),1:(end - 1)};

假设实际工资系数(或者说是)低于2.5,则制定政策。虽然后验分布或者说是是已知的,所以你可以直接计算概率,你可以用蒙特卡罗模拟来估计概率。

1 e6的边际后验分布的样本 β

numdraw_1e6;rng (1);BetaSim =模拟(postiormdl;“NumDraws”, NumDraws);

BetaSim是4 × -1 e6包含平局的矩阵。行对应回归系数,列对应连续绘制。

隔离与系数相对应的绘图或者说是,然后确定哪些平局小于2.5。

isWR = postiormdl。VarNames = =“福”;wrSim = BetaSim(isWR,:);isWRLT2p5 = wrSim < 2.5;

求回归系数的边际后验概率或者说是通过计算小于2.5的平局的比例,小于2.5。

probWRLT2p5 = mean(isWRLT2p5)
probWRLT2p5 = 0.5362

实际工资系数小于2.5的后验概率约为0.54

的系数的边际后验分布或者说是是一个 t 6 8 ,但以2.47为中心,按0.34比例缩放。的系数直接计算后验概率或者说是小于2.5。

center = estBeta(isWR);stdBeta = sqrt(diag(estBetaCov));scale = stdBeta(isWR);T = (2.5 - center)/scale;Dof = 68;directProb = tcdf(t,dof)
directProb = 0.5361

后验概率几乎相同。

版权所有2018 MathWorks, Inc。

考虑中的线性回归模型估计边际后验分布

为回归系数和扰动方差创建一个先验模型,然后估计边际后验分布。保留最近10个时期的估计数据,以便您可以使用它们来预测实际GNP。关闭估算显示。

P = 3;PriorMdl = bayeslm(p,“ModelType”“共轭”“VarNames”, (“他们”“E”“福”]);负载Data_NelsonPlosserFHS = 10;预测地平线大小%X = DataTable{1:(end - fhs),PriorMdl.VarNames(2:end)};y = DataTable{1:(end - fhs),“GNPR”};XF = DataTable{(end - fhs + 1):end,PriorMdl.VarNames(2:end)};%未来预测数据yFT = DataTable{(end - fhs + 1):end,“GNPR”};未来真实回答百分比PosteriorMdl = estimate(PriorMdl,X,y,“显示”、假);

使用后验预测分布和使用未来预测数据预测响应XF.绘制响应的真实值和预测值。

yF = forecast(PosteriorMdl,XF);图;情节(日期、DataTable.GNPR);持有plot(dates((end - fhs + 1):end),yF) h = gca;HP = patch([dates(end - FHS + 1) dates(end) dates(end) dates(end) dates(end) dates(end - FHS + 1)],...h.YLim([1,1,2,2]),[0.8 0.8 0.8]);uistack(惠普、“底”);传奇(“预测地平线”“真正的GNPR”“预测GNPR”“位置”“西北”)标题(“实际国民生产总值”);ylabel (“rGNP”);包含(“年”);持有

图包含一个轴对象。标题为实际国民生产总值的轴对象包含patch、line类型的3个对象。这些对象代表预测地平线、真实GNPR、预测GNPR。

yF是与未来预测器数据相对应的实际国民生产总值未来值的10乘1向量。

估计预测均方根误差(RMSE)。

frmse = sqrt(mean((yF - yFT).^2))
Frmse = 25.5397

预测均方根误差是预测精度的相对度量。具体来说,您使用不同的假设来估计几个模型。预测均方根误差最低的模型是被比较的模型中表现最好的模型。

版权所有2018 MathWorks, Inc。

更多关于

全部展开

算法

你可以使用点符号重置所有模型属性,例如,PriorMdl。V=diag(Inf(3,1)).对于属性重置,conjugateblm对值进行最小的错误检查。最小化错误检查的优点是减少了马尔可夫链蒙特卡罗模拟的开销,从而提高了算法的执行效率。

选择

bayeslm函数可以为贝叶斯线性回归创建任何支持的先验模型对金宝app象。

在R2017a中引入