0

R から winbug を実行していますが、R 出力でいくつかの変数を使用する必要があります。Rと入力schools.sim$mean$theta[1]すると、10.2 が表示されます。ただし、入力schools.sim$2.5%$theta[1]するとエラーメッセージが表示されます。私が間違っていること、またはベイジアン間隔を取得する他の方法はありますか?

ここに例があります

Here is the R code
library(R2WinBUGS)
data(schools)
J <- nrow(schools)
y <- schools$estimate
sigma.y <- schools$sd
data <- list ("J", "y", "sigma.y")


inits <- function(){
list(theta = rnorm(J, 0, 100), mu.theta = rnorm(1, 0, 100),
sigma.theta = runif(1, 0, 100))
}

schools.sim <- bugs(data, inits, model.file = "D:/model.txt",
parameters = c("theta", "mu.theta", "sigma.theta"),
n.chains = 3, n.iter = 1000,
bugs.directory = "D:/PROGRAMLAR/WinBUGS14/")

schools.sim

これは、 のように保存する必要がある winbugs コードmodel.txtですD

model {
for (j in 1:J)
{
 y[j] ~ dnorm (theta[j], tau.y[j])
 theta[j] ~ dnorm (mu.theta, tau.theta)
 tau.y[j] <- pow(sigma.y[j], -2)
 }
mu.theta ~ dnorm (0.0, 1.0E-6)
tau.theta <- pow(sigma.theta, -2)
sigma.theta ~ dunif (0, 1000)
}

winbugs フォルダが保存されている bugs ディレクトリを変更することを忘れないでください。

4

1 に答える 1

1

を使用して同じ動作を観察できますquantile

> quantile(runif(100))$0%
Error: unexpected numeric constant in "quantile(runif(100))$0"

使用するだけです:

> quantile(runif(100))['0%']
        0% 
0.03293488

問題は、それ%が R の予約文字であることです。

于 2013-01-10T12:34:37.640 に答える