使用Winbugs进行假设检验

时间:2019-02-14 16:15:08

标签: r model winbugs hypothesis-test r2winbugs

在“ The Bugs Book: A practical introduction to Bayesian Analysis”中,我找到了一个大家可能都知道的简单示例; “有偏见的硬币”(p95):

r <- 15; n <- 20        # data
r        ~ dbin (p,n)   # likelihood
p        <- theta[pick]
pick     ~ dcat(q[])    # 2 if biased, 1 otherwise
q[1]     <- 0.9         # prior probability of coin unbiased
q[2]     <- 0.1         # prior probability of coin biased
theta[1] <- 0.5         # effect when unbiased
theta[2] ~ dunif(0,1)   # effect when biased
biased   <- pick-1

我很难将其应用于我自己的示例。 在我的案例中,“ 成功的概率”是响应变量,它有条件地依赖于不同的协变量(而后者又有条件地依赖于其他协变量)。在这里您可以看到图形结构:bayesian graphical network我的目的是检验以下假设

  

P(成功| X1 = 1,X2 = 0)> P(成功| X1 = 0,X2 = 1)或H1更有可能   比H2

X1 X2 是图形结构中的两个协变量。在开始时,它们的可能性相同:先验概率 p(H1) p(H2) = 0.5或

q[1] and q[2] = 0.5

现在,我的问题。我不确定如何实现本书中提出的方法。在我的情况下,应如何实现theta,即 H1 H2 成功的影响(请参见下面的代码)?以及如何使用 theta [选择] 选项更改 H1 H2 p 的值(在我的案例中, p = z [i] 是协变量的逻辑回归)。

或者这不是做到这一点的方法吗?我应该算一下 P(Success | X1 = 1,X2 = 0) P(Success | X1 = 0,X2 = 1)发生的次数(偶然性)表格)?


model <- function(){ 
  # likelihoods
  for (i in 1:Nr){ 
    Success[i] ~ dbern(z[i])
    logit(z[i]) <- alpha[1] + alpha[2]*RT[i] + alpha[3]*Zaltrap[i]+ alpha[4]*stadium[i]

    stadium[i] ~ dgamma(gamma1[i],0.5)
    gamma1[i] <- beta1[1]+ beta1[2]*WHO[i] + beta1[3]*totaltum[i] + beta1[4]*N[i] + beta1[5]*T[i]                         # Latent variable

    Zaltrap[i] ~ dbern(gamma2[i])
    logit(gamma2[i])<- beta2[1]+ beta2[2]*beta2[3][i] + beta2[3]*Folfox[i]

    Folfiri[i] ~ dbern(tau1[i])
    logit(tau1[i]) <- delta1[1]+ delta1[2]*XX[i] + delta1[3]*BC[i] + delta1[4]*Erbitux[i] + delta1[5]*Vectibix[i]       # Latent variable 

    Folfox[i] ~ dbern(tau2[i])
    logit(tau2[i]) <- delta2[1]+ delta2[2]*XA[i] + delta2[3]*BC[i] + delta2[4]*Erbitux[i] + delta2[5]*Vectibix[i]       # Latent variable
  }
  # priors
  for (i in 1:4) { alpha[i] ~dnorm(0.001,0.0001)}
  for (i in 1:5) { beta1[i] ~dgamma(1,5)}
  for (i in 1:3) { beta2[i] ~dnorm(0.001,0.0001)}
  for (i in 1:5) { delta1[i] ~dgamma(1,5)}
  for (i in 1:5) { delta2[i] ~dgamma(1,5)}
}

0 个答案:

没有答案