主要内容

情节

可视化贝叶斯线性回归模型参数的先验和后验密度

描述

例子

图(PosteriorMdl图(PriorMdl图中参数的后验或先验分布贝叶斯线性回归模型PosteriorMdlPriorMdl,分别。情节将每个参数的子图添加到一个图形,并在调用时覆盖相同的图形情节很多次了。

例子

图(PosteriorMdlPriorMdl在同一子图中绘制后验分布和先验分布。情节使用蓝色实线表示后验密度,红色虚线表示先验密度。

例子

图(___名称,值使用前面语法中的任何输入参数组合,以及由一个或多个名-值对参数指定的其他选项。例如,您可以通过提供的值来评估后验或先验密度βσ2,或选择在图中包括哪些参数分布。

例子

pointsUsed=情节(___还返回参数的值情节用于评价子样地的密度。

例子

pointsUsedposteriorDensitypriorDensity] = plot(___还返回计算密度的值。

如果指定一个模型,则情节返回的密度值PosteriorDensity.否则,情节返回的后验密度值PosteriorDensity先验密度值PriorDensity

例子

pointsUsedposteriorDensitypriorDensityFigureHandle] = plot(___返回包含分布的图形的图形句柄。

例子

全部折叠

考虑预测美国实际国民生产总值(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;VarNames = [“他们”“E”“福”];PriorMdl = bayeslm(p,“ModelType”“共轭”“VarNames”, VarNames);

PriorMdl是一个conjugateblm贝叶斯线性回归模型对象表示回归系数和扰动方差的先验分布。

绘制先验分布。

情节(PriorMdl);

图中包含5个轴对象。标题为Intercept的Axes对象1包含一个类型为line的对象。标题为IPI的Axes对象2包含一个line类型的对象。标题为E的坐标轴对象3包含一个line类型的对象。标题为WR的Axes对象4包含一个类型为line的对象。标题为Sigma2的Axes对象5包含一个类型为line的对象。

情节绘制截距、回归系数和扰动方差的边际先验分布。

假设回归系数的均值为 - 2 0 4 0 0 0 1 2 它们的协方差矩阵是

1 0 0 0 0 0 0 0 1 0 0 0 0 1 e - 8 0 0 0 0 0 1

扰动方差的先验尺度为0.01。使用点表示法指定先验信息。

PriorMdl。米u = [-20; 4; 0.001; 2]; PriorMdl.V = diag([1 0.001 1e-8 0.01]); PriorMdl.B = 0.01;

请求一个新的图形并绘制先验分布。

情节(PriorMdl);

图中包含5个轴对象。标题为Intercept的Axes对象1包含一个类型为line的对象。标题为IPI的Axes对象2包含一个line类型的对象。标题为E的坐标轴对象3包含一个line类型的对象。标题为WR的Axes对象4包含一个类型为line的对象。标题为Sigma2的Axes对象5包含一个类型为line的对象。

情节用扰动方差的先验分布图替换当前分布图。

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

负载Data_NelsonPlosserX = DataTable{:, priormll . varnames (2:end)};y = dattable . gnpr;

估计后验分布。

PosteriorMdl =估计(PriorMdl,X,y,“显示”、假);

PosteriorMdl是一个conjugateblm的后验分布的模型对象 β σ 2

绘制后验分布。

情节(PosteriorMdl);

图中包含5个轴对象。标题为Intercept的Axes对象1包含一个类型为line的对象。标题为IPI的Axes对象2包含一个line类型的对象。标题为E的坐标轴对象3包含一个line类型的对象。标题为WR的Axes对象4包含一个类型为line的对象。标题为Sigma2的Axes对象5包含一个类型为line的对象。

在同一子图上绘制参数的先验和后验分布。

情节(PosteriorMdl PriorMdl);

图中包含5个轴对象。标题为Intercept的Axes对象1包含2个类型为line的对象。标题为IPI的坐标轴对象2包含2个类型为line的对象。标题为E的坐标轴对象3包含2个line类型的对象。标题为WR的Axes对象4包含2个类型为line的对象。标题为Sigma2的Axes对象5包含2个类型为line的对象。这些对象代表后验,先验。

中的回归模型绘制先验和后验分布

加载Nelson-Plosser数据集,创建一个默认的共轭先验模型,然后使用前75%的数据估计后验。关闭估计显示。

P = 3;VarNames = [“他们”“E”“福”];PriorMdl = bayeslm(p,“ModelType”“共轭”“VarNames”, VarNames);负载Data_NelsonPlosserX = DataTable{:, priormll . varnames (2:end)};y = dattable . gnpr;D = 0.75;PosteriorMdlFirst =估计(PriorMdl,X(1:地板(d*端),:),y(1:地板(d*端)),“显示”、假);

绘制扰动方差的先验分布和后验分布。返回数字句柄。

[~,~,~,h] = plot(PosteriorMdlFirst,PriorMdl,“VarNames”“Sigma2”);

图中包含一个轴对象。标题为Sigma2的axes对象包含2个类型为line的对象。这些对象代表后验,先验。

h是分布图的图形句柄。方法更改图形的标记名称标签财产,然后是下一个情节调用将所有新的分布图放在不同的图形上。

将图形句柄的名称更改为FirstHalfData使用点表示法。

h.Tag =“FirstHalfData”

用剩下的数据估计后验分布。指定基于最后25%数据的后验分布作为先验分布。

PosteriorMdl =估计(PosteriorMdlFirst,X(ceil(d*end):end,:),y(装天花板(d *结束):结束),“显示”、假);

根据一半数据和所有数据绘制扰动方差的后验图。

情节(PosteriorMdl PosteriorMdlFirst,“VarNames”“Sigma2”);

图中包含一个轴对象。标题为Sigma2的axes对象包含2个类型为line的对象。这些对象代表后验,先验。

这种类型的图显示了合并新数据时后验分布的演变。

中的回归模型绘制先验和后验分布

加载Nelson-Plosser数据集并创建一个默认的共轭先验模型。

P = 3;VarNames = [“他们”“E”“福”];PriorMdl = bayeslm(p,“ModelType”“共轭”“VarNames”, VarNames);负载Data_NelsonPlosserX = DataTable{:, priormll . varnames (2:end)};y = dattable . gnpr;

绘制先验分布。请求用于创建图的参数值及其各自的密度。

[pointsUsedPrior,priorDensities1] = plot(PriorMdl);

图中包含5个轴对象。标题为Intercept的Axes对象1包含一个类型为line的对象。标题为IPI的Axes对象2包含一个line类型的对象。标题为E的坐标轴对象3包含一个line类型的对象。标题为WR的Axes对象4包含一个类型为line的对象。标题为Sigma2的Axes对象5包含一个类型为line的对象。

pointsUsedPrior是一个5 × 1单元阵列的1 × 1000数值向量表示的参数值情节用于绘制相应的密度。第一个元素对应截距,后面三个元素对应回归系数,最后一个元素对应扰动方差。priorDensities1pointsUsed并包含相应的密度值。

估计后验分布。关闭估计显示。

PosteriorMdl =估计(PriorMdl,X,y,“显示”、假);

绘制后验分布。请求用于创建图的参数值及其各自的密度。

[pointsUsedPost,posteriorDensities1] = plot(PosteriorMdl);

图中包含5个轴对象。标题为Intercept的Axes对象1包含一个类型为line的对象。标题为IPI的Axes对象2包含一个line类型的对象。标题为E的坐标轴对象3包含一个line类型的对象。标题为WR的Axes对象4包含一个类型为line的对象。标题为Sigma2的Axes对象5包含一个类型为line的对象。

pointsUsedPostposteriorDensities1有相同的尺寸pointsUsedPrior.的pointsUsedPost输出可以不同pointsUsedPriorposteriorDensities1包含后验密度值。

绘制先验和后验分布。请求用于创建图的参数值及其各自的密度。

[pointsUsedPP,posteriorDensities2,priorDensities2] = plot(PosteriorMdl,PriorMdl);

图中包含5个轴对象。标题为Intercept的Axes对象1包含2个类型为line的对象。标题为IPI的坐标轴对象2包含2个类型为line的对象。标题为E的坐标轴对象3包含2个line类型的对象。标题为WR的Axes对象4包含2个类型为line的对象。标题为Sigma2的Axes对象5包含2个类型为line的对象。这些对象代表后验,先验。

所有输出值都具有相同的维度pointsUsedPrior.的posteriorDensities2输出包含后验密度值。的priorDensities2输出包含先前的密度值。

确认pointsUsedPP等于pointsUsedPost

比较= @(a,b)sum(a == b) == nummel (a);cellfun(比较、pointsUsedPost pointsUsedPP)
ans =5x1逻辑阵列1 1 1 1 1 1

所用的点数是相等的。

确认后验密度是相同的,但先验密度不是。

cellfun(比较、posteriorDensities1 posteriorDensities2)
ans =5x1逻辑阵列1 1 1 1 1 1
cellfun(比较、priorDensities1 priorDensities2)
ans =5x1逻辑阵列0 0 0 0 0

当只绘制先验分布时,情节评估点上的先验密度,产生一个清晰的先验分布图。在绘制先验分布和后验分布时,情节喜欢清楚地绘制后方。因此,绘图可以确定不同的集合点使用。

中的回归模型绘制先验和后验分布

加载Nelson-Plosser数据集,并为回归系数和扰动方差创建默认的共轭先验模型。然后,估计后验分布,得到估计汇总表总结

P = 3;VarNames = [“他们”“E”“福”];PriorMdl = bayeslm(p,“ModelType”“共轭”“VarNames”, VarNames);负载Data_NelsonPlosserX = DataTable{:, priormll . varnames (2:end)};y = dattable . gnpr;PosteriorMdl =估计(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)
summaryTbl = summary (PosteriorMdl);summaryTbl = summaryTbl. marginaldistribution;

summaryTbl表中是否包含统计信息估计在命令行中显示。

对于每个参数,确定一组50个均匀间隔的值,在平均值的三个标准偏差内。按照组成估计汇总表行的参数的顺序,将值放入5 × 1单元格向量的单元格中。

点数= cell(数值(summaryTbl.Mean),1);%预先配置j = 1: nummel (summaryTbl.Mean) Points{j} = linspace(summaryTbl.Mean(j) - 3*summaryTbl.Std(j),summaryTbl.Mean(j) + 2*summaryTbl.Std(j),50);结束

在各自的区间内绘制后验分布。

情节(PosteriorMdl“点”点)

图中包含5个轴对象。标题为Intercept的Axes对象1包含一个类型为line的对象。标题为IPI的Axes对象2包含一个line类型的对象。标题为E的坐标轴对象3包含一个line类型的对象。标题为WR的Axes对象4包含一个类型为line的对象。标题为Sigma2的Axes对象5包含一个类型为line的对象。

输入参数

全部折叠

存储后验分布特征的贝叶斯线性回归模型,指定为conjugateblmempiricalblm返回的模型对象估计

当你还指定PriorMdl,然后PosteriorMdl后验分布由什么组成PriorMdl和数据。如果NumPredictorsVarNames两个模型的属性不相等,情节产生一个错误。

贝叶斯线性回归模型存储先验分布特征,指定为conjugateblmsemiconjugateblmdiffuseblmempiricalblmcustomblmmixconjugateblmmixsemiconjugateblm,或lassoblm返回的模型对象bayeslm

当你还指定PosteriorMdl,然后PriorMdl当与数据似然结合时形成的先验分布是什么PosteriorMdl.如果NumPredictorsVarNames两个模型的属性不相等,情节产生一个错误。

名称-值参数

的可选逗号分隔对名称,值参数。名字参数名称和价值对应的值。名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“VarNames”,(“Beta1”;“Beta2”;“Sigma2”)绘制与名称对应的回归系数分布Beta1Beta2VarNames模型对象的性质和扰动方差Sigma2

参数名称,指示要在图中绘制的密度,指定为由逗号分隔的对组成“VarNames”一个单元格向量的字符向量或字符串向量。VarNames必须包括“拦截”的任意名称VarNames的属性PriorMdlPosteriorMdl,或“Sigma2”

默认情况下,情节选择“拦截”(如果模型中存在截距),所有回归系数,和“Sigma2”.如果模型有超过34个回归系数,那么情节只选择第一个到第34个。

VarNames不区分大小写。

提示

如果您的模型包含许多变量,那么尝试在单独的图上绘制参数的子集,以便更好地查看分布。

例子:“VarNames”,(“β(1)”、“β(2)”)

数据类型:字符串|细胞

用于密度计算和绘图的参数值,指定为逗号分隔的对,由“点”和一个numPoints-维数字向量或anumVarNames数值向量的-维单元向量。numPoints参数的数量是这个值吗情节评估和绘制密度。

  • 如果是数字向量吗情节评估和绘制所有指定分布的密度,使用它的元素(见VarNames).

  • 如果是数值向量的单元格向量,则:

    • numVarNames必须元素个数(VarNames,在那里VarNames的值VarNames

    • 单元格对应于元素VarNames

    • j= 1,…,numVarNames情节计算并绘制指定参数的密度VarNames{j}通过使用单元格中的点向量点(j

默认情况下,情节决定了1000用于计算和绘制每个参数的密度的适当值。

例子:'Points',{1:0.1:10: 10:0.2:25 1:0.01:2}

数据类型:|细胞

输出参数

全部折叠

用于密度评估和绘图的参数值,作为数值向量的单元格向量返回。

假设VarNames的价值是VarNames,分别。如果是数字向量吗PointsUsedrepmat ({},元素个数(VarNames)).否则,PointsUsed=.单元格对应于VarNames

评估并绘制后验密度,返回为anumVarNames数值行向量的-by-1单元向量。numVarNames元素个数(VarNames,在那里VarNames的值VarNames.单元格对应于VarNamesposteriorDensitypriorDensity

评估并绘制先验密度,返回为anumVarNames数值行向量的-by-1单元向量。priorDensityposteriorDensity

包含分布的图形窗口,返回为数字对象。

情节覆盖它生成的图形窗口。

如果你重命名FigureHandle获取新的图形窗口,或调用数字在调用之前情节,然后情节继续覆盖当前数字。若要将分布绘制到不同的图形窗口,请通过重命名当前图形窗口的图形标识符来更改其标签财产。例如,重命名当前图形窗口所调用的FigureHandlenewFigure,在命令行输入:

FigureHandle.Tag =newFigure

限制

因为不适当的分布(密度不积分为1的分布)没有很好的定义,情节不能画得很好。

更多关于

全部折叠

贝叶斯线性回归模型

一个贝叶斯线性回归模型处理参数βσ2多元线性回归(MLR)模型yt=xtβ+εt作为随机变量。

为次t= 1,…,T

  • yt是观察到的响应。

  • xt是一个1 × (p的观测值的行向量p预测因子。为了适应模型截距,x1t= 1t

  • β是a (p的列向量,对应于组成列的变量的回归系数xt

  • εt为均值为0的随机扰动,Cov(ε) =σ2T×T,而ε是一个T-by-1向量包含所有扰动。这些假设意味着数据的可能性是

    β σ 2 | y x = t = 1 T ϕ y t x t β σ 2

    ϕytxtβσ2)为带均值的高斯概率密度xtβ和方差σ2评估在yt

在考虑这些数据之前,您需要考虑联合先验分布假设(βσ2).在贝叶斯分析中,通过使用从数据的似然性中获得的关于参数的信息来更新参数的分布。结果是关节后分布(βσ2)或条件后验分布参数的。

在R2017a中引入