全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 winbugs及其他软件专版
4602 12
2014-03-06
悬赏 10 个论坛币 未解决
model
{
for (i in 1:n) {
Ymean<-rho/tau*exp(0.5*theta)*(theta[i+1]-mu-phi*(theta-mu));
Yisigma2 <- 1/(exp(theta)*(1-rho*rho));
y~ dnorm(Ymean,Yisigma2);
}
isigma2<-(1-phi*phi)*itau2;
theta0 ~ dnorm(mu,isigma2);
thetamean[1] <- mu + phi*(theta0-mu);
theta[1] ~ dnorm(thetamean[1],itau2);
for (i in 2:(n+1)) {
thetamean <- mu + phi*(theta[i-1]-mu);
theta~dnorm(thetamean,itau2);}
phi1 ~ dbeta(20,1.5);
phi <- 2*phi1-1;
mu ~ dnorm(0,0.04);
itau2 ~ dgamma(2.5,0.025);
tau <- sqrt(1/itau2) ;
rho ~ dunif(-1,1)
}# Data for WinBUGS generated by BAUW,
#a free program by Zhang, Z. and Wang, L. (2006)
list(N=47,T=4,y = structure(Data = c(
-0.0194,
-0.0068,
0.0033,
-0.0012,
-0.0054,                                               
-0.0088,
-0.0055,
-0.0023,
-0.0056,
-0.0002,
-0.0092,
-0.0004,
0.0023,
0.0578,
0.0398,
0.0032,
0.0285,
0.0138,
0.0034,
-0.0002,
0.0257,
0.0711,
0.1241,
0.0913,
0.1021,
0.1873,
0.8003,
-0.0719,
-0.3063,
-0.0374,
0.0727,
0.1644,
0.0869,
0.0241,
-0.0298,
-0.3051,
-0.4306,
-0.2197,
-0.1386,
-0.0791,
-0.1567,
-0.0708,
-0.0455,
-0.0577,
-0.0144,
-0.0005,
-0.0733), .Dim = c(47,4)))
二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-6 15:42:58
沙发求解答~~~~~
二维码

扫码加我 拉你入群

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

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

2014-3-15 10:46:53
list(N=47,T=4,y = structure(Data = c(
你这句代码中data前面的.呢?应该是.Data啊
二维码

扫码加我 拉你入群

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

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

2014-3-15 15:47:36
首先申明,我不管程序的目的(因为没深究语句的意义),仅从语法看,有几点供你参考:
1. 你粘帖在此处的程序中的[ i ]很多都没了,例如第4行,Ymean[ i ] 的[ i]没了,我看是因为粘帖到论坛的问题,论坛会把[ i ] 以为是要字体变成斜体。幸好你又贴到https://bbs.pinggu.org/thread-2636795-1-1.html的7楼,我看了那个程序,看到了[ i ]。
2. 你的DATA中y用structure要输入个两维数组(47×4),但是你程序中y是个一维变量,不统一。
3. 你DATA中的N和T,在程序中没找到(WINBUGS应该区分变量名的大小写的)。
你先看看这些问题。
二维码

扫码加我 拉你入群

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

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

2014-3-16 19:13:02
TimeT 发表于 2014-3-15 15:47
首先申明,我不管程序的目的(因为没深究语句的意义),仅从语法看,有几点供你参考:
1. 你粘帖在此处的程 ...
非常感谢您的解答,我最后对程序进行了一些改动:(1)前面的程序是软件自动生成的,没有问题。那个i没显示是您说的黏贴问题。(2)我的是时间序列,就是一维数据,因此将T=4和STRUCTURE去掉了,改为LIST{N=1860,数据}具体见下,我的数据量是1860.
model
{                                                               
for (i in 1:n) {
Ymean<-rho/tau*exp(0.5*theta)*(theta[i+1]-mu-phi*(theta-mu));
Yisigma2 <- 1/(exp(theta)*(1-rho*rho));
y~ dnorm(Ymean,Yisigma2);   
    }     
isigma2<-(1-phi*phi)*itau2;                                                        
theta0 ~ dnorm(mu,isigma2);  
thetamean[1] <- mu + phi*(theta0-mu);   
theta[1] ~ dnorm(thetamean[1],itau2);                                 
for (i in 2:(n+1)) {                                                                    
thetamean <- mu + phi*(theta[i-1]-mu);                                   
theta~dnorm(thetamean,itau2);}                                 
phi1 ~ dbeta(20,1.5);     
phi <- 2*phi1-1;     
mu ~ dnorm(0,0.04);                                                              
itau2 ~ dgamma(2.5,0.025);                                                      
tau <- sqrt(1/itau2) ;
rho ~ dunif(-1,1)                                                        
}# Data for WinBUGS generated by BAUW,
#a free program by Zhang, Z. and Wang, L. (2006)
list(n=1859,y = c(
1860个数据))

这个程序可以运行了,但是我的数据明明是1860,但如果让n=1860是运行不起来的,改为1859就可以运行起来。我想是这个原因是因为程序(i in 2:(n+1)) {   这部分,如果让n=1860,那么i就可能取到1861,显然超出数据总体值。但是我不知道我这样改是不是正确的。求解答。。。。
二维码

扫码加我 拉你入群

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

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

2014-3-16 19:17:42
zhmz5625280 发表于 2014-3-15 10:46
list(N=47,T=4,y = structure(Data = c(
你这句代码中data前面的.呢?应该是.Data啊
噢噢 ,当时没注意这点,我现在把这部分去掉了,没要data这部分了,具体请见下面详细回复下楼。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…

分享

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