楼主: zjh960500
3312 4

急!为什么Winbugs 运行到一定次数就终止运算(hang)了? [推广有奖]

  • 0关注
  • 0粉丝

本科生

43%

还不是VIP/贵宾

-

威望
0
论坛币
295 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1740 点
帖子
35
精华
0
在线时间
145 小时
注册时间
2006-10-23
最后登录
2024-11-10

楼主
zjh960500 发表于 2010-10-15 08:05:59 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我用680个区域的发病数据做贝叶斯时空模型,采用improper CAR空间相关先验分布,模型中不含协变量,但每年的空间效应不同(时空交互),这个程序运行至4000次就停止运算了,过了很久会出现一个对话框,提示“undefined real results”;如果删掉
         “yc.pred[i,t] ~dpois(muc[i,t])
          resc[i,t] <-yc.pred[i,t] -yc[i,t]
        PPLc[i,t] <- pow(resc[i,t],2)
         PPLc2[i,t]<- abs(resc[i,t])
  yc.pred[i,t] ~dpois(muc[i,t])
     
  mapec <- mean(PPLc2[,])
  mspec <- mean(PPLc[,])”
这部分(是用于计算预测值yc.pred、残差resc、平均绝对误差mapec和均方误差mspec的),则模型可以运行至7000次才停止。
另一个模型只有70个区域,程序基本相同,却不会出现这个提示。请教一下是什么原因?(内存不够?初始值不对?还是其它原因?我用的电脑是1G的内存)
    模型如下:
model
model
{
for( i in 1:Nc)
      {
         for (t in 1 : T)
           {
           yc[i,t]~dpois(muc[i,t])
            log(muc[i,t])<-log(Ec[i, t])+log(RRc[i,t])
            # Relative Risk
            RRc[i,t]<-exp(alphac+uc[i,t]+vc[i,t])
            SIRc[i,t]<-(yc[i,t]+epsc2)/(Ec[i, t]+epsc2)
           PPc[i,t]<-step(RRc[i,t]-1+epsc)
           yc.pred[i,t] ~dpois(muc[i,t])
          resc[i,t] <-yc.pred[i,t] -yc[i,t]
        PPLc[i,t] <- pow(resc[i,t],2)
         PPLc2[i,t]<- abs(resc[i,t])
            }  
       }
mapec <- mean(PPLc2[,])
mspec <- mean(PPLc[,])
# CAR prior distribution for spatial correlated heterogeneity
uc1[1:Nc] ~ car.normal(adjc[],weightc[],numc[],tau.uc[1])
uc2[1:Nc]~ car.normal(adjc[],weightc[],numc[],tau.uc[2])
uc3[1:Nc] ~ car.normal(adjc[],weightc[],numc[],tau.uc[3])
uc4[1:Nc] ~ car.normal(adjc[],weightc[],numc[],tau.uc[4])
for(i in 1:Nc)
{
uc[i,1]<-uc1[i]
uc[i,2]<-uc2[i]
uc[i,3]<-uc3[i]
uc[i,4]<-uc4[i]
}
        for(kc in 1:sumNumNeighc)
          {
              weightc[kc]<-1
             }


# Prior distributions for the Uncorrelated Heterogeneity

for(i in 1:Nc)
{
vc1[i]~dnorm(0,tau.vc[1])
vc2[i]~dnorm(0,tau.vc[2])
vc3[i]~dnorm(0,tau.vc[3])
vc4[i]~dnorm(0,tau.vc[4])
}
for (i in 1:Nc)
{
vc[i,1]<-vc1[i]
vc[i,2]<-vc2[i]
vc[i,3]<-vc3[i]
vc[i,4]<-vc4[i]
}

         for(t in 1 : T)
             {
      
             tau.uc[t]<-1/pow(sigma.uc[t],2)
         sigma.uc[t]~ dunif(0,10)  
          tau.vc[t]<-1/pow(sigma.vc[t],2)
          sigma.vc[t]~ dunif(0,10)
     var.uc[t]<-pow( sigma.uc[t],2)
         var.vc[t]<-pow(sigma.vc[t],2)
         sumvarc[t]<- var.uc[t]+var.vc[t]
    PVCc[t]<-var.uc[t]/sumvarc[t]                  
            }
         
#other prior
alphac ~ dflat()
epsc<-1.0E-6
epsc2~dnorm(0,1000)
}      

含data和初始值的整个模型见附件哈!
麻烦各位了,谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:winbugs WINBUG Hang BUGS bug 运行 运算 winbugs Hang

区县时空交互无协变量预测值.rar
下载链接: https://bbs.pinggu.org/a-772243.html

16.64 KB

本附件包括:

  • 区县时空交互无协变量预测值.odc

回帖推荐

zjh960500 发表于4楼  查看完整内容

由于现有计算机内存的限制,我决定只模拟必需要的参数,应该就可以解决这个问题了。

epoh 发表于2楼  查看完整内容

程序OK的 我用了一台内存1G的电脑 完整的程序,很平顺跑了 iterations 10,000

本帖被以下文库推荐

沙发
epoh 发表于 2010-10-15 16:45:53
程序OK的
我用了一台内存1G的电脑
完整的程序,很平顺跑了
iterations 10,000

藤椅
zjh960500 发表于 2010-10-15 23:29:08
谢谢epoh!
我今天又试了一下,在不模拟参数或只模拟少数参数的情况下,确实能运行10000次甚至20000次以上,但如果模拟的参数多了,就会在一定次数停止运算,模拟的参数越多,则运行的次数越少。
如果用更大内存的电脑运行一下可能就知道是不是内存的原因了。

板凳
zjh960500 发表于 2010-10-15 23:32:15
由于现有计算机内存的限制,我决定只模拟必需要的参数,应该就可以解决这个问题了。

报纸
tsdy 发表于 2011-3-24 23:58:20
我现在也遇到与你同样的问题。请问,最后你的问题是如何解决的?

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

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