主要内容

semiconjugateblm

与之前semiconjugate贝叶斯线性回归模型数据的可能性

描述

贝叶斯线性回归模型对象semiconjugateblm指定的条件的先验分布β|σ2是多元高斯的意思吗μ和方差V的先验分布σ2是逆伽马和形状吗一个和规模B。具体来说,贝叶斯线性回归模型独立,normal-inverse-gamma semiconjugate模型

数据可能是 t = 1 T ϕ ( y t ; x t β , σ 2 ) , 在哪里ϕ(yt;xtβ,σ2)是高斯概率密度评估yt与的意思xtβ和方差σ2。指定的先验semiconjugate的可能性,也就是说,由此产生的条件,但没有边际,易于分析后验分布。后验分布的详细信息,请参见易于分析后验

一般来说,当你创建一个贝叶斯线性回归模型对象,它指定了联合线性回归模型的先验分布和特点。即模型对象是一个模板供进一步使用。具体地说,将数据合并到后验分布的模型分析,通过适当的模型对象和数据目标函数

创建

描述

例子

PriorMdl= semiconjugateblm (NumPredictors)创建一个贝叶斯线性回归模型对象(PriorMdl)组成的NumPredictors预测和拦截。联合的先验分布(β,σ2)是独立normal-inverse-gamma semiconjugate模型。PriorMdl是一个模板定义的先验分布和维度β

例子

PriorMdl= semiconjugateblm (NumPredictors,名称,值)使用指定的一个或多个额外的选项名称,值对参数。的名字是一个属性的名字,除了NumPredictors,价值相应的价值。的名字必须出现在单引号()。您可以指定数名称,值两参数在任何顺序Name1, Value1,…,的家

属性

全部展开

你可以设置属性值创建模型对象时使用名称-值对参数语法,或在模型创建使用点符号。例如,设定一个更加分散先验协方差矩阵PriorMdl、贝叶斯线性回归模型包含三个模型系数,输入

PriorMdl。V=100*eye(3);

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

NumPredictors必须一样的列数你的预测数据,在模型估计或您指定模拟。

当指定NumPredictors,排除任何拦截的价值。

在创建一个模型,如果你改变的价值NumPredictors使用点符号,那么这些参数恢复为默认值:

  • 变量名(VarNames)

  • 之前说的β(μ)

  • 之前的协方差矩阵β(V)

数据类型:

为包括回归模型拦截,这表中指定为一个值。

价值 描述
排除回归模型的截距。因此,β是一个p维向量,p的值是NumPredictors
真正的 包括一个拦截的回归模型。因此,β是(p+ 1)维向量。这个规范引起T1向量的前缀在估计和仿真预测数据。

如果包含一个列的预测数据的截取,然后设置拦截

例子:“拦截”,假的

数据类型:逻辑

预测变量名称显示,指定为字符串向量或细胞特征向量的向量。VarNames必须包含NumPredictors元素。VarNames (j)变量的列的名称吗j您指定的预测数据集,在估计,模拟或预测。

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

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

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

意思是参数的高斯之前β,指定为一个数值标量或矢量。

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

  • NumPredictors元素,semiconjugateblm之前设置的意思NumPredictors预测因子。预测预测数据中对应列(期间指定的评估、模拟或预测)。semiconjugateblm模型中忽略了拦截,semiconjugateblm指定默认的意思之前任何拦截。

  • NumPredictors + 1元素,第一个元素对应于之前拦截的意思,和所有其他元素对应于预测。

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

数据类型:

条件协方差矩阵的高斯之前β指定为一个c——- - - - - -c对称正定矩阵。c可以NumPredictorsNumPredictors + 1

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

    ( 1 e 5 0 0 0 V 0 ]

    semiconjugateblm属性默认拦截先验协方差,和属性V系数的预测变量的数据。行和列的V对应列(变量)的预测数据。

  • 如果cNumPredictors + 1,然后semiconjugateblm设置整个先验协方差V。第一行和列对应于拦截。其他所有行和列对应的列的预测数据。

默认值是一个公寓前。对于一个自适应前,指定诊断接头(Inf(拦截+ NumPredictors, 1))。自适应先验表明零精密为了先验分布有尽可能少的影响后分布。

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

数据类型:

之前的形状hyperparameter逆伽马σ2,指定为一个数字标量。

一个必须至少-(拦截+ NumPredictors) / 2

B保持固定,逆伽马分布变得更高、更集中一个增加。这一特点重量的先验模型σ2后评估期间比的可能性更大。

函数形式的逆伽马分布,明白了易于分析后验

例子:“一个”,0.1

数据类型:

尺度参数的逆伽马之前σ2,指定为一个积极的标量或

一个保持固定,逆伽马分布变得更高、更集中B增加。这一特点重量的先验模型σ2后评估期间比的可能性更大。

例子:“B”, 5

数据类型:

对象的功能

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

例子

全部折叠

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

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

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

假设先验分布:

  • β | σ 2 N 4 ( , V ) 意味着是一个4-by-1向量, V 是一个按比例缩小的4×4正定协方差矩阵。

  • σ 2 G ( 一个 , B ) 一个 B 分别是形状和规模的逆伽马分布。

这些假设和数据可能意味着normal-inverse-gamma semiconjugate模型。即共轭条件后验来之前对数据的可能性,但边际后分析棘手。

创建一个normal-inverse-gamma semiconjugate之前线性回归模型参数。指定数量的预测p

p = 3;Mdl = bayeslm (p,“ModelType”,“semiconjugate”)
Mdl = semiconjugateblm属性:NumPredictors: 3拦截:1 VarNames: {4 x1细胞}μ:x1双[4]V: [4 x4双]A: 3 B: 1 |意味着性病CI95积极分配- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -拦截| 0 100 [-195.996,195.996]0.500 N(0.00、100.00 ^ 2)β(1)| 0 100 [-195.996,195.996]0.500 N(0.00、100.00 ^ 2)β(2)| 0 100 [-195.996,195.996]0.500 N(0.00、100.00 ^ 2)β(3)| 0 100 [-195.996,195.996]0.500 N (0.00、100.00 ^ 2) Sigma2 | 0.5000 - 0.5000[0.138, 1.616] 1.000搞笑(3.00,1)

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

你可以设置可写属性值创建模型的使用点符号。回归系数的名称设置为相应的变量名。

Mdl。VarNames = [“他们”“E”“福”]
Mdl = semiconjugateblm属性:NumPredictors: 3拦截:1 VarNames: {4 x1细胞}μ:x1双[4]V: [4 x4双]A: 3 B: 1 |意味着性病CI95积极分配- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -拦截| 0 100 [-195.996,195.996]0.500 N (0.00、100.00 ^ 2) IPI | 0 100 [-195.996, 195.996] 0.500 N (0.00、100.00 ^ 2) E | 0 100 [-195.996, 195.996] 0.500 N (0.00、100.00 ^ 2) WR | 0 100 [-195.996, 195.996] 0.500 N (0.00、100.00 ^ 2) Sigma2 | 0.5000 - 0.5000[0.138, 1.616] 1.000搞笑(3.00,1)

考虑线性回归模型创建Normal-Inverse-Gamma Semiconjugate先验模型

创建一个normal-inverse-gamma semiconjugate之前线性回归模型参数。指定数量的预测p和回归系数的名称。

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

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

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

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

rng (1);%的再现性PosteriorMdl =估计(PriorMdl, X, y);
方法:吉布斯抽样数量与10000年吸引的观察:62年的预测数量:4 |意味着性病CI95积极分配- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -拦截| -23.9922 - 9.0520[-41.734,-6.198]0.005经验IPI | 4.3929 - 0.1458[4.101, 4.678] 1.000经验E | 0.0011 - 0.0003[0.000, 0.002] 0.999经验或者说是| 2.4711 - 0.3576[1.762,3.178]1.000经验Sigma2 | 46.7474 - 8.4550[33.099, 66.126] 1.000经验

PosteriorMdl是一个empiricalblm模型对象存储的后验分布 β σ 2 考虑到数据。估计显示一个总结边缘后验分布的命令窗口。行总结对应回归系数和扰动变化,和列后验分布的特点。特点包括:

  • CI95,其中包含参数的贝叶斯equitailed 95%可信区间。例如,后验概率的回归系数或者说是0.95在[1.762,3.178]。

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

在这种情况下,边际分析后是棘手的。因此,估计用吉布斯抽样从后和估计后特征。

默认情况下,估计平,丢弃5000年老化的样本大小。然而,是一种很好的做法检查跟踪的情节吸引了足够的混合和缺乏无常。画一个跟踪每个参数的情节吸引了。您可以访问了组成分布,即属性BetaDrawsSigma2Draws,使用点符号。

图;j = 1: (p + 1)次要情节(2,2,j);情节(PosteriorMdl.BetaDraws (j,:));标题(sprintf (' % s ',PosteriorMdl.VarNames {j}));结束

图包含4轴对象。坐标轴对象1标题拦截包含一个类型的对象。坐标轴对象2标题IPI包含一个类型的对象。坐标轴对象与标题3 E包含一个类型的对象。坐标轴对象4标题或者说是包含一个类型的对象。

图;情节(PosteriorMdl.Sigma2Draws);标题(“Sigma2”);

图包含一个坐标轴对象。坐标轴对象与标题Sigma2包含一个类型的对象。

跟踪情节似乎表明了混合好,也就是说,没有可检测无常或序列相关性,各州之间的吸引不跳。

考虑线性回归模型创建Normal-Inverse-Gamma Semiconjugate先验模型

创建一个normal-inverse-gamma semiconjugate之前线性回归模型参数。指定数量的预测p和回归系数的名称。

p = 3;PriorMdl = bayeslm (p,“ModelType”,“semiconjugate”,“VarNames”,(“他们”“E”“福”])
PriorMdl = semiconjugateblm属性:NumPredictors: 3拦截:1 VarNames: {4 x1细胞}μ:x1双[4]V: [4 x4双]A: 3 B: 1 |意味着性病CI95积极分配- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -拦截| 0 100 [-195.996,195.996]0.500 N (0.00、100.00 ^ 2) IPI | 0 100 [-195.996, 195.996] 0.500 N (0.00、100.00 ^ 2) E | 0 100 [-195.996, 195.996] 0.500 N (0.00、100.00 ^ 2) WR | 0 100 [-195.996, 195.996] 0.500 N (0.00、100.00 ^ 2) Sigma2 | 0.5000 - 0.5000[0.138, 1.616] 1.000搞笑(3.00,1)

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

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

估计的条件后验分布 β 考虑到数据和 σ 2 = 2 ,然后返回评估汇总表访问估计。

[Mdl,总结]=估计(PriorMdl, X, y,“Sigma2”2);
方法:分析后验分布条件变量:Sigma2固定在2号的观察:62年的预测数量:4 |意味着性病CI95积极分配- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -拦截| -24.2452 - 1.8693 [-27.909,-20.581]0.000 N (-24.25、1.87 ^ 2) IPI | 4.3914 - 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:(- 1))
condPostMeanBeta =4×1-24.2452 4.3914 0.0011 2.4683
CondPostCovBeta =总结。协方差(1:(- 1),1:结束(- 1))
CondPostCovBeta =4×43.4944 0.0349 -0.0001 0.0241 0.0349 0.0009 -0.0000 -0.0013 -0.0001 -0.0000 0.0000 -0.0000 0.0241 -0.0013 -0.0000 0.0055

显示Mdl

Mdl
Mdl = semiconjugateblm属性:NumPredictors: 3拦截:1 VarNames: {4 x1细胞}μ:x1双[4]V: [4 x4双]A: 3 B: 1 |意味着性病CI95积极分配- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -拦截| 0 100 [-195.996,195.996]0.500 N (0.00、100.00 ^ 2) IPI | 0 100 [-195.996, 195.996] 0.500 N (0.00、100.00 ^ 2) E | 0 100 [-195.996, 195.996] 0.500 N (0.00、100.00 ^ 2) WR | 0 100 [-195.996, 195.996] 0.500 N (0.00、100.00 ^ 2) Sigma2 | 0.5000 - 0.5000[0.138, 1.616] 1.000搞笑(3.00,1)

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

考虑线性回归模型估计边缘后验分布

创建一个模型的回归系数和扰动变化之前,然后估计边缘后验分布。

p = 3;PriorMdl = bayeslm (p,“ModelType”,“semiconjugate”,“VarNames”,(“他们”“E”“福”]);负载Data_NelsonPlosserX = DataTable {: PriorMdl.VarNames(2:结束)};y = DataTable {:,“GNPR”};rng (1);%的再现性PosteriorMdl =估计(PriorMdl, X, y);
方法:吉布斯抽样数量与10000年吸引的观察:62年的预测数量:4 |意味着性病CI95积极分配- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -拦截| -23.9922 - 9.0520[-41.734,-6.198]0.005经验IPI | 4.3929 - 0.1458[4.101, 4.678] 1.000经验E | 0.0011 - 0.0003[0.000, 0.002] 0.999经验或者说是| 2.4711 - 0.3576[1.762,3.178]1.000经验Sigma2 | 46.7474 - 8.4550[33.099, 66.126] 1.000经验

估计后验分布汇总统计数据 β 通过使用了从后验分布存储模型。

estBeta =意味着(PosteriorMdl.BetaDraws, 2);EstBetaCov = x (PosteriorMdl.BetaDraws ');

假设如果实际工资系数低于2.5,则颁布了一项政策。尽管的后验分布或者说是是已知的,所以你可以直接计算概率,您可以使用蒙特卡罗模拟估计的概率。

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

NumDraws = 1 e6;rng (1);BetaSim =模拟(PosteriorMdl,“NumDraws”,NumDraws);

BetaSim是一个4×-1 e6矩阵包含了。行对应的回归系数和列连续的吸引。

隔离了相应的实际工资系数,然后确定哪些吸引小于2.5。

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

找到的回归系数的边缘后验概率或者说是低于2.5通过计算的比例小于2.5的吸引。

probWRLT2p5 =意味着(isWRLT2p5)
probWRLT2p5 = 0.5283

实际工资的后验概率系数小于2.50.53

版权2018年MathWorks公司。

考虑线性回归模型估计边缘后验分布

创建一个模型的回归系数和扰动变化之前,然后估计边缘后验分布。坚持过去10期的数据估计,这样你可以使用它们来预测实际国民生产总值。关掉估计显示。

p = 3;PriorMdl = bayeslm (p,“ModelType”,“semiconjugate”,“VarNames”,(“他们”“E”“福”]);负载Data_NelsonPlosserfhs = 10;%预测地平线大小X = DataTable{1:(结束- fhs), PriorMdl.VarNames(2:结束)};y = DataTable{1:(结束- fhs),“GNPR”};XF = DataTable{(结束- fhs + 1):最终,PriorMdl.VarNames(2:结束)};%未来的预测数据yFT = DataTable{(结束- fhs + 1):结束,“GNPR”};%未来真实的反应rng (1);%的再现性PosteriorMdl =估计(PriorMdl, X, y,“显示”、假);

使用后预测分布和预测反应使用未来的预测数据XF。情节的真实值响应和预测的值。

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

图包含一个坐标轴对象。坐标轴对象与标题真正的国民生产总值:1909 - 1970包含3补丁类型的对象,线。这些对象代表预测地平线,真实GNPR,预测GNPR。

yF是一个10-by-1向量的值相对应的实际国民生产总值未来预测数据。

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

frmse =√意味着(yF - yFT) ^ 2))
frmse = 25.1938

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

更多关于

全部展开

算法

你可以重置所有使用点符号模型属性,例如,PriorMdl。V=diag(Inf(3,1))。的属性重置,semiconjugateblm最小值的错误检查。最小化错误检查的优势降低开销成本为马尔可夫链蒙特卡罗模拟,从而导致算法的高效执行。

选择

bayeslm函数可以创建任何支持先前对贝叶斯线性回归的模型对万博1manbetx象。

版本历史

介绍了R2017a