楼主: zjjvv
8640 30

[问答] 请教一个关于winbugs的问题 [推广有奖]

  • 0关注
  • 0粉丝

小学生

7%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
32 点
帖子
5
精华
0
在线时间
3 小时
注册时间
2011-6-26
最后登录
2011-6-28

楼主
zjjvv 发表于 2011-6-26 09:44:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我现在做一个了逆建模型,y是观测值,y*是模拟值(y*=ax+b),两者之差(也就是随机误
差项)符合标准正态分布:y=y*+ε(0,σ2),然后想用贝叶斯方法估计参数a,b,用到M
CMC方法,看文献都用winbugs计算,可是我试了几次模型编译compile都出错,觉得应该是
模型建立的问题,求各位指点迷津!!!
model
for( i in 1 : N ) { y[i] <- y*[i] + ε[i]
y*[i] <- a*x[i]+b
ε[i] ~ dnorm( 0.0,tau)
}
a ~ dunif(0, 1.5)
b ~ dunif(0, 0.8)
tau ~ dgamma(0.001,0.001)
sigma <- 1 / sqrt(tau)
}
compile的时候出现:multiple definition of node y[1]!求大家指点迷津啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:winbugs WINBUG BUGS bug Win 请教 winbugs

沙发
gaoxin1986 发表于 2011-6-26 09:48:08
不好意思哦,俺不会!
All will be gone!

藤椅
zhangtao 发表于 2011-6-26 10:00:51
你最好把你的数据和初值,也就是完整的程序发上来,我们
给你修改好也好验证。
我初步判断把y*改成z*就应该可以了,但没你的数据和初值所以没办法验证。
希望你修改运行成功后给我说一声。
数学好就是要天天学

板凳
zjjvv 发表于 2011-6-26 10:05:04
上面是我方便说明问题,所以简写的一个,下面这个是我自己所需编的程序,我觉得是不是类似的问题不该这么建模,是不是我写的model的程序本身有问题
model;
{
   for( i in 1 : N ) {
      cod[i] <- u[i] + eta[i]
      u[i] <- (beta / decay) * (1 - exp(( -decay / v[i]) * x))
      eta[i] ~ dnorm( 0.0,tau)
   }
   alpha ~ dunif(0, 1.5)
   decay ~ dunif(0, 0.8)
   beta <- exp(alpha)
   tau ~ dgamma(0.001,0.001)
   sigma <- 1 / sqrt(tau)
}
Data list(x=1000,N=12,cod=c(13.92,16.05,14.88,16.05,15.77,10.14,2.92,3.38,8.77,6.9,6.46,10.93),v=c(1202688,1386720,1285632,1386720,1362528,876096,252288,292032,757728,596160,558144,944352))
inits
list(alpha=2.3,tau=1.0,decay=0.1)

报纸
zhangtao 发表于 2011-6-26 21:28:07
model
{
   for( i in 1 : N ) {
      cod[i] <- u[i] + eta[i]
      u[i] <- (beta / decay) * (1 - exp(( -decay / v[i]) * x))
      eta[i] ~ dnorm( 0.0,tau)
   }
      alpha ~ dunif(0, 1.5)
      decay ~ dunif(0, 0.8)
      beta <- exp(alpha)
      tau ~ dgamma(0.001,0.001)
      sigma <- 1 / sqrt(tau)
}

Data
      list(x=1000,N=12,v=c(1202688,1386720,1285632,1386720,1362528,876096,252288,292032,757728,596160,558144,944352))
inits
      list(alpha=2.3,cod=c(13.92,16.05,14.88,16.05,15.77,10.14,2.92,3.38,8.77,6.9,6.46,10.93),tau=2.0,decay=0.1)

现在编辑通过了,又不能初始化了,我们共同解决问题吧!
数学好就是要天天学

地板
zhangtao 发表于 2011-6-26 21:43:21
data loaded
multiple definitions of node cod[1]
cod[1]      13.92
cod[2]      16.05
cod[3]      14.88
cod[4]      16.05
cod[5]      15.77
cod[6]      10.14
cod[7]      2.92
cod[8]      3.38
cod[9]      8.77
cod[10]      6.9
cod[11]      6.46
cod[12]      10.93
数学好就是要天天学

7
zhangtao 发表于 2011-6-26 21:44:20
cod[12] GraphConstant.Node
cod[1]
v[1]      1202688.0
v[2]      1386720.0
v[3]      1285632.0
v[4]      1386720.0
v[5]      1362528.0
v[6]      876096.0
v[7]      252288.0
v[8]      292032.0
v[9]      757728.0
v[10]      596160.0
v[11]      558144.0
v[12]      944352.0
数学好就是要天天学

8
zhangtao 发表于 2011-6-26 21:45:45
this initial value does not correspond to a stochastic node
model is syntactically correct
data loaded
multiple definitions of node cod[1]
cod[1]      13.92
cod[2]      16.05
cod[3]      14.88
cod[4]      16.05
cod[5]      15.77
cod[6]      10.14
cod[7]      2.92
cod[8]      3.38
cod[9]      8.77
cod[10]      6.9
cod[11]      6.46
cod[12]      10.93
cod[1] GraphConstant.Node
cod[2] GraphConstant.Node
cod[3] GraphConstant.Node
cod[4] GraphConstant.Node
cod[5] GraphConstant.Node
cod[6] GraphConstant.Node
cod[7] GraphConstant.Node
cod[8] GraphConstant.Node
cod[9] GraphConstant.Node
cod[10] GraphConstant.Node
cod[11] GraphConstant.Node
cod[12] GraphConstant.Node
cod[1]
v[1]      1202688.0
v[2]      1386720.0
v[3]      1285632.0
v[4]      1386720.0
v[5]      1362528.0
v[6]      876096.0
v[7]      252288.0
v[8]      292032.0
v[9]      757728.0
v[10]      596160.0
v[11]      558144.0
v[12]      944352.0
数学好就是要天天学

9
zhangtao 发表于 2011-6-26 21:51:18
cod[1] 确实存在多重定义
数学好就是要天天学

10
zhangtao 发表于 2011-6-26 22:08:36
model;
{
   for( i in 1 : N ) {
      cod[i] <- u[i] + eta[i]
      u[i] <- (beta / decay) * (1 - exp(( -decay / v[i]) * x))
      eta[i] ~ dnorm( 0.0,tau)
   }
   alpha ~ dunif(0, 1.5)
   decay ~ dunif(0, 0.8)
   beta <- exp(alpha)
   tau ~ dgamma(0.001,0.001)
   sigma <- 1 / sqrt(tau)
}
Data
list(x=1000,N=12,v=c(1202688,1386720,1285632,1386720,1362528,876096,252288,292032,757728,596160,558144,944352))
inits
list(alpha=2.3,tau=12.0,decay=0.1)
编辑也能通过
数学好就是要天天学

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 06:20