R语言贝叶斯非参数模型:密度估计、非参数化随机效应META分析心肌梗死数据...

news2024/11/19 19:21:04

全文链接:http://tecdat.cn/?p=23785 

最近,我们使用贝叶斯非参数(BNP)混合模型进行马尔科夫链蒙特卡洛(MCMC)推断点击文末“阅读原文”获取完整代码数据)。

概述

相关视频

在这篇文章中,我们通过展示如何使用具有不同内核的非参数混合模型进行密度估计。在后面的文章中,我们将采用参数化的广义线性混合模型,并展示如何切换到非参数化的随机效应表示,避免了正态分布的随机效应假设。

使用Dirichlet Process Mixture模型进行基本密度估计

提供了通过Dirichlet过程混合(DPM)模型进行非参数密度估计的机制(Ferguson, 1974; Lo, 1984; Escobar, 1994; Escobar and West, 1995)。对于一个独立和相同分布的样本 d1eba1ed0b8c490ca63a4067615d9f26.png,该模型的形式为

b61e743ff9546318e8f719e8fba201e9.png

这个模型实现是灵活的,运行任意核的混合。5a4f6851f74a05175b0d5c374cc32357.png, 可以是共轭的,也可以是不共轭的(也是任意的)基度量 b91c8d704e052b8a8e16dd019bce3260.png. 在共轭核/基数测量对的情况下,能够检测共轭的存在,并利用它来提高采样器的性能。

为了说明这些能力,我们考虑对R中提供的Faithful火山数据集的喷发间隔时间的概率密度函数进行估计。

data(faithful)

a2b001266e69f5054bf21e109828c1a7.png

观测值 8ad11a87da924f724cdd61bd52acfe3d.png 对应于数据框架的第二列,而 54d593d95dfd76bd9ccb873c47d038e0.png.

使用CRP表示法拟合高斯_location-scale_ 分布混合分布

模型说明

我们首先考虑用混合正态分布的_location-scale_Dirichlet过程s来拟合转换后的数据cf3aeabec087d48cb0edfe3b29f903fe.png

其中462a20ebd15ef3c40bc3fa1e1c138229.png 对应的是正态-逆伽马分布。这个模型可以解释为提供一个贝叶斯版本的核密度估计 130f2384c9c14253b97dc3c39404f6d8.png用于使用高斯核和自适应带宽。在数据的原始尺度上,这可以转化为一个自适应的对数高斯核密度估计。

引入辅助变量27e9f4a67705d66278056b32fab093dd.png,表明混合的哪个成分产生了每个观测值,并对随机量98843fbc2a3304d16c20fca1c57aad72.png进行积分,我们得到模型的CRP表示(Blackwell and MacQueen, 1973)。

a7dfe1600a088d85bba6197c2bf38861.png

其中

12c472482d67fc140b05fff9a08ff226.png

ca1337ec7931392bf1c9fb3be6fb43b2.png是向量1ec5c03a28e084005d82e35a4fea32ea.png中唯一值的数量,6eba81b6cd7914263521f9a23b284514.png是第0e3271956c030b1eeb2b507efae63fad.png个唯一值在07c461dd73eacc8e96e79eb09020f12d.png中出现的次数。这个说明清楚地表明,每个观测值都属于最多3a91d397fcb829d51f7b92555a33f659.png正态分布聚类中的任何一个,并且CRP分布与分区结构的先验分布相对应。

这个模型的说明是这样的

y\[i\] ~ dnorm(mu\[i\], var = s2\[i\])
    mu\[i\] <- muTilde\[xi\[i\]\]
    s2\[i\] <- s2Tilde\[xi\[i\]\]
  xi\[1:n\] ~ dCRP(alpha, size = n)
    muTilde\[i\] ~ dnorm(0, var = s2Tilde\[i\])
    s2Tilde\[i\] ~ dinvgamma(2, 1)
  alpha ~ dgamma(1, 1)

请注意,在模型代码中,参数向量muTilde和s2Tilde的长度被设置为a806171b740129e279174b254f4404ba.png.我们这样做是因为目前的实现要求提前设置参数向量的长度,并且不允许它们的数量在迭代之间变化。因此,如果我们要确保算法总是按预期执行,我们需要在最坏的情况下工作,即有多少个成分就有多少个观测值的情况。但它的效率也有点低,无论是在内存需求方面(当 e7090055598068097cff7d1447a06200.png规模大时,需要维护大量未占用的成分)还是在计算负担方面(每次迭代都需要更新大量不需要后验推理的参数)。当我们在下面使用伽马分布的混合时,我们将展示一个能提高效率的计算捷径。

还需要注意的是,5e76af7105fdaaf73f0117a035c09b1b.png的值控制着我们先验预期的成分数量,a67d8685ca24a8fb97053789cd7661df.png的值越大,对应于数据占据的成分数量越多。因此,通过指定一个2ec846be1a5ce823da16c57e40131e1f.png先验值,我们为模型增加了灵活性。对Gamma先验的特殊选择允许使用数据增强方案从相应的全条件分布中有效取样。也可以选择其他的先验,在这种情况下,这个参数6156a2f37c39269eeda53699682659cb.png的默认采样是一个自适应的随机游走Metropolis-Hastings算法。

运行MCMC算法

下面的代码设置了数据和常数,初始化了参数,定义了模型对象,并建立和运行了MCMC算法。默认采样器是一个折叠的吉布斯采样器(Neal, 2000)。

# 模型数据
y = standlFaithful
# 模型常量
n = length(standlFaithful))
# 参数初始化
list(xi = sample(1:10, size=n, replace=TRUE),
# 创建和编译模型
Model(code,  data,  inits,  consts)
##定义模型...
##建立模型...
##设置数据和初始值...
##在模型上运行计算(随后的任何错误报告可能只是反映了模型变量的缺失值)... 
##检查模型的大小和尺寸......。
##模型构建完成。
## 编译完成。
#MCMC的配置、创建和编译
MCMC(conf)
## 编译......这可能需要一分钟
## 编译完成。

4b53d4e3885118586963a0e498148e0b.png 9598963359ce30ca1940ce2a7dda3576.png

159fd0f3e6c1a9ef0edb0a56508fe859.png

我们可以从参数的后验分布中提取样本,并创建痕迹图、直方图和任何其他感兴趣的总结。例如,对于参数b308c0f916c1649ec61876d0a4a4e665.png,我们有。

# 参数的痕迹图
ts.plot(samples\[ , "alpha"\], xlab = "iteration", ylab = expression(alpha))

3a7bc231ac9da7c83fb1c1a6b2ca6dc3.png

# 后验直方图
hist(samples\[ , "alpha"\], xlab = expression(alpha), main = "", ylab = "Frequency")

483c302c172c9a470a81e57ba373f187.png

0106ba317717b7eb5cdd07dbc5721977.png

在这个模型下,对于一个新的观察e4fb3a98488d4ff3b9687a7b659edd32.png,后验预测分布是最佳密度估计(在平方误差损失下)。这个估计的样本可以很容易地从我们的MCMC产生的样本中计算出来。

# 参数的后验样本
 samples\[, "alpha"\]
# 平均值的后验样本
 samples\[, grep('muTilde', colnames(samples))\] # 聚类平均数的后验样本。
# 集群方差的后验样本
samples\[, grep('s2Tilde', colnames(samples))\] # 聚类成员的后验样本。
# 聚类成员关系的后验样本
samples \[, grep('xi', colnames(samples))\] # 聚类成员的后验样本。

hist(y, freq = FALSE,
     xlab = "标准化对数尺度上的等待时间")
##对标准化对数网格的密度进行点式估计

50c66f88d2d1841c32ca234b91d8e1d2.png

然而,回顾一下,这是对等待时间的对数的密度估计。为了获得原始尺度上的密度,我们需要对内核进行适当的转换。

standlGrid*sd(lFaithful) + mean(lFaithful) # 对数尺度上的网格

hist(faithful$waiting, freq = FALSE

e8e2acd10de1db4654a65a47d9d6ba42.png

无论是哪种情况,都有明显的证据表明,数据中的等待时间有两个组成部分。

生成混合分布的样本

虽然混合分布的线性函数的后验分布的样本(比如上面的预测分布)可以直接从折叠采样器的实现中计算出来,但是对于非线性函数7f374c8875294316aa412814d429faa2.png的推断需要我们首先从混合分布中生成样本。我们可以从随机度量2a187e613ecf4b460fb1040e4b474e41.png中获得后验样本。需要注意的是,为了从bbb2591d9aec1d54e93ae97b46941813.png ,得到后验样本,我们需要监控所有参与其计算的随机变量,即成员变量xi,聚类参数muTilde和s2Tilde,以及浓度参数alpha。


点击标题查阅往期内容

6bb4a4b568e1c08e36589a3694104ea9.jpeg

WINBUGS对随机波动率模型进行贝叶斯估计与比较

outside_default.png

左右滑动查看更多

outside_default.png

01

e0de15ab11d9b76d8aa055e9716cd4d1.jpeg

02

3544e515430e79c0193d633c82603f7c.jpeg

03

b012c705b8adcd981828725759d83499.jpeg

04

695631d2a4c640fc32e1c6c95ef67051.jpeg

下面的代码从随机测量中生成后验样本。cMCMC对象包括模型和参数的后验样本。函数估计了一个截断水平9dc6b26d0949e7d4cd35d6e18c5ac43c.png,即truncG。后验样本是一个带e70362f5b0838f15f4098cea28ad32ed.png列的矩阵,其中参数分布38df7ecb1a6c87d059221784a30e9072.png向量的维度(在本例中为ad69880558911fd75c61ce6fc8a0142a.png)。

outputG <- getSamplesDPmeasure(cmcmc)

下面的代码使用随机测量963e7b45484e4d2a8ba15124516e2078.png的后验样本来计算fe6b100fa8d9c5af6b5a53555e38ceb4.png的后验样本。请注意,这些样本是基于转换后的模型计算的,大于70的值对应于上述定义的网格上大于0.035的值。

truncG <- outputG$trunc # G的截断水平



probY70 <- rep(0, nrow(samples))  # P(y.tilde>70)的后验样本

hist(probY70 )

3de6ff71dd9b9cca74a6023593e8a89d.png

使用CRP表示法拟合伽马混合分布

不限于在DPM模型中使用高斯核。就Old Faithful数据而言,除了我们在上一节中介绍的对数尺度上的高斯核的混合分布外,还有一种选择是数据原始尺度上的伽马混合分布。

模型

在这种情况下,模型的形式为

c46334f36cc6e918fc735fab9529d702.png

其中55060ee9c79401938aede92bf2e17368.png对应于两个独立Gamma分布的乘积。下面的代码提供了该模型。

y\[i\] ~ dgamma(shape = beta\[i\], scale = lambda\[i\])
    beta\[i\] <- betaTilde\[xi\[i\]\]
    lambda\[i\] <- lambdaTilde\[xi\[i\]\]

请注意,在这种情况下,向量beta和lambda的长度为 ba6ba26a327323f1577998e9c406e0e0.png。这样做是为了减少与采样算法有关的计算和存储负担。你可以把这种方法看作是对过程的截断,只不过它可以被认为是*精确的截断。事实上,在CRP表示法下,只要采样器的成分数严格低于采样器每次迭代的参数向量的长度,使用长度短于样本中观察值的参数向量就会生成一个合适的算法。

运行MCMC算法

下面的代码设置了模型数据和常数,初始化了参数,定义了模型对象,并建立和运行了Gamma混合分布的MCMC算法。请注意,在构建MCMC时,会产生一个关于聚类参数数量的警告信息。这是因为betaTilde和lambdaTilde的长度小于15c950dc934da2dad451621d2d7020e0.png。另外,请注意,在执行过程中没有产生错误信息,这表明所需的集群数量未超过50个的上限。

data <- list(y = waiting)
Model(code, data = data)
cModel <- compile
samples <- runMCMC(cmcmc, niter = 7000, nburnin = 2000, setSeed = TRUE)

在这种情况下,我们使用参数的后验样本来构建一个轨迹图,并估计f384c3126c48e4a29e55fb7210e6a9a2.png的后验分布。

# 参数的后验样本的跟踪图
ts.plot(samples\[ , 'alpha'\], xlab = "iteration", ylab = expression(alpha))

9ae3c50ee432ae5ee4df67a9bc59f8bd.png

# 参数的后验样本的直方图 
hist(samples\[, 'alpha'\])

12dd977e9525b74d42cc135bb88b95bf.png

从混合分布中生成样本

和以前一样,我们从后验分布004b235e97072d9805a7a8f083ac8fb0.png中获得样本。

outputG <- getSamplesDPmeasure(cmcmc)

我们使用这些样本来创建一个数据密度的估计值,以及一个95%置信带。

for(iter in seq_len)) {
  density\[iter, \] <- sapply(grid, function(x)
    sum( weightSamples\[iter, \] * dgamma)))
}


hist(waiting, freq = FALSE

58675172f71c9e69d47326499b570d3d.png

我们再次看到,数据的密度是双峰的,看起来与我们之前得到的数据非常相似。

使用stick-breaking 表示法拟合伽马DP混合分布

模型

Dirichlet过程混合物的另一种表示方法是使用随机分布d1b22811c38205790b3470c2a30dde14.png的stick-breaking表示(Sethuraman, 1994)。

引入辅助变量,0ce42aa3262c78244c00123db31d8806.png表明哪个成分产生了每个观测值,上一节讨论的Gamma密度的混合物的相应模型的形式为

a435a03f46e8285c3b2ebab31635ec70.png

其中b1b86d6f63349f6b5ec49d72cae19a47.png 是两个独立Gamma分布的乘积。

a5790da31170a732258c8d5879953ecd.png

fba28f83957bd79eaec8320ff3f32c2e.png. 下面的代码提供了该模型说明。

y\[i\] ~ dgamma(shape = beta\[i\], scale = lambda\[i\])
      beta\[i\] <- betaStar\[z\[i\]\]
      lambda\[i\] <- lambdaStar\[z\[i\]\]
      z\[i\] ~ dcat(w\[1:Trunc\])
     # stick-breaking 
      v\[i\] ~ dbeta(1, alpha)
    w\[1:Trunc\] <- stick_breaking(v\[1:(Trunc-1)\]) # stick-breaking 权重
      betaStar\[i\] ~ dgamma(shape = 71, scale = 2)

注意,截断水平bb0c7172b0e9f2346f9b957e58c7f641.png已被设置为Trunc值,该值将在函数的常数参数中定义。

运行MCMC算法

下面的代码设置了模型数据和常量,初始化了参数,定义了模型对象,并建立和运行了Gamma混合分布的MCMC算法。当使用stick-breaking表示时,会指定一个分块Gibbs抽样器(Ishwaran, 2001; Ishwaran and James, 2002)。

data <- list(y = waiting)
consts <-length(waiting)
betaStar = rgamma
              lambdaStar = rgamma
              v = rbeta
              z = sample
              alpha = 1

91cf04c60ddc4cbea72825278b129dff.png

compile(Model)
MCMC(rModel, c("w", "betaStar", "lambdaStar", 'z', 'alpha'))
comp(mcmc )
MCMC(cmcmc, niter = 24000)

使用stick-breaking近似法会自动提供随机分布的近似值5150f2dbb663ce87c7c2f99023039e85.png,即 ba00fa648dc896a077a5520bcf7d8518.png。下面的代码使用来自227e871913fc564eb3961f8630615bc3.png样本对象的后验样本计算后验样本,并从中计算出数据的密度估计。

densitySamples\[i, \] <- sapply(grid, function(x) sum(weightSamples  * dgamma(x, shape ,
                                    scale )))

hist( waiting ylim=c(0,0.05),

d6ea22b35b82d18a7151af721a395cc7.png

正如预期的那样,这个估计值看起来与我们通过CRP表示的过程获得的估计值相同。

贝叶斯非参数化:非参数化随机效应

我们将采用一个参数化的广义线性混合模型,并展示如何切换到非参数化的随机效应表示,避免了正态分布的随机效应假设。

心肌梗死(MIs)的参数化meta分析

我们将在对以前非常流行的糖尿病药物 "Avandia "的副作用进行meta分析的背景下,说明使用非参数混合模型对随机效应分布进行建模。我们分析的数据在引起对这种药物的安全性的严重质疑方面发挥了作用。问题是使用"Avandia "是否会增加心肌梗死(心脏病发作)的风险。,每项研究都有治疗和对照组。

9fbbf774791d958a8975bd30098b90c7.png

模型的制定

我们首先进行基于标准的广义线性混合模型(GLMM)的meta分析。向量n和x分别包含对照组的患者总数和每项研究中对照组的心肌梗死患者人数。同样,向量m和y包含接受药物的病人的类似信息。该模型的形式为

a3a653d9f26b2fd7da14e044cbf3c5b9.png

其中,随机效应9fe2c941e7e311ee6114f706b1cbc322.png、遵循共同的正态分布c41111fe7c8dc0ed8ee822e9af7028ee.pngc53c9c2b0e134fdbfbb31705f508c39e.pnge033650404a5a7f947e080ed9f665886.png被合理地赋予非信息性先验。参数d00578a8fd31d705916bd6cd9c57de88.png量化了对照组和治疗组之间的风险差异,而参数634aa1decff29b04487453b7de370e4a.png则量化了研究的具体变化。

这个模型可以用以下代码指定。

y\[i\] ~ dbin(size = m\[i\], prob = q\[i\]) # 药物MIs
        x\[i\] ~ dbin(size = n\[i\], prob = p\[i\]) # 控制MIs
        q\[i\] <- expit(theta + gamma\[i\]) # 药物的对数指数
        p\[i\] <- expit(gamma\[i\]) #对照组对数
        gamma\[i\] ~ dnorm(mu, var = tau2) # 研究效果
    theta ~ dflat() # 药物的影响
    # 随机效应超参数
    mu ~ dnorm(0, 10)
    tau2 ~ dinvgamma(2, 1)

运行MCMC

让我们来运行一个基本的MCMC。

MCMC(codeParam,  data, inits,
                      constants, monitors = c("mu", "tau2", "theta", "gamma")
par(mfrow = c(1, 4)

hist(gammaMn)
hist(samples\[1000, gammaCols)

549ae2f10c36e3e370277cdd983efbcb.png

结果表明,对照组和治疗组之间存在着整体的风险差异。但是正态性假设呢?我们的结论对该假设是否稳健?也许随机效应的分布是偏斜的。

用于meta分析的基于DP的随机效应模型

模型

现在,我们对3258df1ab60c56fdff105fc0fd3533f5.png使用非参数分布。更具体地说,我们假设每个e78c0a7a542a21c0eadb7dc9e9ffc4c2.png都是由位置尺度的正态混合分布产生的。

6a9c9d17fde755c2a206ce9dc5d04821.png

这种模型引起了随机效应之间的聚类。与密度估计问题的情况一样,DP先验允许数据决定分量的数量,从最少的一个分量(即简化为参数模型)到最多的分量,即每个观测值有一个分量。如果数据支持这种行为,这允许随机效应的分布是多模态的,大大增加了其灵活性。这个模型可以用以下代码指定。

y\[i\] ~ dbin(size = m\[i\], prob = q\[i\]) # 药物MIs
        x\[i\] ~ dbin(size = n\[i\], prob = p\[i\]) # MIs
        q\[i\] <- expit(theta + gamma\[i\]) # 药物的对数指数
        p\[i\] <- expit(gamma\[i\]) # 对照组对数值
        gamma\[i\] ~ dnorm(mu\[i\], var = tau2\[i\]) # 来自混合物的随机效应。
        mu\[i\]<- muTilde\[xi\[i\]\]                 # 来自聚类的随机效应的平均值 xi\[i\]
        tau2\[i\] <- tau2Tilde\[xi\[i\]\]           # 来自群组xi\[i\]的随机效应变量
    # 从基础测量中提取混合成分参数
        muTilde\[i\] ~ dnorm(mu0, var = var0)
        tau2Tilde\[i\] ~ dinvgamma(a0, b0)
    # 用于将研究报告聚类为混合成分的CRP
    xi\[1:nStudies\] ~ dCRP(alpha, size = nStudies)
    # 超参数
  
    theta ~ dflat() # 药物的影响

运行MCMC

以下代码对模型进行了编译,并对模型运行了一个压缩Gibbs抽样

inits <- list(gamma = rnorm(nStudies))

MCMC(code = BNP, data = data)
hist(samplesBNP\[, 'theta'\], xlab = expression(theta), main = 'avandia的影响')
              main = "随机效应分布")
                   main = "随机效应分布")

# 推断出了多少个混合成分?
xiRes <- samplesBNP\[, xiCols\].

bef5ecf61283ef22ccb8408a93d7270e.png

主要推论似乎对原始的参数化假设很稳健。这可能是由于没有太多证据表明随机效应分布中缺乏正态性。

参考文献

Blackwell, D. and MacQueen, J. 1973. Ferguson distributions via Polya urn schemes. The Annals of Statistics 1:353-355.

Ferguson, T.S. 1974. Prior distribution on the spaces of probability measures. Annals of Statistics 2:615-629.

Lo, A.Y. 1984. On a class of Bayesian nonparametric estimates I: Density estimates. The Annals of Statistics 12:351-357.

4ffa043649e6ca7cfc13231a342fa5e2.png

点击文末“阅读原文”

获取全文完整资料。

本文选自《R语言贝叶斯非参数模型:密度估计、非参数化随机效应META分析心肌梗死数据》。

cffb9465e43528a0ce995e0798077901.jpeg

2b2361a6b98dd8301381ce93dc6fafdb.png

点击标题查阅往期内容

R语言用贝叶斯线性回归、贝叶斯模型平均 (BMA)来预测工人工资

R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病

PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享

PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像

MATLAB随机森林优化贝叶斯预测分析汽车燃油经济性

R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据

使用贝叶斯层次模型进行空间数据分析

MCMC的rstan贝叶斯回归模型和标准线性回归模型比较

python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化

Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现

matlab贝叶斯隐马尔可夫hmm模型实现

贝叶斯线性回归和多元线性回归构建工资预测模型

Metropolis Hastings采样和贝叶斯泊松回归Poisson模型

贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据

R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据

R语言STAN贝叶斯线性回归模型分析气候变化影响北半球海冰范围和可视化检查模型收敛性

PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像

贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据

R语言JAGS贝叶斯回归模型分析博士生延期毕业完成论文时间

R语言Metropolis Hastings采样和贝叶斯泊松回归Poisson模型

Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户

R语言贝叶斯MCMC:用rstan建立线性回归模型分析汽车数据和可视化诊断

R语言贝叶斯MCMC:GLM逻辑回归、Rstan线性回归、Metropolis Hastings与Gibbs采样算法实例

R语言贝叶斯Poisson泊松-正态分布模型分析职业足球比赛进球数

随机森林优化贝叶斯预测分析汽车燃油经济性

R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病

R语言用Rcpp加速Metropolis-Hastings抽样估计贝叶斯逻辑回归模型的参数

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

Python贝叶斯回归分析住房负担能力数据集

R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析

Python用PyMC3实现贝叶斯线性回归模型

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析

R语言和STAN,JAGS:用RSTAN,RJAG建立贝叶斯多元线性回归预测选举数据

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言贝叶斯线性回归和多元线性回归构建工资预测模型

R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例

R语言stan进行基于贝叶斯推断的回归模型

R语言中RStan贝叶斯层次模型分析示例

R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化

R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

WinBUGS对多元随机波动率模型:贝叶斯估计与模型比较

R语言实现MCMC中的Metropolis–Hastings算法与吉布斯采样

R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例

R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化

视频:R语言中的Stan概率编程MCMC采样的贝叶斯模型

R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计

89e5993897eda2231b51e73dfafd4323.png

59449e67c4c127ee8d5e3a944746420f.jpeg

639f101369cc2644120c07ff7f4f113b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1035588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化...

全文链接:https://tecdat.cn/?p33760 众所周知&#xff0c;心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用&#xff0c;尤其在医疗行业中越来越受欢迎。机器学习可…

若依前后端分离如何解决匿名注解启动报错?

SpringBoot2.6.0默认是ant_path_matcher解析方式,但是2.6.0之后默认是path_pattern_parser解析方式。 所以导致读取注解类方法需要对应的调整,当前若依项目默认版本是2.5.x,如果使用大于2.6.x,需要将info.getPatternsCondition().getPatterns()修改为info.getPathPatterns…

保研CS/软件工程/通信专业问题汇总(搜集和自己遇到的)

机器学习 1.TP、TN、FP、FN、F1 2.机器学习和深度学习的区别和联系 模型复杂性&#xff1a;深度学习是机器学习的一个子领域&#xff0c;其主要区别在于使用深层的神经网络模型。深度学习模型通常包含多个隐层&#xff0c;可以学习更加复杂的特征表示&#xff0c;因此在某些任…

使用python处理MNIST数据集

文章目录 一. MNIST数据集1.1 什么是MNIST数据集1.2MNIST数据集文件格式1.3使用python访问MNIST数据集文件内容 附录程序源码 一. MNIST数据集 1.1 什么是MNIST数据集 MNIST数据集是入门机器学习/识别模式的最经典数据集之一。最早于1998年Yan Lecun在论文:[Gradient-based l…

Qt5开发及实例V2.0-第十九章-Qt.QML编程基础

Qt5开发及实例V2.0-第十九章-Qt.QML编程基础 第19章 QML编程基础19.1 QML概述19.1.1 第一个QML程序19.1.2 QML文档构成19.1.3 QML基本语法 19.2 QML可视元素19.2.1 Rectangle&#xff08;矩形&#xff09;元素19.2.2 Image&#xff08;图像&#xff09;元素19.2.3 Text&#xf…

JavaScript中的代理对象(proxy)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 创建代理对象⭐ 使用代理对象⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友…

Helm 的简单使用 wordpress install

概述 尝试使用Helm部署wordpress博客服务 Helm | Helm Helm命令 bash自动补全 Helm | Helm补全 - bash wordpress案例 install helm repo add bitnami https://charts.bitnami.com/bitnamihelm install wordpress bitnami/wordpress \ --namespacewordpress \ --create-…

缓存(cache)与缓冲区(buffer)的主要区别

缓存&#xff08;cache&#xff09;与缓冲区(buffer)的主要区别 1.Buffer的核心作用是用来缓冲&#xff0c;缓和冲击&#xff08;对输出设备的冲击&#xff0c;包括磁盘、打印机、显示器&#xff09;。比如你每秒要写100次硬盘&#xff0c;对系统冲击很大&#xff0c;浪费了大…

SAP PO运维(三):XML消息监控

登录到SAP ECC系统&#xff0c;输入事务码&#xff1a;SXI_MONI&#xff0c;点击“Technical Monitor for Processed XML Messages”&#xff0c;或直接输入事务码SXI_MONITOR&#xff1a; 2、在XML消息处理页面输入查询条件&#xff0c;查看接口XML报错消息&#xff1a; 3、检…

Spring Cloud Alibaba Sentinel流量防卫兵

文章目录 Spring Cloud Alibaba Sentinel流量防卫兵1. 分布式遇到的问题2.解决的方法 Sentinel: 分布式系统的流量防卫兵1. 简介和特折 Sentinel流量防卫兵的搭建1.引入依赖2.添加配置类3.运行类上添加SentinelResource&#xff0c;并配置blockHandler和fallback4. linux中放入…

手摸手图解 CodeWhisperer 的安装使用

CodeWhisperer 是亚⻢逊出品的一款基于机器学习的通用代码生成器&#xff0c;可实时提供代码建议。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术&#xff0c;观点…

KNN-K近邻算法(K-Nearest Neighbors)

k近邻算法的特点 思想极度简单应用数学知识少&#xff08;近乎为零&#xff09;效果好(缺点&#xff1f;)可以解释机器学习算法使用过程中的很多细节问题更完整的刻画机器学习应用的流程 k近邻算法 k近邻算法整体是这样的一个算法&#xff0c;我们已经知道的这些数据点其实是…

服务注册发现_Eureka概述

Spring Cloud Eureka 是Netflix 开发的注册发现组件&#xff0c;本身是一个基于 REST 的服务。提供注册与发现&#xff0c;同时还提供了负载均衡、故障转移等能力。 Eureka3个角色 服务中心服务提供者服务消费者。 注意&#xff1a; Eureka Server&#xff1a;服务器端。它提…

【Linux】系统编程线程读写者模式(C++)

目录 一、读写锁 二、读写锁接口 【2.1】设置读写优先 【2.2】初始化 【2.3】销毁 【2.4】加读锁 【2.5】加写锁 【2.6】解锁 三、读写锁实例 一、读写锁 在编写多线程的时候&#xff0c;有一种情况是十分常见的。那就是&#xff0c;有些公共数据修改的机会比较少。相…

接口自动化测试之Mock

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; 1.Mock实现原理和实现机制 在某些时候&#xff0c;后端在开发接口的时候&#xff0c;处理逻辑非常复杂&a…

基于Java+SpringBoot+Vue+Uniapp奶茶在线下单小程序设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言用户微信小程序端的主要功能有&#xff1a;管理员的主要功能有&#xff1a;具体实现截图详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考论文参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌…

Linux 用户 用户组管理

用户 Linux系统是一个多用户多任务的分时操作系统&#xff0c;任何要使用系统资源的用户&#xff0c;都必须首先向系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统。每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后&a…

ubuntu22.04编译DPDK19.08.2注意事项

下载&#xff1a;http://fast.dpdk.org/rel/dpdk-19.08.2.tar.xz 解压&#xff1a;tar -xvf dpdk-19.08.2.tar.xz &#xff08;1&#xff09;设置环境变量和编译 cd dpdk-stable-19.08.2 export RTE_SDKpwd export RTE_TARTGETx86_64-native-linuxapp-gcc make config Tx86…

Ae 效果:CC Simple Wire Removal

Keying/CC Simple Wire Removal Keying/CC Simple Wire Removal CC Simple Wire Removal &#xff08;CC 简单线条移除&#xff09;通过在两点之间创建一条指定宽度&#xff08;厚度&#xff09;的连线&#xff0c;然后将连线区域内的像素按指定方式进行填充&#xff0c;从而实…

R语言非线性方程数值分析生物降解、植物生长数据:多项式、渐近回归、米氏方程、逻辑曲线、Gompertz、Weibull曲线...

全文链接&#xff1a;https://tecdat.cn/?p33742 在选择最佳拟合实验数据的方程时&#xff0c;可能需要一些经验。当我们没有文献信息时该怎么办&#xff1f;我们建立模型的方法通常是经验主义的。也就是说&#xff0c;我们观察过程&#xff0c;绘制数据并注意到它们遵循一定的…