模拟
模拟贝叶斯线性回归模型的回归系数和扰动方差
语法
描述
[
还返回从潜在的政权分布中抽取如果BetaSim
,sigma2Sim
,RegimeSim
=模拟(___)Mdl
为随机搜索变量选择(SSVS)的贝叶斯线性回归模型,即,如果Mdl
是一个mixconjugateblm
或mixsemiconjugateblm
模型对象。
例子
从先验和后验分布模拟参数值
考虑预测美国实际国民生产总值(gdp)的多元线性回归模型(GNPR
),利用工业生产指数(新闻学会
)、总就业人数(E
)和实际工资(或者说是
).
对所有 , 是一系列均值为0,方差为0的独立高斯扰动吗 .
假设这些先验分布:
. 4 × 1向量的均值是多少 是一个4乘4的正定协方差矩阵。
. 而且 分别是逆伽马分布的形状和比例。
这些假设和数据似然暗示了一个正态-逆伽马共轭模型。
加载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)
总结
表中是否包含统计信息估计
在命令行中显示。
虽然边际和条件后验分布 而且 是分析上易于处理的,本例着重于如何实现吉布斯采样器来重现已知的结果。
再次估计模型,但使用吉布斯采样器。从参数的条件后验分布中交替抽样。采样10,000次,并创建变量进行预分配。的条件后验开始采样器 鉴于 .
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}));结束
图;情节(sigma2Draws) ylabel (“获得画”)包含(“模拟指数”)标题(“痕迹图- Sigma2”)
马尔可夫链蒙特卡罗(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的变化说明了差异。
从SSVS预测器选择模拟制度
中的回归模型从先验和后验分布模拟参数值.
假设这些先验分布 = 0,…,3:
,在那里 而且 是独立的标准正态随机变量。因此,系数具有高斯混合分布。假设所有系数都是条件独立的,先验的,但它们依赖于扰动方差。
. 而且 分别是逆伽马分布的形状和比例。
它表示具有离散均匀分布的随机变量-包含状态变量。
为执行SSVS创建一个先验模型。假设
而且
是相互依赖的(共轭混合模型)。指定预测器的数量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 (“频率”);
计算变量包含的边际后验概率。
表(意思是(RegimeSim, 2),“RowNames”, PriorMdl。VarNames,...“VariableNames”,“政权”)
ans =4×1表政权______拦截0.8829 IPI 0.4547 E 0.098 WR 0.1692
使用吉布斯采样器的稳健回归
考虑一个贝叶斯线性回归模型,它包含一个预测器和一个t具有剖面自由度参数的分布扰动方差 .
.
这些假设意味着:
是潜在尺度参数的向量,将低精度归因于远离回归线的观测。 是否超参数控制的影响 根据观察结果。
对于这个问题,吉布斯采样器非常适合估计系数,因为您可以在条件下模拟贝叶斯线性回归模型的参数 ,然后模拟 从它的条件分布。
生成 的回应 在哪里 而且 .
rng (“默认”);N = 100;X = linspace(0,2,n)';B0 = 1;B1 = 2;σ = 0.5;E = randn(n,1);Y = b0 + b1*x + sigma*e;
通过膨胀下面的所有响应来引入外围响应 乘以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 =传说;持有在;
模拟的异常值似乎会影响拟合的回归线。
实现这个吉布斯采样器:
的后验分布绘制参数 .缩小观察 ,创建一个带有两个回归系数的扩散先验模型,并从后验中绘制一组参数。第一个回归系数对应于截距,所以要明确
bayeslm
不包括拦截。计算残差。
的条件后验中提取值 .
运行吉布斯采样器进行20,000次迭代,并应用5,000次的老化期。指定 ,为后验绘制预分配,并初始化 到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} =字符串“稳健贝叶斯;
使用鲁棒贝叶斯回归的回归线拟合似乎是一个更好的拟合。
用蒙特卡洛估计最大后验概率
最大后验概率(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)
估计的边际后验分布 而且 .
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)};
estBetaMean
4 × 1向量是否表示后验边缘的均值
.EstBetaCov
4 × 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
这些估计彼此相当接近。
估计后验的分析模式 .将其与估计的MAP进行比较 .
igMode = 1 (b*(a+1))
igMode = 41.4079
sigma2MAP
sigma2MAP = 41.4075
这些估计也相当接近。
输入参数
Mdl
- - - - - -贝叶斯线性回归模型
conjugateblm
模型对象|semiconjugateblm
模型对象|diffuseblm
模型对象|mixconjugateblm
模型对象|lassoblm
模型对象
标准贝叶斯线性回归模型或预测变量选择模型,在本表中指定为模型对象。
模型对象 | 描述 |
---|---|
conjugateblm |
所返回的依赖的法向-逆-共轭模型bayeslm 或估计 |
semiconjugateblm |
所返回的独立的法向-逆伽玛半共轭模型bayeslm |
diffuseblm |
由扩散先验模型返回bayeslm |
empiricalblm |
先验模型以先验分布的样本为特征,由bayeslm 或估计 |
customblm |
返回的先验分布函数bayeslm |
mixconjugateblm |
SSVS预测变量选择的依赖的高斯-混合-逆-伽马共轭模型bayeslm |
mixsemiconjugateblm |
SSVS预测变量选择的独立的高斯-混合-逆伽马半共轭模型bayeslm |
lassoblm |
由贝叶斯套索回归模型返回bayeslm |
请注意
通常,由返回的模型对象
估计
表示边际后验分布。当你用估计
,如果指定条件后验估计,则估计
返回先前的模型。如果你提供
lassoblm
,mixconjugateblm
,或mixsemiconjugateblm
建模对象,提供数据X
而且y
,并从后验中提取一个值,那么最佳实践是通过指定BetaStart
而且Sigma2Start
名称-值对参数。
y
- - - - - -响应数据
数值向量
用于多元线性回归模型的响应数据,指定为带有的数值向量numObservations
元素。
数据类型:双
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:“Sigma2”,2
指定模拟从回归系数的条件后验分布给定的数据和指定的扰动方差2
.
燃烧
- - - - - -要从样品开始移除的绘图数
0
(默认)|负的标量
从样本开始删除以减少瞬态影响的绘制数,指定为由逗号分隔的对组成的“燃烧”
一个非负标量。有关如何模拟
减少整个样本,参见算法.
提示
要帮助您指定适当的老化期大小:
通过指定,确定样本中瞬态行为的程度
“燃烧”,0
.通过使用模拟几千个观测值
模拟
.绘制轨迹图。
例子:“燃烧”,0
数据类型:双
BetaStart
- - - - - -采样器回归系数的起始值
数值列向量
采样器的回归系数的起始值,指定为逗号分隔的对,由“BetaStart”
和一个数值列向量(Mdl。我ntercept
+Mdl。NumPredictors
)元素。默认情况下,BetaStart
为普通最小二乘(OLS)估计。
提示
跑步是一个很好的练习模拟
多次使用不同的参数起始值。验证每次运行的估计值是否收敛于相似的值。
例子:“BetaStart”,[1;2;3]
数据类型:双
Sigma2Start
- - - - - -采样器扰动方差的起始值
正数值标量
采样器扰动方差的起始值,指定为逗号分隔的对,由“Sigma2Start”
和一个正的标量。默认情况下,Sigma2Start
为OLS残差均方误差。
提示
跑步是一个很好的练习模拟
多次使用不同的参数起始值。验证每次运行的估计值是否收敛于相似的值。
例子:“Sigma2Start”4
数据类型:双
RegimeStart
- - - - - -采样器潜在状态的起始值
真正的(Mdl。拦截+Mdl。NumPredictors)
(默认)|逻辑列向量
采样器的潜在状态的起始值,指定为逗号分隔的对,由“RegimeStart”
和一个逻辑列向量(Mdl。我ntercept
+Mdl。NumPredictors
)元素。RegimeStart (
=k
)真正的
指示变量的包含Mdl。VarNames(
,k
)RegimeStart (
=k
)假
指示排除该变量。
提示
跑步是一个很好的练习模拟
多次使用不同的参数起始值。验证每次运行的估计值是否收敛于相似的值。
例子:“RegimeStart”,逻辑(randi ([0, 1], Mdl。拦截+ mld . numpredictors,1))
数据类型:双
Reparameterize
- - - - - -Reparameterization的σ2日志(σ2)
假
(默认)|真正的
Reparameterization的σ2日志(σ2)进行后验估计和模拟,指定为逗号分隔的对,由“Reparameterize”
和这个表中的一个值。
价值 | 描述 |
---|---|
假 |
模拟 不重新参数化σ2. |
真正的 |
模拟 reparameterizesσ2日志(σ2).模拟 的函数形式,将结果转换回原始尺度PriorMdl。LogPDF . |
提示
的后验估计或模拟过程中遇到数值不稳定性σ2,然后指定“Reparameterize”,真的
.
例子:“Reparameterize”,真的
数据类型:逻辑
取样器
- - - - - -密度取样器
“切”
(默认)|“大都市”
|hmc的
MCMC采样器,指定为逗号分隔的对,由的取样器
和这个表中的一个值。
价值 | 描述 |
---|---|
“切” |
片取样器 |
“大都市” |
随机游走大都会抽样器 |
hmc的 |
哈密顿蒙特卡罗(HMC)采样器 |
提示
为了提高MCMC绘制的质量,调整采样器。
在调用之前
模拟
,通过使用指定调优参数及其值sampleroptions
.例如,指定切片采样器宽度宽度
使用:选项= sampleroptions(的取样器,“切”,“宽度”、宽度);
指定包含由返回的调优参数规范的对象
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]
输出参数
BetaSim
-模拟回归系数
数字矩阵
模拟回归系数,返回为(Mdl。我ntercept
+Mdl。NumPredictors
)———NumDraws
数字矩阵。行对应于中的变量Mdl。VarNames
,列对应于从分布中单独的、连续的、独立的抽取。
sigma2Sim
-模拟扰动方差
正数值向量
模拟扰动方差,以1 × -的形式返回NumDraws
正数值向量。列对应于从分布中单独、连续、独立的抽取。
RegimeSim
-模拟制度
逻辑矩阵
指示变量从模型中包含或排除的模拟状态,返回为(Mdl。我ntercept
+Mdl。NumPredictors
)———NumDraws
逻辑矩阵。行对应于中的变量Mdl。VarNames
,列对应于从分布中单独的、连续的、独立的抽取。
模拟
返回政权
只有在Mdl
是一个mixconjugateblm
或mixsemiconjugateblm
模型对象。
RegimeSim (
=k
,d
)真正的
指示变量的包含Mdl。VarNames(
在模型中绘制k
)
,d
RegimeSim (
=k
,d
)假
指示在绘制的模型中排除该变量
.d
限制
模拟
对象中绘制值分配不当,即密度不积分为1的分布。如果
Mdl
是一个empiricalblm
模型对象,则不能指定β
或Sigma2
.你不能用经验分布来模拟条件后验分布。
更多关于
贝叶斯线性回归模型
一个贝叶斯线性回归模型处理参数β而且σ2多元线性回归(MLR)模型yt=xtβ+εt作为随机变量。
为次t= 1,…,T:
yt是观察到的响应。
xt是一个1 × (p的观测值的行向量p预测因子。为了适应模型截距,x1t= 1t.
β是a (p的列向量,对应于组成列的变量的回归系数xt.
εt为均值为0的随机扰动,Cov(ε) =σ2我T×T,而ε是一个T-by-1向量包含所有扰动。这些假设意味着数据的可能性是
ϕ(yt;xtβ,σ2)为带均值的高斯概率密度xtβ和方差σ2评估在yt;.
在考虑这些数据之前,您需要考虑联合先验分布假设(β,σ2).在贝叶斯分析中,通过使用从数据的似然性中获得的关于参数的信息来更新参数的分布。结果是关节后分布(β,σ2)或条件后验分布参数的。
算法
每当
模拟
必须估计后验分布(例如,何时Mdl
代表了先前的分配和你的供给X
而且y
),后验是可分析的,模拟
直接从后方模拟。否则,模拟
采用蒙特卡洛模拟估计后验。详情请参见后验估计与推断.如果
Mdl
是关节后侧模型,那么模拟
模拟来自它的不同数据Mdl
是联合先验模型和你供应X
而且y
.因此,如果设置相同的随机种子并以两种方式生成随机值,那么您可能不会获得相同的值。但是,基于足够数量的抽签,相应的经验分布是有效等效的。-
矩形表示从分布中连续抽取。
模拟
从示例中移除白色矩形。剩下的NumDraws
黑色矩形组成样本。 如果
Mdl
是一个semiconjugateblm
建模对象,然后模拟
通过应用吉布斯采样器从后验分布中得到样本。模拟
的默认值Sigma2Start
为σ2并得到一个值β从π(β|σ2,X,y).模拟
绘制一个值σ2从π(σ2|β,X,y),以使用先前生成的值β.函数重复步骤1和步骤2,直到收敛为止。为了评估收敛性,绘制样本的迹图。
如果你指定
BetaStart
,然后模拟
绘制一个值σ2从π(σ2|β,X,y)启动吉布斯采样器。模拟
不返回此生成的值σ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
是一个lassoblm
,mixconjugateblm
,或mixsemiconjugateblm
模型对象和你的供给X
而且y
,然后模拟
通过应用吉布斯采样器从后验分布中得到样本。如果你不提供数据,那么模拟
样本来自分析的无条件先验分布。模拟
不返回所生成的默认起始值。如果
Mdl
是一个mixconjugateblm
或mixsemiconjugateblm
,然后模拟
首先从状态分布中提取,给定链的当前状态(的值RegimeStart
,BetaStart
,Sigma2Start
).如果你画一个样本,不指定值RegimeStart
,BetaStart
,Sigma2Start
,然后模拟
使用默认值并发出警告。
版本历史
在R2017a中引入
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。