2

R2OpenBUGS を使用したワイブル関数のパラメータの推定は、rweibull を使用してデータ セットを生成するために提供された量とは大きく異なるためですか? 私のフィット感の何が問題になっていますか?

data<-rweibull(200, 2, 10)

model<-function(){

v ~ dgamma(0.0001,0.0001)
lambda ~ dgamma(0.0001,0.0001)

for(i in 1:n){
   y[i] ~ dweib(v, lambda)
   }
}

y<-data
n<-length(y)
data<-list("y", "n")

inits<-function(){list(v=1, lambda=1)}
params<-c("v", "lambda")
model.file<-file.path(tempdir(), "model.txt")
write.model(model, model.file)
weibull<-bugs(data, inits, params, model.file, n.iter = 3000, n.burnin =  2000, n.chains = 3)
print(weibull, 4)

得られた結果は次のとおりです。

Current: 3 chains, each with 3000 iterations (first 2000 discarded)
Cumulative: n.sims = 3000 iterations saved
          mean     sd       2.5%       25%       50%       75%      97.5%    Rhat     n.eff
v           2.0484 0.1044    1.8450    1.9780    2.0500    2.1180    2.2470 1.0062   780
lambda      0.0097 0.0026    0.0056    0.0078    0.0093    0.0112    0.0159 1.0063   830
deviance 1145.6853 1.8403 1144.0000 1144.0000 1145.0000 1146.0000 1151.0000 1.0047   770

pD = 1.6 and DIC = 1147.0
4

1 に答える 1

2

shapeR は、デフォルトで (=2) and (=10)を使用してワイブルをパラメータ化しscaleます: バグはshapeandlambdaを使用しますlambda=(1/scale)^shape。したがってlambda、およそ (1/10)^2=0.01 になると予想されるはずです。これは、中央値の 0.0093 に近い値です。

CrossValidated に関するこの質問、R Journal のこの論文では、パラメーター化を比較しています。

于 2015-04-25T21:31:51.570 に答える