3

我正在使用 WinBugs 处理分层面板数据。假设关于学校表现的数据 - 具有自变量 logp 和排名的日志。所有学校都分为三类(猫),我需要每个类别的贝塔系数(因此是 HLM)。我想在模型中考虑特定时间和特定学校的影响。一种方法是在 mu[i] 下的变量列表中设置虚拟变量,但这会变得很混乱,因为我的学校数量高达 60 所。我相信一定有更好的方法来处理这个问题。

My data looks like the following:
school time logs logp  cat rank
1       1    4.2   8.9    1     1
1       2    4.2   8.1    1     2
1       3    3.5   9.2    1     1
2       1    4.1   7.5    1     2
2       2    4.5   6.5    1     2
3       1    5.1   6.6    2     4
3       2    6.2   6.8    3     7


#logs = log(score)
#logp = log(average hours of inputs)
#rank - rank of school
#cat = section red, section blue, section white in school (hierarchies)

我的 WinBUGS 代码如下。

model {
# N observations

for (i in 1:n){

logs[i] ~ dnorm(mu[i], tau)
mu[i] <- bcons +bprice*(logp[i])
         + brank[cat[i]]*(rank[i])

}
}
}
# C categories
for (c in 1:C) {
brank[c] ~ dnorm(beta, taub)}

 # priors 
bcons ~ dnorm(0,1.0E-6)
bprice ~ dnorm(0,1.0E-6)
bad ~ dnorm(0,1.0E-6)
beta ~ dnorm(0,1.0E-6)
tau ~ dgamma(0.001,0.001)
taub ~dgamma(0.001,0.001)

}

正如您在上面的数据样本中看到的那样,随着时间的推移,我对学校有多次观察。如何修改代码以考虑时间和学校特定的固定效果。我过去使用过 STATA,我们得到 fe,be,i.time 选项来处理面板数据中的固定效果。但在这里我迷路了。

4

0 回答 0