JAGS/WinBUGS中的嵌套随机效应

JAGS/WinBUGS中的嵌套随机效应,jags,winbugs,random-effects,Jags,Winbugs,Random Effects,我对在JAGS中拟合以下嵌套随机效应模型感兴趣 SAS代码 proc nlmixed data=data1 qpoints=20; parms beta0=2 beta1=1 ; bounds vara >=0, varb_a >=0; eta = beta0+ beta1*t+ b2+b3; p = exp(eta)/(1+exp(eta)); model TestResult ~ binary(p); random b2 ~

我对在JAGS中拟合以下嵌套随机效应模型感兴趣

SAS代码

proc nlmixed data=data1 qpoints=20;

    parms beta0=2 beta1=1 ;
    bounds vara >=0, varb_a >=0;
     eta = beta0+ beta1*t+ b2+b3;
    p = exp(eta)/(1+exp(eta));
    model TestResult ~ binary(p);
     random b2 ~ normal(0,vara) subject = HHcode;
     random b3 ~ normal(0,varb_a) subject = IDNo_N(HHcode);
    run;
我的问题:如何指定随机效果部分?

我对个人进行了多次测量。这些个体进一步嵌套在家庭中。注:每个家庭的个人数量各不相同


期待您的来信

让我们假设我们有两个向量,指示数据点所属的房屋和个人(这些是您需要创建的内容,在
R
中,您可以通过
as.numeric
将系数更改为numeric来创建这些内容)。所以,如果我们有来自2个房子和5个人的10个数据点,它们会是这样的

house_vec=c(1,1,1,1,1,1,1,2,2)
#1号房屋得6分,2号房屋得4分

ind#u vec=c(1,1,2,2,3,3,4,4,5,5)
#每个人都有两个观察结果

N=10
#数据点数量

因此,上面的向量告诉我们第一个房子里有3个个体(因为
house_vec
的前6个元素是
1
,而
ind_vec
的前6个元素的范围是1到3),第二个房子里有2个个体(house_vec的最后4个元素是2,
ind_vec
的最后4个元素是4和5)。有了这些向量,我们可以在JAG中进行嵌套索引来创建您的随机效果结构。类似这样就足够了。这些向量将在data.list中提供,您必须在
TestResult
中包含这些向量

for(i in 1:N){
mu_house[house_vec[i]] ~ dnorm(0, taua)
mu_ind[ind_vec[i]] ~ dnorm(mu_house[house_vec[i]], taub_a)
}

# priors
taua ~ dgamma(0.01, 0.01) # precision
sda <- 1 / sqrt(taua) # derived standard deviation
taub_a ~ dgamma(0.01, 0.01) # precision
sdb_a <- 1 / sqrt(taub_a) # derived standard deviation

然后,您需要为
beta0
beta1

设置优先级。非常感谢您的支持。感谢您抽出时间帮助我,我非常感谢
for(i in 1:N){
logit(p[i]) <- beta0 + beta1 * t + mu_ind[ind_vec[i]]
TestResult[i] ~ dbern(p[i])
}