全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 winbugs及其他软件专版
4072 4
2015-01-14
请教各位高手,我在运行一下代码时老是出现“expected right parenthesis”, 但又不知道怎么改,请高手帮帮忙,谢谢,感激不尽!
代码中的数据部分太多,已省略。

Model{
   for (i in 1:N){    # N number of datapoints in dataset
   # time is expressed in months and transformed according powers of fractional polynomial P1 and P2
   time_transf1[i]<-(equals(P1,0)*log(time[i]) + (1-equals (P1,0))*pow(time[i],P1))
   time_transf2[i]<-((1-equals(P2,P1))*(equals(P2,0)*log (time[i]) + (1-equals(P2,0))*pow(time[i],P2)) + equals(P2, P1)*(equals(P2,0)*log(time[i])*log(time[i]) + (1-equals (P2,0))*pow(time[i],P2) *log(time[i])))

   # likelihood
   # hazard over interval [t,t+dt] expressed as deaths per person-month
   # r is deaths in interval, n is number at risk, h is hazard
   r[i]~ dbin(p[i],n[i])
   p[i]<-1-exp(-h[i]*dt) # cumulative hazard over interval [t,t+dt] expressed as deaths per person-month

   # random effects model
   # loop over datapoints
   # s refers to study, k is intervention k, b is comparator
   log(h[i])<-Beta[i,1]+ Beta[i,2]*time_transf1[i]+ Beta[i,3]* time_transf2[i]
   Beta[i,1]<-mu[s[i],1]+delta[s[i],1]*(1-equals(k[i],b[i]))
   Beta[i,2]<-mu[s[i],2]+delta[s[i],2]*(1-equals(k[i],b[i]))
   Beta[i,3]<-mu[s[i],3]+delta[s[i],3]*(1-equals(k[i],b[i]))
   }

   # loop over studies
   # NS is number of studies
   # ks is intervention k, bs is comparator
   for(m in 1:NS){
   delta[m,1:3]~dmnorm(md[k,1:3],omega[1:3,1:3])
   md[m,1]<-d[ks[m],1]-d[bs[m],1]
   md[m,2]<-d[ks[m],2]-d[bs[m],2]
   md[m,3]<-d[ks[m],3]-d[bs[m],3]
   }

   # priors
   # NT is number of treatments
   d[1,1]<-0
   d[1,2]<-0
   d[1,3]<-0
   for(j in 2:NT){
   d[j,1:3] ~ dmnorm(mean[1:3],prec2[,])
   }
   for(k in 1:NS){
   mu[k,1:3] ~ dmnorm(mean[1:3],prec2[,])
   }
   omega[1:3, 1:3] ~ dwish(R[1:3,1:3],3)

   # output SD and correlation based on estimated covariance matrix
   sigma.theta[1:3,1:3] <- inverse(omega[1:3,1:3])
   rho[1,2] <-sigma.theta[1,2]/sqrt(sigma.theta[1,1]*sigma.theta[2,2])
   rho[1,3] <-sigma.theta[1,3]/sqrt(sigma.theta[1,1]*sigma.theta[3,3])
   rho[3] <-sigma.theta[3]/sqrt(sigma.theta[2,2]*sigma.theta[3,3])

   sd[1]<-sqrt(sigma.theta[1,1])
   sd[2]<-sqrt(sigma.theta[2,2])
   sd[3]<-sqrt(sigma.theta[3,3])

   # output hazard ratio for month 1 to 60
   # NT is number of treatments, c is reference treatment, k is treatment of interest, l is month
   for (c in 1:(NT-1)) {
   for (j in (c+1):NT) {
   for (l in 1:60) {

   t1[l]<-(equals(P1,0)*log(l) + (1-equals(P1,0))*pow(l,P1))
   t2[l]<-((1-equals(P2,P1))*(equals(P2,0)*log(l) + (1-equals(P2,0))*pow(l,P2)) + equals(P2,P1)*(equals(P2,0)*log(l)*log(l) + (1-equals(P2,0))*pow(l,P2) *log(l)))

    log(hazard_ratio[c,j,l])<-d[j,1]-d[c,1]+(d[j,2]-d[c,2])*t1[l]+(d[j,3]-d[c,3])*t2[l]
    }}}
    }


WInbugs data structure
s[] study identifier
    r[] incident cases in interval
    n[] at risk at beginning of interval
    k[] treatment
    b[] comparator
    time[] interval number/time point

s[] r[] n[] k[] b[] time[]

二维码

扫码加我 拉你入群

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

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

全部回复
2015-1-22 11:56:52
没人回复啊@_@
二维码

扫码加我 拉你入群

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

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

2015-8-20 22:53:16
我按照茆诗松的教材写的,也出现了这个.意思是左括号...了.不甚明白
二维码

扫码加我 拉你入群

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

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

2015-10-21 09:57:30
楼主解决问题了吗???求分享经验
二维码

扫码加我 拉你入群

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

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

2015-10-22 15:46:47
   time_transf2[i]<-((1-equals(P2,P1))*(equals(P2,0)*log (time[i]) + (1-equals(P2,0))*pow(time[i],P2)) + equals(P2, P1)*中((1-equals(P2,P1))多了一个(,应改为(1-equals(P2,P1))
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群