模拟

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

描述

例子

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

  • 如果Mdl联合先验模型(由bayeslm), 然后模拟从先前的发行版中提取。

  • 如果Mdl被一个联合后验模型(通过返回估计), 然后模拟来自后验分布。

例子

(BetaSim,sigma2Sim)=模拟(Mdl,X,y)从边缘后验分布中提取,通过合并预测数据产生或更新X以及相应的响应数据y

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

  • 如果Mdl是边际后验模型吗模拟用从附加数据中获得的参数信息更新后验。完整的数据似然是由附加的数据组成的Xy,创建和数据Mdl

S IN中的数据表明缺失值,这模拟使用列表方式删除。

例子

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

例子

(BetaSim,sigma2Sim,RegimeSim)=模拟(___)也返回距潜政权分布,如果平Mdl是随机搜索变量选择(SSVS)的贝叶斯线性回归模型吗Mdl是一个mixconjugateblmmixsemiconjugateblm模型对象。

例子

全部折叠

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

GNPR t = β 0 + β 1 新闻学会 t + β 2 E t + β 3. WR t + ε t

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

假设这些先验分布:

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

  • σ 2 G ( 一个 , B ) 一个 B 为反伽马分布的形状和比例。

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

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

负载Data_NelsonPlosservarNames = {'IPI''E''WR'};X = DataTable {: varNames};Y = {数据表:,“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 Log边际似然:-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

betaSimPostsigma2SimPost有相同的尺寸吗betaSimPriorsigma2SimPrior,但都是从后面画出来的。

考虑回归模型从此前与后验分布模拟参数值

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

负载Data_NelsonPlosservarNames = {'IPI''E''WR'};X = DataTable {: varNames};Y = {数据表:,“GNPR”};p = 3;PriorMdl = bayeslm (p,“ModelType”,“共轭”,“VarNames”,varNames);[PosteriorMdl,总结] =估计(PriorMdl,X,Y);
方法:解析后验分布观测数:62预测因子数:4 Log边际似然:-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 = 1 e4;= 0 (p + 1,m);sigma2draw = 0 (1,m + 1);sigma2Draws (1) = 2;rng (1);%的再现性j = 1:m BetaDraws(:,j) =模拟(PriorMdl,X,y,“西格玛-2”sigma2Draws (j));[~, sigma2draw (j + 1)] =模拟(PriorMdl,X,y,“β”BetaDraws (:, j));结束sigma2Draws = sigma2Draws(2:结束);从MCMC样本中移除初始值

绘制参数的轨迹图。

图;J = 1:(P + 1);副区(2,2,j)的;图(BetaDraws(J,:))ylabel(“获得画”)包含(“模拟指数”)标题(的sprintf('跟踪图 - %S',PriorMdl.VarNames {Ĵ}));结束

图;情节(sigma2Draws) ylabel (“获得画”)包含(“模拟指数”)标题(“轨迹曲线 - 西格玛-2”)

马尔科夫链蒙特卡洛(MCMC)样品出现会聚并拌匀。

使用1000个绘制的老化周期,然后计算MCMC样本的平均值和标准差。将它们与估算值进行比较估计

英国石油(bp) = 1000;=平均(BetaDraws(:,(bp + 1):end),2);postSigma2Mean = mean(sigma2draw (:,(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表平均标准分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分长臂猿分

这些估计都非常接近。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”,(“IPI”“E”“福”]);

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

负载Data_NelsonPlosserX = {数据表:,PriorMdl.VarNames(2:结束)};Y = {数据表:,“GNPR”};

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

cardRegime = 2 ^ (PriorMdl。我ntercept + PriorMdl.NumPredictors)
cardRegime = 16

从后验分布模拟10000种状态。

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

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

绘制所访问政权的柱状图。重新编码这些机制,使其可读。具体来说,对于每种情况,创建一个字符串来标识模型中的变量,并用点分隔变量。

cRegime = num2cell (RegimeSim, 1);cRegime =分类(cellfun (@ (c)加入(PriorMdl.VarNames (c),“。”),cRegime));cRegime (ismissing (cRegime)) =“NoCoefficients”;直方图(cRegime);标题(“模型中包含的变量”)ylabel ('频率');

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

表(意思是(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 ________ ________ _____(拦截)e15汽油x1 2.0859 2.6814 0.28433 9.4304 0.78974 0.24562 3.2153 0.0017653的观测数量:100年,错误自由度:98根均方误差:1.43平方:0.0954,调整平方:0.0862 f统计量与常数模型:10.3,p = 0.00177
图;情节(Mdl);hl =传奇;持有;

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

实施这个吉布斯采样器:

  1. 从后验分布中提取参数 β , σ 2 | y , x , λ 。缩小观测值 λ ,建立一个具有两个回归系数的扩散先验模型,并从后验中提取一组参数。第一个回归系数对应于截距,所以指定它bayeslm不包括拦截。

  2. 计算残差。

  3. 的条件后验值 λ

运行Gibbs sampler进行20,000次迭代,并应用一个5000次的老化周期。指定 ν = 1 ,预分配的后得出,并初始化 λ 变成一个向量。

米= 20000;NU = 1;老化= 5000;拉姆达=酮(N,M + 1);estBeta =零(2,M + 1);estSigma2 =零(1,M + 1);J = 1:米yDef = y./sqrt(lambda(:,j));xDef = [一(N,1)X] ./ SQRT(拉姆达(:,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采样器。为了简单起见,这个示例跳过了这个任务。

从回归系数的后验值计算其均值。移除老化期间的绘图。

=平均值(estBeta(:,(burnin + 1):end),2)
postEstBeta =2×11.3971 1.7051

截距的估计是低和斜率比由返回的估计更高fitlm

绘制与装配通过最小二乘回归直线的稳健回归线。

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

使用强大的贝叶斯回归出现的回归拟合线是一个更好的选择。

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

考虑线性回归模型从此前与后验分布模拟参数值

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

负载Data_NelsonPlosservarNames = {'IPI''E''WR'};X = DataTable {: varNames};Y = {数据表:,“GNPR”};

建立线性回归参数的正-反-共轭先验模型。指定预测的数量p以及变量名。

p = 3;PriorMdl = bayeslm (p,“ModelType”,“共轭”,“VarNames”varNames)
PriorMdl =共轭blm与属性:NumPredictors: 3 Intercept: 1 varname: {4x1 cell} Mu: [4x1 double] V: [4x4 double] A: 3b: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 Log边际似然:-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 = PosteriorMdl.Mu;摘要=总结(PosteriorMdl);EstBetaCov =总结。协方差{1:(end - 1),1:(end - 1)};

estBetaMean一个4×1的向量是否代表的是后缘的平均值 β EstBetaCov是代表的后的协方差矩阵的4乘4矩阵 β

从后验分布中提取10000个参数值。

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

BetaSim是随机抽取的回归系数的4乘万矩阵。sigma2Sim是随机抽取的扰动方差的一个1×10000的向量。

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

estBetaStd =√诊断接头(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,AP,BP)1 ./(γ-(AP)* bp的^ AP。)* X ^。( -  AP-1)。* EXP(-1 ./(X * bp)的);...%逆伽马pdfsigma2PDF = igPDF (sigma2Sim, a, b);

查找模拟值,最大限度地提高各自的PDF文件,也​​就是后的模式。

[〜,idxMAPBeta] = MAX(betaPDF);[〜,idxMAPSigma2] = MAX(sigma2PDF);betaMAP = BetaSim(idxMAPBeta,:);sigma2MAP = sigma2Sim(idxMAPSigma2);

betaMAPsigma2MAP是地图的估计值。

因为后面 β 是对称的,单峰,后均值和MAP应该是相同的。比较的图估计 β 它的后均值。

表(betaMAP、PosteriorMdl.Mu'VariableNames',{'地图',“的意思是”},...“RowNames”PriorMdl.VarNames)
ANS =4×2表地图的意思是……,……拦截……,……,

估计是相当接近彼此。

估计的后验的分析模式 σ 2 。将其与估算的地图进行比较 σ 2

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

这些估计也相当接近。

输入参数

全部折叠

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

模型对象 描述
conjugateblm 依赖性,正逆伽马共轭模型返回由bayeslm估计
semiconjugateblm 由。返回的独立、正反-伽玛半聚门模型bayeslm
diffuseblm 漫反射先验模型返回bayeslm
empiricalblm 先验模型的特征是样本来自先验分布,由bayeslm估计
customblm 声明返回的先验分布函数bayeslm
mixconjugateblm 依赖性的,高斯混合物-逆伽马共轭模型预测的SSVs变量选择,通过返回bayeslm
mixsemiconjugateblm 独立,为SS VS移至预测变量选择高斯混合物逆伽马semiconjugate模型,通过返回bayeslm
lassoblm 贝叶斯lasso回归模型由bayeslm

请注意

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

  • 如果Mdl是一个diffuseblm模型,那么你还必须提供Xy因为模拟不能从一个不正确的先验分布绘制。

  • 如果你提供lassoblm,mixconjugateblm,或mixsemiconjugateblm模型对象,提供数据Xy和从后绘制一个值,那么最好的做法是通过指定初始化Gibbs抽样BetaStartSigma2Start名称 - 值对的参数。

多元线性回归模型的预测数据,指定为anumObservations-通过-PriorMdl.NumPredictors数字矩阵。numObservations是观测值的数量和必须等于的长度y

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

数据类型:

对于多元线性回归模型的响应数据,指定为与数字向量numObservations元素。

数据类型:

名称 - 值对参数

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

例子:'西格玛-2',2指定由给定数据和指定扰动方差的回归系数的条件后验分布进行模拟2

对于所有型号选项

全部折叠

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

提示

如果Mdl是一个empiricalblm或者一个customblm模型对象,那么一个好的做法是指定老化时间与燃烧和稀释倍增器。有关调整后的样本量的详情,请参阅算法

例子:e7 NumDraws, 1

数据类型:

所有模型的选项,除了经验的

全部折叠

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

您不能指定Beta版Sigma2同时进行。

默认情况下,模拟不从有条件的后验中提取吗σ2

例子:“贝塔”,1:3

数据类型:

从回归系数的条件分布中模拟扰动方差的值,指定为逗号分隔对组成“西格玛-2”和一个正的数字标量。当使用后验分布时,模拟π(β|y,X,Sigma2),yy,XX,Sigma2“西格玛-2”

您不能指定Sigma2Beta版同时进行。

默认情况下,模拟不从有条件的后验中提取吗β

例子:'西格玛-2',1

数据类型:

所有模型的选择,除了共轭和经验

全部折叠

为减少瞬态效应,从样本的开始删除的绘制次数,指定为逗号分隔对组成“燃尽”和一个非负的标量。参阅有关如何模拟减少整个样本,看算法

提示

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

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

  2. 通过使用模拟几千次观察模拟

  3. 画跟踪情节。

例子:“燃烧”,0

数据类型:

调整样本大小乘法器,指定为逗号分隔的一对组成的“薄”和一个正整数。

实际样本量为燃烧+NumDraws*薄。丢弃老化后,模拟丢弃每- - - - - -1抽签,然后保留下一次抽签。了解更多详情模拟减少整个样本,看算法

提示

以减少样本中潜在的大串行相关性,或减少存储在其中的绘图的内存消耗PosteriorMdl,指定一个较大的值

例子:'薄',5

数据类型:

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

提示

一个好的做法是将运行模拟多次使用不同的参数初始值。验证每次运行你的估计收敛到类似的值。

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

数据类型:

开始干扰方差为取样器的值,指定为逗号分隔的一对组成的“Sigma2Start”和一个正的数字标量。默认情况下,Sigma2Start为OLS残差的均方误差。

提示

一个好的做法是将运行模拟多次使用不同的参数初始值。验证每次运行你的估计收敛到类似的值。

例子:'Sigma2Start',4

数据类型:

SSVS模型的选项

全部折叠

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

提示

一个好的做法是将运行模拟多次使用不同的参数初始值。验证每次运行你的估计收敛到类似的值。

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

数据类型:

定制模型的选项

全部折叠

Reparameterization的σ2为log(σ2)时,指定为逗号分隔对组成“重新参数化”这个表中有一个值。

价值 描述
模拟不reparameterizeσ2
真正的 模拟reparameterizesσ2为log(σ2)。模拟将结果转换回原来的比例,并且不更改的功能形式PriorMdl.LogPDF

提示

如果在后验估计或模拟过程中出现数值不稳定σ2,然后指定“Reparameterize”,真的

例子:“Reparameterize”,真的

数据类型:逻辑

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

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

提示

  • 为了提高MCMC质量平局,调整采样。

    1. 在调用之前模拟中,指定的调谐参数和它们的值通过使用sampleroptions。例如,以指定切片采样宽度宽度, 用:

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

    2. 指定包含由sampleroptions通过使用“选项”名称 - 值对的参数。例如,要在调整参数规格选项,指定:

      “选项”,选择

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

例子:'采样', “HMC”

数据类型:

采样器选项,指定为逗号分隔的对“选项”和一个结构数组sampleroptions。使用“选项”指定MCMC采样器和调谐参数值。

例子:'选项',sampleroptions( '采样', “HMC”)

数据类型:结构

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

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

  • 如果宽度是一个数值向量吗模拟第一元件适用于截距(如果存在的话)时,下一PriorMdl.NumPredictors的回归系数对应的预测变量X,扰动方差的最后一个元素。

  • 如果样本容量(尺寸(X,1))小于100,那么宽度10默认情况下。

  • 如果样本量至少为100,则模拟宽度假设扩散先验模型(diffuseblm)。

切片采样器的典型宽度不影响MCMC样本的收敛性。它会影响所需函数计算的次数,即算法的效率。如果宽度太小,那么算法可以执行过多的函数计算来确定适当的采样宽度。如果宽度太大,那么算法可能不得不将宽度减小到适当的大小,这需要进行函数计算。

模拟发送宽度slicesample函数。有关更多细节,请参见slicesample

提示

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

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

例子:'宽度',[100个*也是(3,1); 10]

输出参数

全部折叠

模拟回归系数,以(Mdl.Intercept+Mdl.NumPredictors)———NumDraws数字矩阵。行对应的变量Mdl.VarNames和列对应于个体,连续的,独立的从分配绘制。

模拟扰动方差,以1乘-的形式返回NumDraws正值的数值向量。列对应于个体,连续的,独立的从分配绘制。

模拟制度表示从模型变量包括或排除,返回一个(Mdl.Intercept+Mdl.NumPredictors)———NumDraws逻辑矩阵。行对应的变量Mdl.VarNames和列对应于个体,连续的,独立的从分配绘制。

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

RegimeSim(k,d)=真正的表示包含该变量Mdl.VarNames (k)在平局的模型d,RegimeSim(k,d)=表示在draw模型中排除该变量d

限制

  • 模拟无法从分配不当,即密度不等于1的分布。

  • 如果Mdl是一个empiricalblm模型对象,则无法指定Beta版Sigma2。你不能从条件后验分布通过使用经验分布模拟。

更多关于

全部折叠

贝叶斯线性回归模型

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

为次t= 1,…,T:

  • yt是所观察到的响应。

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

  • β是(p+ 1)×1对应于该构成的列中的变量回归系数的列向量xt

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

    ( β , σ 2 | y , x ) = Π t = 1 T ϕ ( y t ; x t β , σ 2 )

    ϕ(yt;xtβ,σ2)是高斯概率密度与平均xtβ和方差σ2在评估yt;

在考虑数据之前,您先施加a联合先验分布假设(β,σ2)。在贝叶斯分析中,通过使用从数据的可能性中获得的参数信息来更新参数的分布。结果是联合后验分布(β,σ2) 或者有条件的后验分布的参数。

算法

  • 每当模拟必须估计后验分布(例如,什么时候Mdl代表先验分布和您提供Xy)和后部是易处理的分析,模拟直接从后面模拟。除此以外,模拟采用蒙特卡罗模拟方法进行后验估计。有关更多细节,请参见后验估计与推理

  • 如果Mdl是一个联合后验模型,然后模拟不同地时相比,从它模拟数据Mdl你们提供的是联合先验模型吗Xy。因此,如果你设置了相同的随机种子和生成的随机值两种方式,那么你可能无法获得相同的值。然而,基于足够数量的绘制对应经验分布实际上等同。

  • 该图显示了模拟通过使用的值来减少样本NumDraws,,燃烧

    矩形表示连续从分配绘制。模拟去除来自样品的白色矩形。剩余的NumDraws黑色矩形构成了样本。

  • 如果Mdl是一个semiconjugateblm模型对象,然后模拟应用吉布斯采样器对后验分布进行采样。

    1. 模拟使用默认值Sigma2Startσ2的值βπ(β|σ2,X,y)。

    2. 模拟绘制的值σ2π(σ2|β,X,y)使用之前生成的值β

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

    如果您指定BetaStart,然后模拟绘制的值σ2π(σ2|β,X,y)启动吉布斯采样器。模拟不返回此生成的值吗σ2

  • 如果Mdl是一个empiricalblm模型对象,您不提供Xy,然后模拟Mdl.BetaDrawsMdl.Sigma2Draws。如果NumDraws是小于还是等于numel(Mdl.Sigma2Draws),然后模拟返回第一个NumDraws的元素Mdl.BetaDrawsMdl.Sigma2Draws随机绘制为相应的参数。除此以外,模拟随机重复采样NumDraws从要素Mdl.BetaDrawsMdl.Sigma2Draws

  • 如果Mdl是一个customblm模型对象,然后模拟使用MCMC采样器从后验分布中提取。在每次迭代时,软件将回归系数和扰动方差的当前值串联成一个(Mdl.Intercept+Mdl.NumPredictors+ 1)×1向量,并将它传递给Mdl.LogPDF。扰动方差的值是这个向量的最后一个元素。

  • HMC采样器需要对数密度和梯度。梯度应该是a(NumPredictors +拦截+ 1)1的向量。如果某些参数的导数难以计算,则在梯度的相应位置上提供导数值来代替。模拟内容替换数值微分。

  • 如果Mdl是一个lassoblm,mixconjugateblm,或mixsemiconjugateblm模型对象和你的供应Xy,然后模拟应用吉布斯采样器对后验分布进行采样。如果您不提供数据,那么模拟从分析的,无条件的先验分布样本。

  • 模拟不返回默认的初始值,它生成。

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

介绍了R2017a