m**c 发帖数: 88 | 1 model{
for (i in 1:n){
y[i,1:2]~ dmnorm( mu[], T[,] )
}
for (i in 1:P){
mu[i] <- inprod(A[i,],x[,])+ A0[i,1]
}
x[1,1] ~ dnorm(0.0, 1.0E-4)
x[2,1] ~ dnorm(0.0, 1.0E-4)
#x[1,1] ~ dunif(3,7)
#x[2,1] ~ dunif(4,8)
T[1:P,1:P] <- inverse(V[,])
}
INITS
list(x = structure(.Data = c(3,6), .Dim =c(2,1)))
DATA (RECT.)
list( n=10, P=2,
A = structure(.Data = c(1.5,1.2, 2, 0.7),.Dim =c(2,2)),
A0 = structure(.Data... 阅读全帖 |
|
发帖数: 1 | 2 here's my code:
bayes.mod<-function(){
#proficiency model
for (i in 1:10){
for (k in 1:4){
pi[i,k]<-exp(lambda0[i]+lambda1[i]*theta[i])/(1+exp(lambda0[i]+lambda1
[i]*theta[i]))
alpha[i,k]~dcat(pi[i,k]) #categorical density
}
lambda0[i]~dunif(-1,1)
lambda1[i]~dunif(0,2)
theta[i]~dnorm(0,1)}
#evidence model
for ( j in 1:10){
for (k in 1:4){
gamma[j,k] <- rr[j,k]*q[j,k]
rr [j,k]~ dnorm(1,3)
q<-q
}
beta[j]~dnorm(mu,1)
}
mu~d... 阅读全帖 |
|
W*****r 发帖数: 193 | 3 model {
for (j in 1:J){
y[j] ~ dnorm(theta[j], tau.y[j])
theta[j] ~dnorm(mu.theta, tau.theta)
tau.y[j] <- pow(sigma.y[j], -2)
}
mu.theta ~ dnorm(0, 1.0E-6)
tau.theta <- pow(sigma.theta, -2)
sigma.theta ~ dunif (0, 1000)
either<-max(theta1,theta2,theta3,theta4, theta5, theta6, the7, theta8)
问题在这一行,我共有8个theta值。这样输入说“没有定义theta1...“
我想请教一下:应该怎么输入?
多谢多谢。会发包子的。
}
DATA
list(J=8, y = c(28, 8, -3, 7, -1,1,18,12), sigma.y=c(15,10,16,11,9,11,
10,18))
INITIAL VALUES
list(theta= c(0,0,0,0,0,0,0,0), mu.th... 阅读全帖 |
|
W*****r 发帖数: 193 | 4 model {
for (j in 1:J){
y[j] ~ dnorm(theta[j], tau.y[j])
theta[j] ~dnorm(mu.theta, tau.theta)
tau.y[j] <- pow(sigma.y[j], -2)
}
mu.theta ~ dnorm(0, 1.0E-6)
tau.theta <- pow(sigma.theta, -2)
sigma.theta ~ dunif (0, 1000)
either<-max(sort[theta[1], theta[2],theta[3],theta[4]],sort[theta[5],
theta[6],theta[7],theta[8]]))
}
我又试了一下,说有variable未定义。BTW,我只用两个theta值的时候,either可以
set成node,density也可以显示。
多谢多谢。
DATA
list(J=8, y = c(28, 8, -3, 7, -1,1,18,12), sigma.y=c(15,10,16,11,9,11,
10,18))
INITIAL VALUES... 阅读全帖 |
|
a*********e 发帖数: 1233 | 5 本人初用WinBUGS。
假设有模型 mu[i] <- beta0+ beta1*p[i]
其中i=100,
mu[i] 是100个已知数据,
p[i]是生成的数据。
问题是,p[i]分成两部分,例如前50个是均匀分布,后50个是正态分布。
下面的代码显然不能运行
for (i in 1:m){
y[i] = dunif(0,10)
}
for(i in m+1:n){
y[i] = dnorm(0,1)
}
m=50, n=100
请问有什么方法能生成这样的数据,或者说能否把生成的几个数据合并成一个变量。
谢谢。 |
|