楼主: jiemin
5364 18

[问答] winbugs程序问题 [推广有奖]

  • 2关注
  • 90粉丝

学科带头人

83%

还不是VIP/贵宾

-

威望
0
论坛币
135 个
通用积分
164.8976
学术水平
21 点
热心指数
23 点
信用等级
15 点
经验
2163 点
帖子
1390
精华
0
在线时间
3465 小时
注册时间
2010-1-25
最后登录
2024-5-8

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
#logistic regression for shorks
#breeding success as a function of both rainfall and temperature in May
model
{
  for(i in 1:N)
    {
     nbsuccess[i]~dbin(p[i],nbpairs[i])
     logit(p[i])<-intercept+slope.temperature*(temperature[i]-mean(temperature[]))/(sd(temperature[]))
       +slope.rainfall*(rainfall[i]-mean(rainfall[]))/(sd(rainfall[]))
    }
   #priors for regression parameters
   intercept~dnorm(0.0,0.001)
   slope.temperature~dnorm(0.0,0.001)
   slope.rainfall~dnorm(0.0,0.001)
}
#data
list(nbsuccess=c(151,105,73,107,113,87,77,108,118,122,112,120,122,89,69,71,53
41,53,31,35,14,18),nbpairs=c(173,164,103,113,122,112,98,121,132,136,133,137,145,117,
90,80,67,54,58,39,42,23,23),temperature=c(15.1,13.3,15.3,13.3,14.6,15.6,13.1,13.1,15,11.7,15.3,14.4,14.4,12.7,11.7,11.9,15.9,13.4,14,13.9,12.9,15.1,13),
rainfall=c(67,52,88,61,32,36,72,43,92,32,86,28,57,55,66,26,28,96,48,90,86,78,87),
N=23)
#initial values
list(intercept=0,slope.temperature=0,slope.rainfall=0,tau=1)
   
这个程序不知道为什么在加载数据时老是提示:expected right parenthesis?是个逻辑回归的例子,按理说是对的啊,,我是PPT上看到的,人家是可以运行的。望高手帮助下,谢谢。
二维码

扫码加我 拉你入群

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

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

关键词:winbugs WINBUG BUGS bug Win function success 程序

本帖被以下文库推荐

凡事预则立~
19
liuqi99 发表于 2013-8-28 22:11:31 |只看作者 |坛友微信交流群
能否把这个PPT上传???

使用道具

18
liuqi99 发表于 2013-8-28 22:11:06 |只看作者 |坛友微信交流群
#logistic regression for shorks
#breeding success as a function of both rainfall and temperature in May
model
{
  for(i in 1:N)
    {
     nbsuccess[i]~dbin(p[i],nbpairs[i])
     logit(p[i])<-intercept+slope.temperature*(temperature[i]-mean(temperature[]))/(sd(temperature[]))
       +slope.rainfall*(rainfall[i]-mean(rainfall[]))/(sd(rainfall[]))
    }
   #priors for regression parameters
   intercept~dnorm(0.0,0.001)
   slope.temperature~dnorm(0.0,0.001)
   slope.rainfall~dnorm(0.0,0.001)
}
#data
list(nbsuccess=c(151,105,73,107,113,87,77,108,118,122,112,120,122,89,69,71,53,
41,53,31,35,14,18),nbpairs=c(173,164,103,113,122,112,98,121,132,136,133,137,145,117,
90,80,67,54,58,39,42,23,23),temperature=c(15.1,13.3,15.3,13.3,14.6,15.6,13.1,13.1,15,11.7,15.3,14.4,14.4,12.7,11.7,11.9,15.9,13.4,14,13.9,12.9,15.1,13),
rainfall=c(67,52,88,61,32,36,72,43,92,32,86,28,57,55,66,26,28,96,48,90,86,78,87),
N=23)
#initial values
list(intercept=0,slope.temperature=0,slope.rainfall=0)

使用道具

17
kylinbaby 发表于 2013-5-15 16:47:37 |只看作者 |坛友微信交流群
有收获
我就是我~

使用道具

16
jiemin 在职认证  发表于 2011-10-22 11:55:45 |只看作者 |坛友微信交流群
ychaust 发表于 2011-10-18 21:39
金币啊
你回答啊。。。
凡事预则立~

使用道具

15
ychaust 发表于 2011-10-18 21:39:20 |只看作者 |坛友微信交流群
金币啊

使用道具

14
jiemin 在职认证  发表于 2011-8-27 19:33:03 |只看作者 |坛友微信交流群
epoh 发表于 2011-8-9 20:38
Stochastic volatility model:  1.Observation Equations  2.State Equations数学式子不好表达详细请参考sv ...
#SV-M AR(1) MODEL:
#y[t]=a+b*y[t-1]+d*exp(theta[t])+exp(theta[t]/2)*u[t],u[t]iid~N(0,1)
#theta[t]=mu+phi*(theta[t-1]-mu)+v[t], v[t]iid~N(0,1/itau2)

model
{
  beta1<-a/(1-b)
  beta2<-(1-b*b)/exp(theta0)
  y0~dnorm(beta1,beta2)
  ymean[1]<-a+b*y0+d*exp(theta[1])
  yisigma2[1]<-1/exp(theta[1])
  y[1]~dnorm(ymean[1],yisigma2[1])
  for(i in 2:n)
  {
   ymean<-a+b*y[i-1]+d*exp(theta)
   yisigma2<-1/exp(theta)
   y~dnorm(ymean,yisigma2)
  }
  
  theta0~dnorm(mu,isigma)
  thetamean[1]<-mu+phi*(theta0-mu)
  theta[1]~dnorm(thetamean[1],itau2)
  for(j in 2:n)
  {
    thetamean[j]<-mu+phi*(theta[j-1]-mu)
    theta[j]~dnorm(thetamean[j],itau2)
  }

  a~dnorm(1,1.0E-6)
  psi~dnorm(0,1.0E-6)  #the question is why here add psi variable
  b<-(exp(psi)-1)/(1+exp(psi))
  phi1~dbeta(20,1.5)
  phi<-2*phi1-1
  tau<-sqrt(1/itau2)
  mu~dnorm(0,0.01)
  itau2~dgamma(2.5,0.025)
  d~dnorm(0,1)
  isigma<-(1-phi*phi)*itau2
  
}

#06year rate
list(y=c(…………),n)

list(a=0,mu=0,phi1=0.95,itau2=50,d=0,psi=0)

以上可以通过,但我不知道代码是否对照了上面的模型,我的疑问有2:
1)为什么计算b时要加入psi变量?而不是直接b<-dnorm(1,1.0E-6)。如果是要加入的,那为什么计算公式是b<-(exp(psi)-1)/(1+exp(psi))
2)对于一般SV模型,当然这个也一样,theta0按理说应该是服从dnorm(mu,isigma),其中isigma<-(1-phi*phi)*itau2
  但是很多程序,包括你在一些帖子中提供的程序,都是theta0~dnorm(mu,itau2)
  我的发现是:
  根据theta[t]=mu+phi*(theta[t-1]-mu)+v[t]
  则有var(theta0)=phi*phi*var(theta0)+1/itau2
  推出var(theta0)=1/((1-phi*phi)*itau2),在程序中,倒一下。这是我从上面y0的方差计算中得到的计算方式,不知对否。
望老师指点下。谢谢。
本文来自: 人大经济论坛 Matlab及其他计量软件专版 版,详细出处参考: https://bbs.pinggu.org/forum.php? ... amp;from^^uid=1569108
凡事预则立~

使用道具

13
jiemin 在职认证  发表于 2011-8-12 17:06:26 |只看作者 |坛友微信交流群
liuxin9023 发表于 2011-8-12 17:01
openbugs是winbugs的开源版本 二者几乎一致 不会遇到关于version的we你
你好,能帮我解决11楼的问题吗?呵呵
凡事预则立~

使用道具

12
liuxin9023 发表于 2011-8-12 17:01:12 |只看作者 |坛友微信交流群
openbugs是winbugs的开源版本 二者几乎一致 不会遇到关于version的we你

使用道具

11
jiemin 在职认证  发表于 2011-8-11 17:55:26 |只看作者 |坛友微信交流群
epoh 发表于 2011-8-9 20:38
Stochastic volatility model:  1.Observation Equations  2.State Equations数学式子不好表达详细请参考sv ...
#SV-M AR(1) MODEL:
#y[t]=a+b*y[t-1]+d*exp(theta[t])+exp(theta[t]/2)*u[t],u[t]iid~N(0,1)
#theta[t]=mu+phi*(theta[t-1]-mu)+v[t], v[t]iid~N(0,1/itau2)

model
{
  beta1<-a/(1-b)
  beta2<-(1-b*b)/exp(theta0)
  y0~dnorm(beta1,beta2)
  ymean[1]<-a+b*y0+d*exp(theta[1])
  yisigma2[1]<-1/exp(theta[1])
  y[1]~dnorm(ymean[1],yisigma2[1])
  for(i in 2:n)
  {
   ymean<-a+b*y[i-1]+d*exp(theta)
   yisigma2<-1/exp(theta)
   y~dnorm(ymean,yisigma2)
  }
  
  theta0~dnorm(mu,isigma)
  thetamean[1]<-mu+phi*(theta0-mu)
  theta[1]~dnorm(thetamean[1],itau2)
  for(j in 2:n)
  {
    thetamean[j]<-mu+phi*(theta[j-1]-mu)
    theta[j]~dnorm(thetamean[j],itau2)
  }

  a~dnorm(1,1.0E-6)
  psi~dnorm(0,1.0E-6)  #the question is why here add psi variable
  b<-(exp(psi)-1)/(1+exp(psi))
  phi1~dbeta(20,1.5)
  phi<-2*phi1-1
  tau<-sqrt(1/itau2)
  mu~dnorm(0,0.01)
  itau2~dgamma(2.5,0.025)
  d~dnorm(0,1)
  isigma<-(1-phi*phi)*itau2
  
}

#06year rate
list(y=c(…………),n)

list(a=0,mu=0,phi1=0.95,itau2=50,d=0,psi=0)

以上可以通过,但我不知道代码是否对照了上面的模型,我的疑问有2:
1)为什么计算b时要加入psi变量?而不是直接b<-dnorm(1,1.0E-6)。如果是要加入的,那为什么计算公式是b<-(exp(psi)-1)/(1+exp(psi))
2)对于一般SV模型,当然这个也一样,theta0按理说应该是服从dnorm(mu,isigma),其中isigma<-(1-phi*phi)*itau2
  但是很多程序,包括你在一些帖子中提供的程序,都是theta0~dnorm(mu,itau2)
  我的发现是:
  根据theta[t]=mu+phi*(theta[t-1]-mu)+v[t]
  则有var(theta0)=phi*phi*var(theta0)+1/itau2
  推出var(theta0)=1/((1-phi*phi)*itau2),在程序中,倒一下。这是我从上面y0的方差计算中得到的计算方式,不知对否。
望老师指点下。谢谢。
凡事预则立~

使用道具

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

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

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

GMT+8, 2024-5-8 19:54