主要内容

模拟

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

描述

例子

贝塞sigma2Sim]=模拟(Mdl返回回归系数的随机向量(贝塞)和一个随机扰动方差(sigma2Sim)取自贝叶斯线性回归模型Mdl属于βσ2

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

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

例子

贝塞sigma2Sim]=模拟(MdlXy从通过合并预测数据产生或更新的边际后验分布中提取X和相应的响应数据y

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

  • 如果Mdl是一个边缘后模型,然后模拟使用从附加数据获取的参数信息更新后端。完整的数据似然由附加数据组成Xy,以及创建的数据Mdl

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

例子

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

例子

贝塞sigma2SimRegimeSim]=模拟(___回报也从潜在的政体分布中提取Mdl是用于随机搜索变量选择(SSV)的贝叶斯线性回归模型,即,如果Mdl是一个mixconjugateblmmixsemiconjugateblm模型对象。

例子

全部折叠

考虑预测美国真正的国家产品的多元线性回归模型(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
Sigma2Imprior=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) WR | 2.4683 0.3490 [1.782, 3.154] 1.000 t (2.47, 0.34^2, 68) Sigma2 | 44.1347 7.8020 [31.427, 61.855] 1.000 IG(34.00, 0.00069)

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

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

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

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

考虑回归模型根据先验和后验分布模拟参数值

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

负载Data_NelsonPlosservarNames = {“他们”“E”“福”};x = DataTable {:,varnames};y = DataTable {:,“GNPR”};p = 3;PriorMdl = bayeslm (p,“ModelType”“共轭”“VarNames”, varNames);[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) WR | 2.4683 0.3490 [1.782, 3.154] 1.000 t (2.47, 0.34^2, 68) Sigma2 | 44.1347 7.8020 [31.427, 61.855] 1.000 IG(34.00, 0.00069)

总结是一个包含以下统计信息的表:估计在命令行中显示。

虽然边缘和条件后验分布 β σ 2 在分析易行,此示例侧重于如何实现GIBBS采样器来重现已知结果。

再次估计模型,但使用GIBBS采样器。从参数的条件后部分布中取样之间的交替。示例10,000次并为预填架分配创建变量。通过从条件后的后部绘制来启动采样器 β 鉴于 σ 2 2

m = 1 e4;BetaDraws = 0 (p + 1,m);sigma2drawing = 0 (1,m + 1);sigma2Draws (1) = 2;rng (1);%的再现性j = 1:m betadraws(:,j)=模拟(priormdl,x,y,“Sigma2”,sigma2draws(j));[〜,sigma2draws(j + 1)] =模拟(priormdl,x,y,“贝塔”,BetaDraws(:,j));结束sigma2Draws=sigma2Draws(2:结束);%从MCMC样品中去除初始值

图形跟踪图的参数。

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

图中包含4个轴对象。轴对象1,标题为Trace Plot - Intercept包含一个类型为line的对象。轴对象2带有标题Trace Plot - IPI包含一个类型为line的对象。带有标题Trace Plot - E的轴对象3包含一个类型为line的对象。带有标题Trace Plot - WR的轴对象4包含一个类型为line的对象。

图;绘图(sigma2Draws)ylabel('MCMC draw')xlabel(“模拟指数”)标题('Trace plot - Sigma2'

图中包含一个轴对象。标题为Trace plot - Sigma2的axes对象包含一个类型为line的对象。

马尔可夫链蒙特卡罗(MCMC)样本收敛且混合良好。

应用1000次抽检的磨合期,然后计算MCMC样本的平均值和标准偏差。将其与估计

英国石油(bp) = 1000;postBetaMean = mean(BetaDraws(:,(bp + 1):end),2);postSigma2Mean = mean(sigma2drax (:,(bp + 1):end)); / /结束postBetaStd =性病(BetaDraws (:, (bp + 1):结束),[],2);postSigma2Std = std(sigma2draz ((bp + 1):end)); / /结束[摘要:1:2),表([postBetaMean;postSigma2Mean),...[postBetaStd;postSigma2Std),“VariableNames”,{“吉布斯门”“吉布斯特”}))
ans =5×4表标准吉布斯曼-吉布斯德平均截距-24.249 8.7821-24.2938.748 IPI 4.3913 0.1414 4.3917 0.13941 E 0.0011202 0.00032931 0.0011229 0.00032875 2.467.364

估计非常接近。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 {: PriorMdl.VarNames(2:结束)};y = DataTable {:,“GNPR”};

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

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

模拟后部分布的10,000个制度。

rng (1);[〜,〜,Regimem] =模拟(Priormdl,x,y,'numdraws', 10000);

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

绘制访问的制度的直方图。重新编码政权,以便它们是可读的。具体地,对于每个方案,创建一个标识模型中变量的字符串,并将变量与点分开。

cRegime = num2cell (RegimeSim, 1);cRegime =分类(cellfun (@ (c)加入(PriorMdl.VarNames (c),“。”), cRegime));cRegime (ismissing (cRegime)) =“无效率”;直方图(克雷服);标题(“模型中包含的变量”)伊拉贝尔(“频率”);

图中包含一个轴对象。标题为“模型中包含的变量”的axis对象包含一个类型为分类直方图的对象。

计算变量纳入的边际后验概率。

表(平均值(regimem,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 +∑*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 ________ _______ ______ __________ (Intercept) 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-statistic vs. constant model: 10.3, p-value = 0.00177
图形;绘图(Mdl);hl=图例;保持在…上

图中包含一个轴对象。标题为y vs. x1的轴对象包含4个类型为line的对象。这些对象表示数据、拟合、置信界限。

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

实现这个Gibbs采样器:

  1. 由后验分布得出参数 β σ 2 | y x λ .通过 λ ,创建一个具有两个回归系数的漫反射先验模型,并从后验系数中绘制一组参数。第一个回归系数对应于截距,因此指定bayeslm不包括拦截。

  2. 计算残差。

  3. 的条件后验取值 λ

运行Gibbs采样器20000次迭代,并应用5000次磨合期。指定 ν 1 ,为后抽预分配,并初始化 λ 到一个向量。

m = 20000;ν= 1;燃烧= 5000;= 1 (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]./根号(lambda(:,j));PriorMdl = bayeslm (2“模型”“漫反射”“拦截”、假);[estBeta(:,j + 1),estSigma2(1,j + 1)] = simulate(PriorMdl,xDef,yDef);*estBeta(:,j + 1); / *estBeta(:,j + 1)Sp = (nu + 1)/2;sc = 2。/(nu + ep.^2/estSigma2(1,j + 1)); lambda(:,j + 1) = 1./gamrnd(sp,sc);结束

一个很好的实践是通过检查跟踪图来诊断MCMC采样器。为简洁起见,本例跳过此任务。

计算从后验回归系数中提取的平均值。去除老化期的绘图。

测试后β=平均值(测试后β(:,(burnin+1):结束),2)
postEstBeta =2×11.3971 - 1.7051

截距的估计值较低,而斜率则高于返回的估计值fitlm

用最小二乘拟合的回归线绘制稳健回归线。

H = GCA;xlim = h.xlim';ploty = [xlim] * postestbeta;情节(XLIM,Ploty,'行宽',2);hl.string {4} =“稳健贝叶斯”

图中包含一个轴对象。标题为y vs. x1的轴对象包含5个类型为line的对象。这些对象代表数据,拟合,置信限,鲁棒贝叶斯。

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

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

考虑线性回归模型根据先验和后验分布模拟参数值

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

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

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

p = 3;PriorMdl = bayeslm (p,“ModelType”“共轭”“VarNames”varNames)
PriorMdl = conjugateblm with properties: NumPredictors: 3 Intercept: 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 [-141.273, 70.7107141.273] 0.500 t (0.00, 57.74^2, 6) Sigma2 | 0.5000 0.5000 [0.138, 1.616] 1.000 IG(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) WR | 2.4683 0.3490 [1.782, 3.154] 1.000 t (2.47, 0.34^2, 68) Sigma2 | 44.1347 7.8020 [31.427, 61.855] 1.000 IG(34.00, 0.00069)

显示器包括边缘后分布统计数据。

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

estBetaMean=PosteriorMdl.Mu;Summary=Summary(PosteriorMdl);EstBetaCov=Summary.convariations{1:(end-1),1:(end-1)};

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

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

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

贝塞是一个4乘10000的矩阵随机绘制回归系数。sigma2Sim是随机抽取的干扰方差的1×10000向量。

转换并标准化回归系数矩阵。计算回归系数的相关矩阵。

estBetaStd =√诊断接头(EstBetaCov) ');BetaSim = BetaSim ';BetaSimStd = (BetaSim - estBetaMean')./estBetaStd;BetaCorr = corrcov (EstBetaCov);/2; /2%强制对称

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

betaPDF = mvtpdf (BetaSimStd BetaCorr 68);一个= 34;b = 0.00069;igPDF = @ (x,美联社、英国石油公司)1. /(伽马(美联社)。* bp。^美联社)。* 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);

贝塔玛sigma2MAP是地图估计。

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

表(betamap',posteriormdl.mu,“VariableNames”,{“地图”“的意思是”},...“RowNames”,PriorMdl.VarNames)
ans =4×2表地图含义_________ __________拦截-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估计
半共轭BLM 由返回的独立、正常的反伽马半共轭模型bayeslm
diffuseblm 返回的扩散先验模型bayeslm
empiricalblm 以前分布的样本特征的先前模型,由此返回bayeslm估计
customblm 声明返回的先验分布函数bayeslm
mixconjugateblm SSVS预测变量选择的依赖高斯混合逆伽马共轭模型,由bayeslm
mixsemiconjugateblm 用于SSVS预测变量选择的独立高斯混合逆伽马半共轭模型,由bayeslm
lassoblm 返回的贝叶斯拉索回归模型bayeslm

请注意

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

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

  • 如果你提供lassoblmmixconjugateblmmixsemiconjugateblm模型对象,提供数据Xy,并从后验得到一个值,则最佳实践是通过指定BetaStartSigma2Start名称-值对参数。

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

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

数据类型:

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

数据类型:

名称-值参数

指定可选的逗号分隔的对名称,值论点。名称参数名和价值是对应的值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:“Sigma2”,2指定对给定数据的回归系数的条件后验分布和指定的扰动方差进行模拟2
所有型号的选项

全部折叠

从分布中采样的抽取数量Mdl,指定为逗号分隔的对,由'numdraws'一个正整数。

提示

如果Mdl是一个empiricalblm或者一个customblm模型对象,那么一个好的实践是指定一个老化周期燃烧和一个较薄的倍增器.调整后的样本量请参见算法

例子:e7 NumDraws, 1

数据类型:

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

全部折叠

从干扰方差的条件分布中模拟的回归系数的值,指定为逗号分隔对组成“贝塔”和(Mdl。我ntercept+mdl.numpredictors.) 1数值向量。当使用后验分布时,模拟取材于πσ2|yXββ),yyXXβ的价值“贝塔”.如果Mdl。我ntercept符合事实的,然后贝塔(1)对应于模型截距。所有其他值对应于组成列的预测变量X

你不能指定βSigma2同时。

默认情况下,模拟不从条件后汲取σ2

例子:“贝塔”,1:3

数据类型:

从回归系数的条件分布中模拟的扰动方差值,指定为逗号分隔对组成“Sigma2”和一个正数标量。当使用后验分布时,模拟取材于πβ|yXSigma2),yyXXSigma2的价值“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”和正数值标量。默认情况下,Sigma2StartOLS残留的均匀平方误差。

提示

一个好的习惯是跑步模拟多次使用不同的参数起始值。验证您从每次运行中得到的估计收敛到相似的值。

例子:“Sigma2Start”4

数据类型:

SSVS模型的选项

全部折叠

采样器潜在区域的起始值,指定为逗号分隔对,由“RegimeStart”和逻辑列向量(Mdl。我ntercept+mdl.numpredictors.)元素。RegimeStart(k符合事实的指示是否包含该变量Mdl.VarNames(kRegimeStart(k指示排除该变量。

提示

一个好的习惯是跑步模拟多次使用不同的参数起始值。验证您从每次运行中得到的估计收敛到相似的值。

例子:'Regimestart',逻辑(randi([0 1],mdl.intercept + mdl.numpredictors,1))

数据类型:

自定义模型的选项

全部折叠

重新参数化σ2日志(σ2)在后部估计和模拟期间,指定为逗号分隔对组成“Reparameterize”和这个表中的值。

价值 描述
模拟没有回复σ2
符合事实的 模拟reparameterizesσ2日志(σ2).模拟将结果转换回原来的比例,不改变的功能形式PriorMdl。LogPDF

提示

如果你在后验估计或模拟中遇到数值不稳定σ2,然后指定“Reparameterize”,真的

例子:“Reparameterize”,真的

数据类型:逻辑

MCMC采样器指定为逗号分隔对组成“采样器”和这个表中的值。

价值 描述
“切” 片取样器
“大都会” 大都会采样器
hmc的 Hamiltonian Monte Carlo(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。我ntercept+mdl.numpredictors.)———NumDraws数字矩阵。行对应于中的变量Mdl。VarNames,列对应于从分布中单独的、连续的、独立的提取。

模拟干扰方差,返回为1-by-NumDraws正数的数值向量。列对应于从分布中单独的、连续的、独立的提取。

表示模型中包含或排除变量的模拟机制,返回为(Mdl。我ntercept+mdl.numpredictors.)———NumDraws逻辑矩阵。行对应于中的变量Mdl。VarNames,列对应于从分布中单独的、连续的、独立的提取。

模拟返回政权除非Mdl是一个mixconjugateblmmixsemiconjugateblm模型对象。

RegimeSim (kd符合事实的指示是否包含该变量Mdl.VarNames(k在draw模型中dRegimeSim (kd表示在绘制模型中排除该变量d

限制

  • 模拟无法从中提取值不正当的分布,即密度不等于1的分布。

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

更多关于

全部折叠

贝叶斯线性回归模型

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

为次t= 1,...,T

  • yt为观察到的响应。

  • xt这是一张一乘的票-(p+1)观测值的行向量p预测因子。为了适应模型拦截,x1t= 1 for allt

  • β是一个(p+ 1)组成列的变量对应的回归系数的列向量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代表一个预先分配,你供应Xy),而后半部分在分析上易于处理,模拟直接从后面模拟。否则,模拟采用蒙特卡洛模拟来估计后验。有关详细信息,请参见后验估计与推理

  • 如果Mdl是后验模型吗模拟以不同的方式模拟数据Mdl是一个联合先前的模型和你供应Xy.因此,如果您设置相同的随机种子并以两种方式生成随机值,那么您可能不会获得相同的值。然而,相应的经验分布基于足够的平局数量是有效的等效。

  • 这个数字显示了如何模拟的值减少样本NumDraws燃烧

    矩形表示从分布中连续绘制的图形。模拟从样本中移除白色矩形。剩下的NumDraws黑色矩形构成了示例。

  • 如果Mdl是一个半共轭BLM模型对象,然后模拟利用吉布斯抽样器从后验分布中得到样本。

    1. 模拟使用缺省值Sigma2Startσ2并绘制值为βπβ|σ2Xy).

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

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

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

  • 如果Mdl是一个empiricalblm模型对象,而不提供Xy,然后模拟取材于Mdl.BetaDrawsMdl。Sigma2Draws.如果NumDraws是小于还是等于元素个数(Mdl.Sigma2Draws),然后模拟返回第一个NumDraws元素Mdl.BetaDrawsMdl。Sigma2Draws作为随机绘制相应的参数。否则,模拟随机重新取样NumDraws的元素Mdl.BetaDrawsMdl。Sigma2Draws

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

  • HMC采样器既要求测井密度,也要求梯度。梯度应该是a(NumPredictors +拦截+ 1)-如果某些参数的导数难以计算,那么在梯度的相应位置,提供值而来。模拟替换数值导数的值。

  • 如果Mdl是一个lassoblmmixconjugateblmmixsemiconjugateblm模型对象并提供Xy,然后模拟利用吉布斯抽样器从后验分布中得到样本。如果您不提供数据,那么模拟来自分析的样品,无条件的先验分布。

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

  • 如果Mdl是一个mixconjugateblmmixsemiconjugateblm,然后模拟首先从状态分布中提取,给定链的当前状态(值RegimeStartBetaStartSigma2Start).如果您绘制一个示例并没有指定值RegimeStartBetaStartSigma2Start,然后模拟使用默认值并发出警告。

介绍了R2017a