全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 winbugs及其他软件专版
3301 5
2014-05-20
求教大神!!如题,做garch模型参数估计时,compile的时候,软件提示multiple definitions of node x[1],不懂是怎么回事?
程序简短,恳请大神不吝赐教,我没有论坛币TT。。。。。。不胜感激!!!
model:
{
       for(i in 1:N) {
       x<-0.0003008+u
       u~dnorm(0,tau)
    }
       for(i in 2:N) {
       tau<-alpha[0]+alpha[1]*u[i-1]+beta[1]*tau[i-1]
    }
    alpha[0]~dnorm(0,1.0E-6)
    alpha[1]~dnorm(0,1.0E-6)
    beta[1]~dnorm(0,1.0E-6)
}
data
list(x=c(-0.008757,0.001773,-0.013488,0.015914,-0.006405,-0.001529,-0.002354,0.020415,0.009585,0.001300),N=10)
inits
list(alpha[0]=1,alpha[1]=1,beta[1]=1)






二维码

扫码加我 拉你入群

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

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

全部回复
2014-5-20 18:50:03
呃,你这个错的有点多啊,修改起来太捉急了,建议你去网上搜索一个吧:
首先,你均值方程里的截距项不需要估计吗?直接给出吗?
其次,你的x是数组数据,这里不应该再给x进行赋值,而是直接确定x的分布,也就是你这里的残差项u的分布,至于残差则可以通过设置均值,再相减获得。
其次,你这里的x,u,tau应该都是数组,你不能不设数组的下标
再次,方差方程中的alpha[0],alpha[1],beta[1]服从的分布不应该是正态分布了,因为方差方程中的系数要满足非负性约束,具体应该服从什么分布我也不知道,估计garch有很多软件。
最后,alpha[0]是不能出现的,因为数组的下标最少要是1。
二维码

扫码加我 拉你入群

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

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

2014-5-20 18:53:06
呃,如果你还是要自己编的话,你可以参照一下随机波动率(SV)模型的估计,它们主要是方差方程有些差别,你可以试着对照自己改,我把程序附在这里
model{
for(i in 1:n)
{p[i]<-1/exp(theta[i])
y[i]~dnorm(0,p[i])
}
mu~dnorm(0,0.01)
phi1~dbeta(20,1.5)
itau2~dgamma(2.5,0.025)
phi<-2*phi1-1
tau<-sqrt(1/itau2)
theta0~dnorm(mu,itau2)
thmean[1]<-mu+phi*(theta0-mu)
theta[1]~dnorm(thmean[1],itau2)
for(j in 2:n)
{thmean[j]<-mu+phi*(theta[j-1]-mu)
theta[j]~dnorm(thmean[j],itau2)
}
}
二维码

扫码加我 拉你入群

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

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

2014-5-21 13:20:53
niumengyi 发表于 2014-5-20 18:50
呃,你这个错的有点多啊,修改起来太捉急了,建议你去网上搜索一个吧:
首先,你均值方程里的截距项不需要 ...
非常感谢你不吝赐教,指出错误之处!!因为我刚刚接触这个,好多都不懂。。。。本来x,u,tau都是数组,但是我把程序贴过来的时候,不知道问什么没有显示。我的garch模型是这样的: garch(1,1)模型
其中alpha0,aplha1,beta1的先验分布我也不知道应该是什么样的,可以设成是指数分布吧。能不能麻烦你,帮我改写一下这个模型的程序,感激不尽!!
二维码

扫码加我 拉你入群

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

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

2014-5-21 14:34:40
zhanpeng1020 发表于 2014-5-21 13:20
非常感谢你不吝赐教,指出错误之处!!因为我刚刚接触这个,好多都不懂。。。。本来x,u,tau都是数组,但 ...
。。。论坛里不是有现成的?搜索一下就有了啊。。。

model
{
mu~dunif(0,1)
alpha0~dunif(0,1)
alpha1~dunif(0,1)
beta1~dunif(0,1)
sigma[1]<-alpha0
for(t in 2:n){
sigma[t]<-alpha0+alpha1*y[t-1]*y[t-1]+beta1*sigma[t-1]
}
for(t in 1:n){
tau[t]<-1/sigma[t]
y[t]~dnorm(ymean[t],tau[t])
ymean[t]<-mu
}
}
变量服从什么分布看自己需求调吧。。。
二维码

扫码加我 拉你入群

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

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

2014-5-21 17:05:46
niumengyi 发表于 2014-5-21 14:34
。。。论坛里不是有现成的?搜索一下就有了啊。。。

model
大神,你好厉害!!多谢你的帮忙,这个问题解决了!!!只是我输入数据和初值之后,update的时候出了点问题,弹出了一个trap的框,是undefined real result。。。。不知道怎么回事。。。。。我给你发了私信,恳请再次指导我一下!感激不尽!!!
二维码

扫码加我 拉你入群

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

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

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

分享

扫码加好友,拉您进群