orange
一个winbugs程序放入winbugs中检查,老是通不过,每次检查时光标自动指向如下语句:
pp [ i , j ] <- ( ( sqrt ( tau ) / ( x[ i , j ] + delta ) ) * exp ( -0.5 * pow ( log ( abs ( x [ i , j ] + delta ) ) - mu [ i , j ] , 2 ) * tau ) ) / c
但是我又不知道这个语句那错了。
具体模型程序如下:
model
{
# Model for the observations ( upper left triangle )
c <- 10000 # this constant must be large to guarantee that p[ i ] ' s< 1
for ( i in 1 : r ) {
for ( j in 1 : ( r+1-i ) ) {
ones [ i , j ] <- 1
pp [ i , j ] <- ( ( sqrt ( tau ) / ( x[ i , j ] + delta ) ) * exp ( -0.5 * pow ( log ( abs ( x [ i , j ] + delta ) ) - mu [ i , j ] , 2 ) * tau ) ) / c
p [ i , j ] <- max ( pp [ i , j ] , 0 )
cct [ i , j ] <- abs ( p [ i , j ] / pp [ i , j ] )
ones [ i , j ] ~ dbern ( p [ i , j ] )
mu [ i , j ] <- miu + alpha [ i ] + beta [ j ]
}
# model for future claims ( lower right triangle )
for ( j in ( r + 2 - i ) : r ) {
x [ i , j ] ~ dlnorm ( mu [ i , j ] , tau )
mu [ i , j ] <- miu + alpha [ i ] + beta [ j ]
}
}
alpha [ 1 ] <- 0
beta [ 1 ] <- 0
for ( i in 2 : r ) {
alpha [ i ] ~ dnorm ( 0.0 , alpha.tau )
beta [ i ] ~ dnorm ( 0.0 , beta.tau )
}
alpha.tau ~ dgamma ( 0.001 , 0.001 )
beta.tau ~ dgamma ( 0.001 , 0.001 )
miu ~ dnorm ( 0.0 , miu.tau )
tau ~ dgamma (tau.a , tau.b )
sigma2 <- 1/tau
miu.tau ~ dgamma ( 0.1 , 0.1 )
tau.a ~ dgamma ( 2.5 , 0.1 )
tau.b ~ dgamma (2 , 0.1 )
delta ~ dnorm ( delta.a , delta.c )
delta.a ~ dnorm ( 200.0 , .0001 )
delta.c ~ dgamma ( 0.0001 , .1 )
# Estimation of the reserves.
for ( i in 2 : r ) {
outstand.row [ i ] <- sum ( x [ i , ( r + 2 - i ) : r ] ) - ( i - 1 )* delta
}
outstand.row [ 10 ] <- sum ( outstand.row [ 2 : 9] )
}
希望那位高手能帮个忙看一下,谢谢!