楼主: ctfy
2593 5

[问答] WinBUGS问题求解 [推广有奖]

  • 1关注
  • 0粉丝

本科生

20%

还不是VIP/贵宾

-

威望
0
论坛币
1329 个
通用积分
26.0523
学术水平
0 点
热心指数
5 点
信用等级
0 点
经验
1097 点
帖子
63
精华
0
在线时间
77 小时
注册时间
2007-4-11
最后登录
2024-5-23

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
模型如下:

  1. model
  2. {
  3.     for (i in 1:n) {
  4.         y[i] ~ dbern(p[i])
  5.         logit(p[i]) <- b[1] + b[2] * x[i, 1] + b[3] * x[i, 2]
  6.         x[i, 1:2] ~ dmnorm(m[], t.m[, ])
  7.     }
  8.     for (i in 1:3) {
  9.         b[i] ~ dnorm(0.00000E+00, 1.00000E-04)
  10.     }
  11.     m[1] <- 0.00000E+00
  12.     m[2] <- 0.00000E+00
  13.     t.m[1, 1] <- 1.00000E-04
  14.     t.m[1, 2] <- 0.00000E+00
  15.     t.m[2, 1] <- 0.00000E+00
  16.     t.m[2, 2] <- 1.00000E-04
  17. }
复制代码


数据如下:
  1. list(n=5.00000E+01, y=c(0.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00), x= structure(.Data= c(-5.60476E-01,     NA, -2.30177E-01, -2.85468E-02,     NA, -4.28705E-02, 7.05084E-02, 1.36860E+00, 1.29288E-01, -2.25771E-01, 1.71506E+00, 1.51647E+00,     NA, -1.54875E+00,     NA, 5.84614E-01,     NA, 1.23854E-01, -4.45662E-01,     NA,     NA, 3.79639E-01, 3.59814E-01, -5.02323E-01, 4.00771E-01,     NA, 1.10683E-01,     NA, -5.55841E-01, -1.07179E+00, 1.78691E+00, 3.03529E-01, 4.97850E-01,     NA,     NA,     NA, 7.01356E-01, 9.22267E-01, -4.72791E-01, 2.05008E+00, -1.06782E+00,     NA,     NA, -2.30917E+00,     NA, 1.00574E+00,     NA,     NA, -6.25039E-01, -6.88009E-01, -1.68669E+00, 1.02557E+00, 8.37787E-01,     NA,     NA, -1.22072E+00, -1.13814E+00, 1.81303E-01, 1.25381E+00,     NA, 4.26464E-01,     NA, -2.95071E-01, 3.85280E-01, 8.95126E-01, -3.70660E-01, 8.78133E-01, 6.44377E-01, 8.21581E-01, -2.20487E-01, 6.88640E-01, 3.31782E-01, 5.53918E-01,     NA, -6.19117E-02, 4.35181E-01, -3.05963E-01, -3.25932E-01, -3.80471E-01, 1.14881E+00,     NA, 9.93504E-01,     NA, 5.48397E-01,     NA, 2.38732E-01,     NA,     NA, 1.20796E+00, 1.36065E+00, -1.12311E+00, -6.00260E-01,     NA, 2.18733E+00,     NA, 1.53261E+00, 7.79965E-01,     NA,     NA, -1.02642E+00), .Dim=c(50, 2)))
复制代码


编译时出现:
  1. model is syntactically correct
  2. data loaded
  3. ****** Sorry something went wrong in procedure Updater.AllocateSpecial in module UpdaterGLM ******
  4. multiple definitions of node p[1]
复制代码

怎么也没有看出为啥p这个节点多次定义了
网上找了好久也没有看到相应的解答
而且如果将上面的GLM改成普通线性模型,则没有任何错误。
不知道什么原因?求大牛解答。谢谢~
二维码

扫码加我 拉你入群

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

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

关键词:winbugs WINBUG BUGS 问题求解 bug 模型

沙发
ctfy 发表于 2013-1-25 10:15:42 |只看作者 |坛友微信交流群
另外,同样的方式,对于1个协变量的情况,则一点儿问题都没有,例如
  1. model
  2. {
  3.     for (i in 1:n) {
  4.         y[i] ~ dbern(p[i])
  5.         logit(p[i]) <- b0 + b1 * x[i]
  6.         x[i] ~ dnorm(mu, tau.m)
  7.     }
  8.     mu ~ dnorm(0.00000E+00, 1.00000E-04)
  9.     tau.m ~ dgamma(1.00000E-04, 1.00000E-04)
  10.     b0 ~ dnorm(0.00000E+00, 1.00000E-04)
  11.     b1 ~ dnorm(0.00000E+00, 1.00000E-04)
  12. }
复制代码
数据如下:
  1. list(n=5.00000E+01, y=c(1.00000E+00, 0.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00), x=c(-5.60476E-01, -2.30177E-01, 1.55871E+00, 7.05084E-02, 1.29288E-01, 1.71506E+00, 4.60916E-01, -1.26506E+00, -6.86853E-01, -4.45662E-01, 1.22408E+00, 3.59814E-01, 4.00771E-01, 1.10683E-01,     NA, 1.78691E+00, 4.97850E-01, -1.96662E+00, 7.01356E-01, -4.72791E-01,     NA,     NA, -1.02600E+00, -7.28891E-01, -6.25039E-01, -1.68669E+00,     NA, 1.53373E-01,     NA, 1.25381E+00,     NA, -2.95071E-01, 8.95126E-01, 8.78133E-01, 8.21581E-01, 6.88640E-01,     NA,     NA, -3.05963E-01, -3.80471E-01,     NA, -2.07917E-01,     NA, 2.16896E+00, 1.20796E+00, -1.12311E+00, -4.02885E-01, -4.66655E-01, 7.79965E-01,     NA))
复制代码
初始值如下:
  1. list(mu=0.00000E+00, tau.m=1.00000E-01, b0=0.00000E+00, b1=1.00000E+00, x=c(    NA,     NA,     NA,     NA,     NA,     NA,     NA,     NA,     NA,     NA,     NA,     NA,     NA,     NA, 0.00000E+00,     NA,     NA,     NA,     NA,     NA, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA,     NA,     NA,     NA,     NA, 0.00000E+00, 0.00000E+00,     NA,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA,     NA,     NA,     NA,     NA,     NA, 0.00000E+00))
复制代码

使用道具

藤椅
ctfy 发表于 2013-1-25 11:36:19 |只看作者 |坛友微信交流群
ctfy 发表于 2013-1-25 10:15
另外,同样的方式,对于1个协变量的情况,则一点儿问题都没有,例如数据如下:初始值如下:
以下情况也可以运行:

模型如下:
  1. model
  2. {
  3.     for (i in 1:n) {
  4.         y[i] ~ dbern(p[i])
  5.         logit(p[i]) <- b[1] + b[2] * x[i, 1] + b[3] * x[i, 2]
  6.         x[i, 1] ~ dnorm(mu, tau.m)
  7.         x[i, 2] ~ dnorm(mu, tau.m)
  8.     }
  9.     for (i in 1:3) {
  10.         b[i] ~ dnorm(0.00000E+00, 1.00000E-04)
  11.     }
  12.     mu ~ dnorm(0.00000E+00, 1.00000E-04)
  13.     tau.m ~ dgamma(1.00000E-04, 1.00000E-04)
  14. }
复制代码
数据如下:
  1. list(n=5.00000E+01, y=c(0.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00), x= structure(.Data= c(-5.60476E-01,     NA, -2.30177E-01, -2.85468E-02,     NA, -4.28705E-02, 7.05084E-02, 1.36860E+00, 1.29288E-01, -2.25771E-01, 1.71506E+00, 1.51647E+00,     NA, -1.54875E+00,     NA, 5.84614E-01,     NA, 1.23854E-01, -4.45662E-01,     NA,     NA, 3.79639E-01, 3.59814E-01, -5.02323E-01, 4.00771E-01,     NA, 1.10683E-01,     NA, -5.55841E-01, -1.07179E+00, 1.78691E+00, 3.03529E-01, 4.97850E-01,     NA,     NA,     NA, 7.01356E-01, 9.22267E-01, -4.72791E-01, 2.05008E+00, -1.06782E+00,     NA,     NA, -2.30917E+00,     NA, 1.00574E+00,     NA,     NA, -6.25039E-01, -6.88009E-01, -1.68669E+00, 1.02557E+00, 8.37787E-01,     NA,     NA, -1.22072E+00, -1.13814E+00, 1.81303E-01, 1.25381E+00,     NA, 4.26464E-01,     NA, -2.95071E-01, 3.85280E-01, 8.95126E-01, -3.70660E-01, 8.78133E-01, 6.44377E-01, 8.21581E-01, -2.20487E-01, 6.88640E-01, 3.31782E-01, 5.53918E-01,     NA, -6.19117E-02, 4.35181E-01, -3.05963E-01, -3.25932E-01, -3.80471E-01, 1.14881E+00,     NA, 9.93504E-01,     NA, 5.48397E-01,     NA, 2.38732E-01,     NA,     NA, 1.20796E+00, 1.36065E+00, -1.12311E+00, -6.00260E-01,     NA, 2.18733E+00,     NA, 1.53261E+00, 7.79965E-01,     NA,     NA, -1.02642E+00), .Dim=c(50, 2)))
复制代码
初值如下:
  1. list(mu=0.00000E+00, tau.m=1.00000E-01, b=c(0.00000E+00, 1.00000E+00, 1.00000E+00), x= structure(.Data= c(    NA, 0.00000E+00,     NA,     NA, 0.00000E+00,     NA,     NA,     NA,     NA,     NA,     NA,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA,     NA, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA,     NA,     NA,     NA,     NA, 0.00000E+00, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA,     NA,     NA, 0.00000E+00, 0.00000E+00,     NA, 0.00000E+00,     NA, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA,     NA,     NA, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA,     NA,     NA,     NA,     NA,     NA,     NA,     NA,     NA,     NA,     NA, 0.00000E+00,     NA,     NA,     NA,     NA,     NA,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA,     NA, 0.00000E+00, 0.00000E+00,     NA), .Dim=c(50, 2)))
复制代码
这个时候协变量x1和x2是独立的先验。

使用道具

板凳
ctfy 发表于 2013-1-25 12:00:08 |只看作者 |坛友微信交流群
ctfy 发表于 2013-1-25 11:36
以下情况也可以运行:

模型如下:数据如下:初值如下:这个时候协变量x1和x2是独立的先验。
对于连续的响应变量,也没有问题。

模型如下:
  1. model
  2. {
  3.     for (i in 1:n) {
  4.         y[i] ~ dlnorm(u[i], tau.u)
  5.         u[i] <- b[1] + b[2] * x[i, 1] + b[3] * x[i, 2]
  6.         x[i, 1:2] ~ dmnorm(m[], tau.m[, ])
  7.     }
  8.     for (i in 1:3) {
  9.         b[i] ~ dnorm(0.00000E+00, 1.00000E-04)
  10.     }
  11.     tau.u ~ dgamma(0.01, 0.01)
  12.     m[1] <- 0.00000E+00
  13.     m[2] <- 0.00000E+00
  14.     tau.m[1:2, 1:2] ~ dwish(t.m[, ], 2)
  15.     t.m[1, 1] <- 1.00000E-04
  16.     t.m[1, 2] <- 0.00000E+00
  17.     t.m[2, 1] <- 0.00000E+00
  18.     t.m[2, 2] <- 1.00000E-04
  19. }
复制代码
数据如下:
  1. list(n=5.00000E+01, y=c(8.65414E-01, 1.12487E+00, 5.24423E+00, 2.81524E+00, 1.17452E+00, 1.72255E+01, 8.21693E-01, 5.21954E-01, 8.12168E-01, 1.12307E+00, 5.43900E+00, 1.29219E+00, 1.55146E+00, 8.78418E-01, 3.83364E-01, 7.27281E+00, 2.61510E+00, 2.17445E-01, 4.72890E+00, 2.88193E+00, 3.49869E-01, 2.72516E-01, 1.04425E+00, 4.36516E-01, 4.26072E-01, 4.36151E-01, 2.59282E+00, 6.89375E-01, 5.29516E-01, 4.39433E+00, 2.26427E+00, 1.22845E+00, 2.31174E+00, 4.35802E+00, 1.91039E+00, 2.72710E+00, 4.45600E+00, 1.54100E+00, 8.07743E-01, 1.57474E+00, 1.09645E+00, 1.40779E+00, 4.02234E-01, 7.33391E+00, 8.09886E+00, 3.37779E-01, 3.51361E+00, 1.79529E+00, 2.53790E+00, 4.99779E-01), x= structure(.Data= c(    NA, 2.53319E-01, -2.30177E-01, -2.85468E-02, 1.55871E+00,     NA, 7.05084E-02, 1.36860E+00, 1.29288E-01, -2.25771E-01, 1.71506E+00, 1.51647E+00, 4.60916E-01,     NA, -1.26506E+00, 5.84614E-01, -6.86853E-01, 1.23854E-01,     NA,     NA, 1.22408E+00, 3.79639E-01, 3.59814E-01, -5.02323E-01,     NA,     NA,     NA, -1.01858E+00, -5.55841E-01, -1.07179E+00, 1.78691E+00, 3.03529E-01,     NA, 4.48210E-01,     NA, 5.30042E-02, 7.01356E-01, 9.22267E-01, -4.72791E-01,     NA,     NA, -4.91031E-01, -2.17975E-01, -2.30917E+00, -1.02600E+00,     NA,     NA,     NA, -6.25039E-01, -6.88009E-01, -1.68669E+00, 1.02557E+00,     NA,     NA, 1.53373E-01, -1.22072E+00, -1.13814E+00,     NA,     NA, -1.38891E-01,     NA,     NA, -2.95071E-01, 3.85280E-01, 8.95126E-01,     NA, 8.78133E-01, 6.44377E-01, 8.21581E-01, -2.20487E-01, 6.88640E-01, 3.31782E-01,     NA, 1.09684E+00, -6.19117E-02,     NA, -3.05963E-01, -3.25932E-01, -3.80471E-01,     NA, -6.94707E-01,     NA, -2.07917E-01, 5.48397E-01, -1.26540E+00, 2.38732E-01,     NA, -6.27906E-01, 1.20796E+00, 1.36065E+00, -1.12311E+00, -6.00260E-01, -4.02885E-01,     NA, -4.66655E-01,     NA,     NA, -2.35700E-01, -8.33691E-02,     NA), .Dim=c(50, 2)))
复制代码
初值如下:
  1. list(b=c(0.00000E+00, 1.00000E+00, 1.00000E+00), tau.m= structure(.Data= c(1.00000E-01, 0.00000E+00, 0.00000E+00, 1.00000E-01), .Dim=c(2, 2)), tau.u=1.00000E-01, x= structure(.Data= c(0.00000E+00,     NA,     NA,     NA,     NA, 0.00000E+00,     NA,     NA,     NA,     NA,     NA,     NA,     NA, 0.00000E+00,     NA,     NA,     NA,     NA, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA,     NA, 0.00000E+00, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA,     NA,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA,     NA,     NA,     NA, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA,     NA, 0.00000E+00, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA,     NA, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA, 0.00000E+00, 0.00000E+00,     NA, 0.00000E+00, 0.00000E+00,     NA,     NA,     NA, 0.00000E+00,     NA,     NA,     NA,     NA,     NA,     NA, 0.00000E+00,     NA,     NA, 0.00000E+00,     NA,     NA,     NA, 0.00000E+00,     NA, 0.00000E+00,     NA,     NA,     NA,     NA, 0.00000E+00,     NA,     NA,     NA,     NA,     NA,     NA, 0.00000E+00,     NA, 0.00000E+00, 0.00000E+00,     NA,     NA, 0.00000E+00), .Dim=c(50, 2)))
复制代码
不知是什么原因?

使用道具

报纸
qcasrl 发表于 2015-10-22 15:51:14 |只看作者 |坛友微信交流群
遇到同样问题,楼主解决了吗

使用道具

地板
ctfy 发表于 2015-11-20 10:22:55 |只看作者 |坛友微信交流群
很早问过软件的作者了,好像是bug,不知道后来的版本有没有改

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-15 19:13