主要内容

模拟

模拟贝叶斯线性回归模型的回归系数和扰动方差

描述

例子

BetaSimsigma2Sim=模拟(Mdl返回回归系数的随机向量(BetaSim)和随机扰动方差(sigma2Sim)从贝叶斯线性回归模型Mdlβ而且σ2

  • 如果Mdl联合先验模型(由bayeslm),然后模拟从先前的分布中抽取。

  • 如果Mdl关节后侧模型(还由估计),然后模拟从后验分布中抽取。

例子

BetaSimsigma2Sim=模拟(MdlXy从合并预测数据产生或更新的边际后验分布中抽取X以及相应的响应数据y

  • 如果Mdl是联合先验模型吗模拟通过使用从数据中获得的参数信息更新先验模型,生成边际后验分布。

  • 如果Mdl是一个边缘后验模型,那么模拟用从附加数据中获得的参数信息更新后验。完全数据似然由附加数据构成X而且y,以及创建的数据Mdl

数据中的S表示缺失值,即模拟通过使用列表删除进行删除。

例子

BetaSimsigma2Sim=模拟(___名称,值使用前面语法中的任何输入参数组合,以及由一个或多个名-值对参数指定的其他选项。例如,可以为指定值βσ2有条件的一个参数的后验分布,给定另一个参数的指定值。

例子

BetaSimsigma2SimRegimeSim=模拟(___还返回从潜在的政权分布中抽取如果Mdl为随机搜索变量选择(SSVS)的贝叶斯线性回归模型,即,如果Mdl是一个mixconjugateblmmixsemiconjugateblm模型对象。

例子

全部折叠

考虑预测美国实际国民生产总值(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 分别是逆伽马分布的形状和比例。

这些假设和数据似然暗示了一个正态-逆伽马共轭模型。

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

负载Data_NelsonPlosservarNames = {“他们”“E”“福”};X = DataTable{:,varNames};y = DataTable{:,“GNPR”};

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

P = 3;PriorMdl = bayeslm(p,“ModelType”“共轭”“VarNames”, varNames);

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

模拟一组回归系数和先验分布的扰动方差值。

rng (1);%用于再现性[betaSimPrior,sigma2SimPrior] =模拟(PriorMdl)
betaSimPrior =4×1-33.5917 -49.1445 -37.4492 -25.3632
sigma2SimPrior = 0.1962

betaSimPrior随机绘制的4乘1回归系数向量是否与中名称对应PriorMdl。VarNames.的sigma2SimPrior输出是随机绘制的标量扰动方差。

估计后验分布。

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)

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

模拟一组回归系数和来自后验分布的扰动方差值。

[betaSimPost,sigma2SimPost] =模拟(PosteriorMdl)
betaSimPost =4×1-25.9351 4.4379 0.0012 2.4072
sigma2SimPost = 41.9575

betaSimPost而且sigma2SimPost有相同的尺寸betaSimPrior而且sigma2SimPrior,但都是从后面画的。

中的回归模型从先验和后验分布模拟参数值

加载数据并为回归系数和扰动方差创建一个共轭先验模型。然后估计后验分布,返回估计汇总表。

负载Data_NelsonPlosservarNames = {“他们”“E”“福”};X = DataTable{:,varNames};y = DataTable{:,“GNPR”};P = 3;PriorMdl = bayeslm(p,“ModelType”“共轭”“VarNames”, varNames);[PosteriorMdl,Summary] = 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)

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

虽然边际和条件后验分布 β 而且 σ 2 是分析上易于处理的,本例着重于如何实现吉布斯采样器来重现已知的结果。

再次估计模型,但使用吉布斯采样器。从参数的条件后验分布中交替抽样。采样10,000次,并创建变量进行预分配。的条件后验开始采样器 β 鉴于 σ 2 2

M = 1e4;BetaDraws = 0 (p + 1,m);= 0 (1,m + 1);sigma2drawing (1) = 2;rng (1);%用于再现性j = 1:m BetaDraws(:,j) =模拟(PriorMdl,X,y,“Sigma2”sigma2Draws (j));[~,sigma2Draws(j + 1)] =模拟(PriorMdl,X,y,“β”BetaDraws (:, j));结束sigma2drawing = sigma2drawing(2:结束);从MCMC样本中去除初始值

绘制参数的轨迹图。

图;J = 1:(p + 1);次要情节(2,2,j);情节(BetaDraws (j,:)) ylabel (“获得画”)包含(“模拟指数”)标题(sprintf (“跟踪图- %s”, PriorMdl.VarNames {j}));结束

图中包含4个轴对象。axis对象1,标题为Trace Plot - Intercept, xlabel Simulation Index, ylabel MCMC Draw,包含一个类型为line的对象。axis对象2,标题为Trace Plot - IPI, xlabel Simulation Index, ylabel MCMC Draw包含一个类型为line的对象。axis对象3,标题为Trace Plot - E, xlabel Simulation Index, ylabel MCMC Draw包含一个类型为line的对象。axis对象4,标题为Trace Plot - WR, xlabel Simulation Index, ylabel MCMC Draw包含一个类型为line的对象。

图;情节(sigma2Draws) ylabel (“获得画”)包含(“模拟指数”)标题(“痕迹图- Sigma2”

图中包含一个轴对象。标题为Trace plot - Sigma2, xlabel Simulation Index, ylabel MCMC Draw的axis对象包含一个类型为line的对象。

马尔可夫链蒙特卡罗(MCMC)样本具有较好的收敛性和混合性。

应用1000张图的老化期,然后计算MCMC样本的均值和标准差。将它们与来自估计

Bp = 1000;postBetaMean = mean(BetaDraws(:,(bp + 1):end),2);postSigma2Mean = mean(sigma2Draws(:,(bp + 1):end));postBetaStd =性病(BetaDraws (:, (bp + 1):结束),[],2);postSigma2Std = std(sigma2draw((bp + 1):end));[摘要:1:2),表([postBetaMean;postSigma2Mean),...[postBetaStd;postSigma2Std),“VariableNames”, {“GibbsMean”“GibbsStd”}))
ans =5×4表Mean Std GibbsMean GibbsStd _________ __________ _________ __________ Intercept -24.249 8.7821 -24.293 8.748 IPI 4.3913 0.1414 4.3917 0.13941 E 0.0011202 0.00032931 0.0011229 0.00032875 WR 2.4683 0.34895 2.4654 0.34364 Sigma2 44.135 7.802 44.011 7.7816

估计结果非常接近。MCMC的变化说明了差异。

中的回归模型从先验和后验分布模拟参数值

假设这些先验分布 k = 0,…,3:

  • β k | σ 2 γ k γ k σ V k 1 Z 1 + 1 - γ k σ V k 2 Z 2 ,在那里 Z 1 而且 Z 2 是独立的标准正态随机变量。因此,系数具有高斯混合分布。假设所有系数都是条件独立的,先验的,但它们依赖于扰动方差。

  • σ 2 G 一个 B 一个 而且 B 分别是逆伽马分布的形状和比例。

  • γ k 0 1 它表示具有离散均匀分布的随机变量-包含状态变量。

为执行SSVS创建一个先验模型。假设 β 而且 σ 2 是相互依赖的(共轭混合模型)。指定预测器的数量p回归系数的名称。

P = 3;PriorMdl = mixconjugateblm(p,“VarNames”, (“他们”“E”“福”]);

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

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

计算可能的状态的数量,也就是说,在模型中包含和排除变量所产生的组合的数量。

cardRegime = 2^(PriorMdl.)拦截+PriorMdl。NumPredictors)
cardRegime = 16

从后验分布模拟10,000个区域。

rng (1);[~,~, regesim] =模拟(PriorMdl,X,y,“NumDraws”, 10000);

RegimeSim是一个4乘1000的逻辑矩阵。行对应于中的变量Mdl。VarNames,列对应后验分布的图。

绘制访问过的政权的直方图。重新编码制度,使他们可读。具体来说,对于每个区域,创建一个字符串来标识模型中的变量,并用圆点分隔变量。

cRegime = num2cell(regesim,1);cRegime = categorical(cellfun(@(c)join(priormll . varnames (c),“。”), cRegime));cRegime (ismissing (cRegime)) =“NoCoefficients”;直方图(cRegime);标题(“模型中包含的变量”) ylabel (“频率”);

图中包含一个轴对象。标题为Variables Included in Models, ylabel Frequency的axis对象包含了一个categoricalhistogram类型的对象。

计算变量包含的边际后验概率。

表(意思是(RegimeSim, 2),“RowNames”, PriorMdl。VarNames,...“VariableNames”“政权”
ans =4×1表政权______拦截0.8829 IPI 0.4547 E 0.098 WR 0.1692

考虑一个贝叶斯线性回归模型,它包含一个预测器和一个t具有剖面自由度参数的分布扰动方差 ν

  • λ j G ν / 2 2 / ν

  • ε j | λ j N 0 λ j σ 2

  • f β σ 2 1 σ 2

这些假设意味着:

  • ε j t 0 σ 2 ν

  • λ j | ε j G ν + 1 2 2 ν + ε j 2 / σ 2

λ 是潜在尺度参数的向量,将低精度归因于远离回归线的观测。 ν 是否超参数控制的影响 λ 根据观察结果。

对于这个问题,吉布斯采样器非常适合估计系数,因为您可以在条件下模拟贝叶斯线性回归模型的参数 λ ,然后模拟 λ 从它的条件分布。

生成 n 1 0 0 的回应 y t 1 + 2 x t + e t 在哪里 x 0 2 而且 e t N 0 0 5 2

rng (“默认”);N = 100;X = linspace(0,2,n)';B0 = 1;B1 = 2;σ = 0.5;E = randn(n,1);Y = b0 + b1*x + sigma*e;

通过膨胀下面的所有响应来引入外围响应 x 0 2 5 乘以3。

Y (x < 0.25) = Y (x < 0.25)*3;

为数据拟合线性模型。绘制数据和拟合回归线。

Mdl = fitlm(x,y)
Mdl =线性回归模型:y ~ 1 + x1估计系数:估计SE tStat pValue ________ _______ ______ __________(截距)2.6814 0.28433 9.4304 2.0859e-15 x1 0.78974 0.24562 3.2153 0.0017653观测数:100,误差自由度:98均方根误差:1.43 r平方:0.0954,调整r平方:0.0862 f统计量vs常数模型:10.3,p值= 0.00177
图;情节(Mdl);Hl =传说;持有

图中包含一个轴对象。标题为y的axis对象vs. x1, xlabel x1, ylabel y包含4个类型为line的对象。一行或多行仅使用标记显示其值。这些对象表示数据、拟合、置信度边界。

模拟的异常值似乎会影响拟合的回归线。

实现这个吉布斯采样器:

  1. 的后验分布绘制参数 β σ 2 | y x λ .缩小观察 λ ,创建一个带有两个回归系数的扩散先验模型,并从后验中绘制一组参数。第一个回归系数对应于截距,所以要明确bayeslm不包括拦截。

  2. 计算残差。

  3. 的条件后验中提取值 λ

运行吉布斯采样器进行20,000次迭代,并应用5,000次的老化期。指定 ν 1 ,为后验绘制预分配,并初始化 λ 到1的向量上。

M = 20000;Nu = 1;Burnin = 5000;= ones(n,m + 1);estBeta = 0 (2,m + 1);estSigma2 = 0 (1,m + 1);j = 1:m yDef = y./√(lambda(:,j));xDef = [ones(n,1) x]./sqrt(lambda(:,j));PriorMdl = bayeslm(2,“模型”“扩散”“拦截”、假);[estBeta(:,j + 1),estSigma2(1,j + 1)] =模拟(PriorMdl,xDef,yDef);ep = y - [ones(n,1) x]*estBeta(:,j + 1);Sp = (nu + 1)/2;Sc = 2。/(nu + ep.^2/estSigma2(1,j + 1)); lambda(:,j + 1) = 1./gamrnd(sp,sc);结束

一个很好的方法是通过检查轨迹图来诊断MCMC采样器。为简洁起见,本例跳过此任务。

计算回归系数的后验结果的平均值。删除老化期间绘制。

poststestbeta = mean(estBeta(:,(burnin + 1):end),2)
postEstBeta =2×11.3971 - 1.7051

截距的估计值比返回的估计值低,斜率比返回的估计值高fitlm

用最小二乘拟合的回归线绘制鲁棒回归线。

H = gca;xlim = h.XLim';plotY = [ones(2,1) xlim]*postEstBeta;情节(xlim plotY,“线宽”2);霍奇金淋巴瘤。{4} =字符串“稳健贝叶斯

图中包含一个轴对象。标题为y的axis对象vs. x1, xlabel x1, ylabel y包含5个类型为line的对象。其中一行或多行仅使用标记显示其值。这些对象表示数据、拟合、置信边界、健壮贝叶斯。

使用鲁棒贝叶斯回归的回归线拟合似乎是一个更好的拟合。

最大后验概率(MAP)估计是后验模式,即产生后验pdf的最大值的参数值。如果后验是难以分析的,那么你可以使用蒙特卡罗抽样来估计MAP。

中的线性回归模型从先验和后验分布模拟参数值

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

负载Data_NelsonPlosservarNames = {“他们”“E”“福”};X = DataTable{:,varNames};y = DataTable{:,“GNPR”};

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

P = 3;PriorMdl = bayeslm(p,“ModelType”“共轭”“VarNames”varNames)
PriorMdl =共轭与属性:NumPredictors: 3拦截: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)

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

rng (1);%用于再现性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)

显示包括边际后验分布统计。

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

estBetaMean = posteriormll . mu;Summary = Summary (PosteriorMdl);EstBetaCov =总结。协方差{1:(end - 1),1:(end - 1)};

estBetaMean4 × 1向量是否表示后验边缘的均值 β EstBetaCov4 × 4矩阵是否表示后验的协方差矩阵 β

从后验分布中绘制10,000个参数值。

rng (1);%用于再现性[BetaSim,sigma2Sim] =模拟(PosteriorMdl,“NumDraws”1 e5);

BetaSim是一个由随机绘制的回归系数组成的4乘10,000矩阵。sigma2Sim是随机绘制的扰动方差的1乘10,000向量。

对回归系数矩阵进行转置和标准化。计算回归系数的相关矩阵。

estBetaStd = sqrt(diag(EstBetaCov)');BetaSim = BetaSim';BetaSimStd = (BetaSim - estBetaMean')./estBetaStd;BetaCorr = corrcov(EstBetaCov);BetaCorr = (BetaCorr + BetaCorr')/2;%强制对称

因为边际后验分布是已知的,所以在所有模拟值处评估后验pdf。

betaPDF = mvtpdf(BetaSimStd,BetaCorr,68);A = 34;B = 0.00069;igPDF = @ (x,美联社、英国石油公司)1. /(伽马(美联社)。* bp。^美联社)。* x。^ (-ap-1)。* exp (-1. / (x。* bp));...%逆伽马pdfigPDF(sigma2Sim,a,b);

找出使各自pdf值最大的模拟值,即后验模式。

[~,idxMAPBeta] = max(betaPDF);[~,idxMAPSigma2] = max(sigma2PDF);betaMAP = BetaSim(idxMAPBeta,:);(idxMAPSigma2);

betaMAP而且sigma2MAP是MAP估计值。

因为后面 β 为对称单峰,则后验均值与MAP应相同。比较的MAP估计 β 它的后验均值。

表(betaMAP’,PosteriorMdl。亩,“VariableNames”, {“地图”“的意思是”},...“RowNames”PriorMdl.VarNames)
ans =4×2表MAP均值_________ _________截距-24.559 -24.249 IPI 4.3964 4.3913 E 0.0011389 0.0011202 WR 2.4473 2.4683

这些估计彼此相当接近。

估计后验的分析模式 σ 2 .将其与估计的MAP进行比较 σ 2

igMode = 1 (b*(a+1))
igMode = 41.4079
sigma2MAP
sigma2MAP = 41.4075

这些估计也相当接近。

输入参数

全部折叠

标准贝叶斯线性回归模型或预测变量选择模型,在本表中指定为模型对象。

模型对象 描述
conjugateblm 所返回的依赖的法向-逆-共轭模型bayeslm估计
semiconjugateblm 所返回的独立的法向-逆伽玛半共轭模型bayeslm
diffuseblm 由扩散先验模型返回bayeslm
empiricalblm 先验模型以先验分布的样本为特征,由bayeslm估计
customblm 返回的先验分布函数bayeslm
mixconjugateblm SSVS预测变量选择的依赖的高斯-混合-逆-伽马共轭模型bayeslm
mixsemiconjugateblm SSVS预测变量选择的独立的高斯-混合-逆伽马半共轭模型bayeslm
lassoblm 由贝叶斯套索回归模型返回bayeslm

请注意

  • 通常,由返回的模型对象估计表示边际后验分布。当你用估计,如果指定条件后验估计,则估计返回先前的模型。

  • 如果Mdl是一个diffuseblm模型,那么你也必须供应X而且y因为模拟不能从不恰当的先验分布中得出结论。

  • 如果你提供lassoblmmixconjugateblm,或mixsemiconjugateblm建模对象,提供数据X而且y,并从后验中提取一个值,那么最佳实践是通过指定BetaStart而且Sigma2Start名称-值对参数。

多元线性回归模型的预测数据,指定为anumObservations——- - - - - -PriorMdl。NumPredictors数字矩阵。numObservations观察的次数和长度是否一定等于y

如果Mdl是后验分布,那么列的X必须对应于预测数据的列,用于估计后验。

数据类型:

用于多元线性回归模型的响应数据,指定为带有的数值向量numObservations元素。

数据类型:

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“Sigma2”,2指定模拟从回归系数的条件后验分布给定的数据和指定的扰动方差2

所有型号的选项

全部折叠

从分布中抽取样本的次数Mdl,指定为逗号分隔的对,由“NumDraws”一个正整数。

提示

如果Mdl是一个empiricalblm或者一个customblm模型对象,那么一个好的做法是指定一个老化期燃烧和一个稀释倍增器.调整后的样本量详见算法

例子:e7 NumDraws, 1

数据类型:

除经验模型外的所有模型的选项

全部折叠

从扰动方差的条件分布中模拟的回归系数的值,指定为由逗号分隔的对组成“β”和一个(Mdl。我ntercept+Mdl。NumPredictors)-by-1的数值向量。当使用后验分布时,模拟πσ2|yXββ),yyXX,β的值“β”.如果Mdl。我ntercept真正的,然后β(1)对应于模型截距。所有其他值都对应于组成列的预测变量X

你不能指定β而且Sigma2同时进行。

默认情况下,模拟的条件后验σ2

例子:“贝塔”,1:3

数据类型:

从回归系数的条件分布中模拟的扰动方差的值,指定为由逗号分隔的对组成“Sigma2”和一个正的标量。当使用后验分布时,模拟πβ|yXSigma2),yyXX,Sigma2的值“Sigma2”

你不能指定Sigma2而且β同时进行。

默认情况下,模拟的条件后验β

例子:“Sigma2”,1

数据类型:

除共轭和经验模型外的所有模型的选项

全部折叠

从样本开始删除以减少瞬态影响的绘制数,指定为由逗号分隔的对组成的“燃烧”一个非负标量。有关如何模拟减少整个样本,参见算法

提示

要帮助您指定适当的老化期大小:

  1. 通过指定,确定样本中瞬态行为的程度“燃烧”,0

  2. 通过使用模拟几千个观测值模拟

  3. 绘制轨迹图。

例子:“燃烧”,0

数据类型:

调整后的样本量倍增器,指定为由逗号分隔的对组成“薄”一个正整数。

实际样本量为燃烧+NumDraws*薄.丢弃旧版后,模拟丢弃每- - - - - -1抽取,然后保留下一次抽取。有关如何操作的详细信息模拟减少整个样本,参见算法

提示

减少样本中潜在的大序列相关性,或减少存储在图中的内存消耗PosteriorMdl,为指定一个较大的值

例子:“薄”,5

数据类型:

采样器的回归系数的起始值,指定为逗号分隔的对,由“BetaStart”和一个数值列向量(Mdl。我ntercept+Mdl。NumPredictors)元素。默认情况下,BetaStart为普通最小二乘(OLS)估计。

提示

跑步是一个很好的练习模拟多次使用不同的参数起始值。验证每次运行的估计值是否收敛于相似的值。

例子:“BetaStart”,[1;2;3]

数据类型:

采样器扰动方差的起始值,指定为逗号分隔的对,由“Sigma2Start”和一个正的标量。默认情况下,Sigma2Start为OLS残差均方误差。

提示

跑步是一个很好的练习模拟多次使用不同的参数起始值。验证每次运行的估计值是否收敛于相似的值。

例子:“Sigma2Start”4

数据类型:

SSVS模型的选项

全部折叠

采样器的潜在状态的起始值,指定为逗号分隔的对,由“RegimeStart”和一个逻辑列向量(Mdl。我ntercept+Mdl。NumPredictors)元素。RegimeStart (k真正的指示变量的包含Mdl。VarNames(k,RegimeStart (k指示排除该变量。

提示

跑步是一个很好的练习模拟多次使用不同的参数起始值。验证每次运行的估计值是否收敛于相似的值。

例子:“RegimeStart”,逻辑(randi ([0, 1], Mdl。拦截+ mld . numpredictors,1))

数据类型:

自定义模型的选项

全部折叠

Reparameterization的σ2日志(σ2)进行后验估计和模拟,指定为逗号分隔的对,由“Reparameterize”和这个表中的一个值。

价值 描述
模拟不重新参数化σ2
真正的 模拟reparameterizesσ2日志(σ2).模拟的函数形式,将结果转换回原始尺度PriorMdl。LogPDF

提示

的后验估计或模拟过程中遇到数值不稳定性σ2,然后指定“Reparameterize”,真的

例子:“Reparameterize”,真的

数据类型:逻辑

MCMC采样器,指定为逗号分隔的对,由的取样器和这个表中的一个值。

价值 描述
“切” 片取样器
“大都市” 随机游走大都会抽样器
hmc的 哈密顿蒙特卡罗(HMC)采样器

提示

  • 为了提高MCMC绘制的质量,调整采样器。

    1. 在调用之前模拟,通过使用指定调优参数及其值sampleroptions.例如,指定切片采样器宽度宽度使用:

      选项= sampleroptions(的取样器“切”“宽度”、宽度);

    2. 指定包含由返回的调优参数规范的对象sampleroptions通过使用“选项”名称-值对参数。例如,在中使用调优参数规范选项指定:

      “选项”,选择

  • 如果指定了HMC采样器,那么最佳实践是至少为某些变量提供梯度。模拟利用数值计算任何缺失的偏导数(值)的梯度向量。

例子:“取样器”,“hmc”

数据类型:字符串

采样器选项,指定为逗号分隔的对,由“选项”和返回的结构数组sampleroptions.使用“选项”来指定MCMC采样器及其调优参数值。

例子:“选项”,sampleroptions(取样器,hmc)

数据类型:结构体

切片采样器边缘分布中当前值周围的典型采样间隔宽度,指定为逗号分隔的对,由“宽度”和一个正数值标量或a (PriorMdl。拦截+PriorMdl。NumPredictors+1)-by-1数值向量的正数值。第一个元素对应于模型截距(如果模型中存在的话)。下一个PriorMdl。NumPredictors元素对应于预测器数据列排序的预测器变量的系数。最后一个元素对应于模型方差。

  • 如果宽度是标量吗模拟适用于宽度对所有PriorMdl。NumPredictors+PriorMdl。拦截+1边际分布。

  • 如果宽度是数字向量吗模拟将第一个元素应用到拦截(如果存在),然后应用下一个元素PriorMdl。NumPredictors元素中的回归系数与预测变量相对应X为扰动方差的最后一个元素。

  • 如果样本量(大小(X, 1))则小于100宽度10默认情况下。

  • 如果样本量至少是100,那么模拟宽度默认为对应后验标准差的向量,假设一个扩散先验模型(diffuseblm).

切片采样器的典型宽度不影响MCMC样本的收敛性。它确实会影响所需函数求值的数量,也就是算法的效率。如果宽度太小,那么算法可以实现过多的函数计算来确定合适的采样宽度。如果宽度太大,那么算法可能不得不将宽度减小到适当的大小,这需要函数计算。

模拟发送宽度slicesample函数。详情请参见slicesample

提示

  • 为获得最大的灵活性,请指定切片采样器宽度宽度通过使用“选项”名称-值对参数。例如:

    “选项”sampleroptions (的取样器“切”“宽度”、宽度)

例子:的“宽度”,(100 * (3,1);10]

输出参数

全部折叠

模拟回归系数,返回为(Mdl。我ntercept+Mdl。NumPredictors)———NumDraws数字矩阵。行对应于中的变量Mdl。VarNames,列对应于从分布中单独的、连续的、独立的抽取。

模拟扰动方差,以1 × -的形式返回NumDraws正数值向量。列对应于从分布中单独、连续、独立的抽取。

指示变量从模型中包含或排除的模拟状态,返回为(Mdl。我ntercept+Mdl。NumPredictors)———NumDraws逻辑矩阵。行对应于中的变量Mdl。VarNames,列对应于从分布中单独的、连续的、独立的抽取。

模拟返回政权只有在Mdl是一个mixconjugateblmmixsemiconjugateblm模型对象。

RegimeSim (kd真正的指示变量的包含Mdl。VarNames(k在模型中绘制d,RegimeSim (kd指示在绘制的模型中排除该变量d

限制

  • 模拟对象中绘制值分配不当,即密度不积分为1的分布。

  • 如果Mdl是一个empiricalblm模型对象,则不能指定βSigma2.你不能用经验分布来模拟条件后验分布。

更多关于

全部折叠

贝叶斯线性回归模型

一个贝叶斯线性回归模型处理参数β而且σ2多元线性回归(MLR)模型ytxtβ+ε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)或条件后验分布参数的。

算法

  • 每当模拟必须估计后验分布(例如,何时Mdl代表了先前的分配和你的供给X而且y),后验是可分析的,模拟直接从后方模拟。否则,模拟采用蒙特卡洛模拟估计后验。详情请参见后验估计与推断

  • 如果Mdl是关节后侧模型,那么模拟模拟来自它的不同数据Mdl是联合先验模型和你供应X而且y.因此,如果设置相同的随机种子并以两种方式生成随机值,那么您可能不会获得相同的值。但是,基于足够数量的抽签,相应的经验分布是有效等效的。

  • 这张图显示了模拟的值减少样本NumDraws,燃烧

    图形的视觉表示为值为numdrawing, BurnIn和Thin-1的白色和黑色矩形

    矩形表示从分布中连续抽取。模拟从示例中移除白色矩形。剩下的NumDraws黑色矩形组成样本。

  • 如果Mdl是一个semiconjugateblm建模对象,然后模拟通过应用吉布斯采样器从后验分布中得到样本。

    1. 模拟的默认值Sigma2Startσ2并得到一个值βπβ|σ2Xy).

    2. 模拟绘制一个值σ2πσ2|βXy),以使用先前生成的值β

    3. 函数重复步骤1和步骤2,直到收敛为止。为了评估收敛性,绘制样本的迹图。

    如果你指定BetaStart,然后模拟绘制一个值σ2πσ2|βXy)启动吉布斯采样器。模拟不返回此生成的值σ2

  • 如果Mdl是一个empiricalblm模型对象,您不提供X而且y,然后模拟Mdl。βDraws而且Mdl。Sigma2Draws.如果NumDraws小于或等于元素个数(Mdl.Sigma2Draws),然后模拟返回第一个NumDraws的元素Mdl。βDraws而且Mdl。Sigma2Draws随机抽取相应的参数。否则,模拟随机重新取样NumDraws的元素Mdl。βDraws而且Mdl。Sigma2Draws

  • 如果Mdl是一个customblm建模对象,然后模拟使用MCMC抽样器从后验分布中抽取。在每次迭代中,软件将回归系数和扰动方差的当前值连接到一个(Mdl。我ntercept+Mdl。NumPredictors+ 1)-乘1向量,并将它传递给Mdl。LogPDF.扰动方差的值是这个向量的最后一个元素。

  • HMC采样器既需要对数密度,也需要对数梯度。梯度应该是a(NumPredictors +拦截+ 1)1的向量。如果某些参数的导数难以计算,那么,在梯度的相应位置,供给值来代替。模拟替换带有数值导数的值。

  • 如果Mdl是一个lassoblmmixconjugateblm,或mixsemiconjugateblm模型对象和你的供给X而且y,然后模拟通过应用吉布斯采样器从后验分布中得到样本。如果你不提供数据,那么模拟样本来自分析的无条件先验分布。

  • 模拟不返回所生成的默认起始值。

  • 如果Mdl是一个mixconjugateblmmixsemiconjugateblm,然后模拟首先从状态分布中提取,给定链的当前状态(的值RegimeStartBetaStart,Sigma2Start).如果你画一个样本,不指定值RegimeStartBetaStart,Sigma2Start,然后模拟使用默认值并发出警告。

版本历史

在R2017a中引入