gpt4 book ai didi

regression - 使用 JAGS 之前的 SSVS 和尖峰板

转载 作者:行者123 更新时间:2023-12-04 03:07:17 25 4
gpt4 key购买 nike

我对这个话题很陌生/在讨论板上发帖,所以如果有什么不清楚的地方,我提前道歉。

我对在 JAGS 中执行随机搜索变量选择 (SSVS) 感兴趣。我在网上看到过执行 SSVS 的人的代码(例如 http://www4.stat.ncsu.edu/~reich/ABA/code/SSVS,我复制了下面的代码),但我的理解是,要执行此方法,我需要在 JAGS 中先使用尖刺板。尖峰可以是点质量或方差非常窄的分布。查看大多数人的代码,只定义了一个分布(在上面的一个中,他们定义了 gamma 分布,beta = gamma * delta),我相信他们假设尖峰上有一个点质量。

所以我的问题是:

1) 有人可以解释为什么下面的代码使用 SSVS 方法吗?例如,我们怎么知道这不是使用 GVS,这也是使用 Gibbs 采样器的另一种方法?

2)这是尖峰上的一个点质量吗?

3) 如果我想使用模拟数据来测试 Gibbs 采样器是否正确地从尖刺/板坯中提取,我将如何去做?我会为尖峰和平板编码吗,我会在后面寻找什么来查看它是否正确绘制?

model_string <- "model{ 
# Likelihood
for(i in 1:n){
Y[i] ~ dpois(lambda[I])
log(lambda[i]) <- log(N[i]) + alpha + inprod(beta[],X[i,])
}
#Priors
for(j in 1:p){
gamma[j] ~ dnorm(0,tau)
delta[j] ~ dbern(prob)
beta[j] <- gamma[j]*delta[j]
}
prob ~ dunif(0,1)
tau ~ dgamma(.1,.1)
alpha ~ dnorm(0,0.1)
}"

我也在 JAGS 帮助页面上询问过: https://sourceforge.net/p/mcmc-jags/discussion/610036/thread/a44343e0/#ab47

最佳答案

我也在(试图)研究 JAG 中的一些贝叶斯变量选择内容。我绝不是这方面的专家,但也许如果我们多聊聊这个,我们可以一起学习。这是我对这段代码中变量选择的解释:

model_string <- "model{ 
Likelihood
for(i in 1:n){
Y[i] ~ dpois(lambda[I])
log(lambda[i]) <- log(N[i]) + alpha + inprod(beta[],X[i,])
}

Priors
for(j in 1:p){
gamma[j] ~ dnorm(0,tau)
delta[j] ~ dbern(prob) # delta has a Bernoulli distributed prior (so it can only be 1:included or 0:notincluded)
beta[j] <- gamma[j]*delta[j] # delta is the inclusion probability
}
prob ~ dunif(0,1) # This is then setting an uninformative prior around the probability of a varible being included into the model
tau ~ dgamma(.1,.1)
alpha ~ dnorm(0,0.1)
}"

我试图注释掉模型的变量选择部分。上面的代码看起来与贝叶斯变量选择的 Kuo & Mallick 方法非常相似。我目前在调整尖峰和平板方法时遇到问题,因此估计值正确混合,而不是在 0 或 1 上“卡住”。

所以我的先验设置更像是:
 beta~ dnorm(0,tau)
tau <-(100*(1-gamma))+(0.001*(gamma)) # tau is the inclusion probability
gamma~dbern(0.5)

我发现这篇论文有助于解释不同变量选择方法之间的差异(它涉及 GVS 与 SSVS):

O’Hara, R.B. & Sillanpää, M.J. (2009). A review of Bayesian variable selection methods: What, how and which. Bayesian Anal., 4, 85–118

或者这篇博文: https://darrenjw.wordpress.com/2012/11/20/getting-started-with-bayesian-variable-selection-using-jags-and-rjags/

如果 beta 之前没有 SSVS,则先验看起来更像这样:
Priors
for(j in 1:p){
beta[j] <- ~ dnorm(0,0.01) # just setting a normally (or whatever drstribution you're working in) distributed prior around beta.
}
tau ~ dgamma(.1,.1)
alpha ~ dnorm(0,0.1)
}"

关于regression - 使用 JAGS 之前的 SSVS 和尖峰板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47758236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com