Sudah mencoba menambahkan komentar di atas, tetapi perwakilan saya terlalu rendah.
Sebaiknya
y[i] ~ dnorm(mu[i], tau / weight[i])
tidak mungkin
y[i] ~ dnorm(mu[i], tau * weight[i])
dalam JAGS? Saya menjalankan beberapa tes yang membandingkan hasil dari metode ini di JAGS dengan hasil dari regresi tertimbang via lm () dan hanya dapat menemukan yang sesuai dengan yang terakhir. Berikut ini contoh sederhana:
aggregated <-
data.frame(x=1:5) %>%
mutate( y = round(2 * x + 2 + rnorm(length(x)) ),
freq = as.numeric(table(sample(1:5, 100,
replace=TRUE, prob=c(.3, .4, .5, .4, .3)))))
x <- aggregated$x
y <- aggregated$y
weight <- aggregated$freq
N <- length(y)
# via lm()
lm(y ~ x, data = aggregated, weight = freq)
dan dibandingkan dengan
lin_wt_mod <- function() {
for (i in 1:N) {
y[i] ~ dnorm(mu[i], tau*weight[i])
mu[i] <- beta[1] + beta[2] * x[i]
}
for(j in 1:2){
beta[j] ~ dnorm(0,0.0001)
}
tau ~ dgamma(0.001, 0.001)
sigma <- 1/sqrt(tau)
}
dat <- list("N","x","y","weight")
params <- c("beta","tau","sigma")
library(R2jags)
fit_wt_lm1 <- jags.parallel(data = dat, parameters.to.save = params,
model.file = lin_wt_mod, n.iter = 3000, n.burnin = 1000)
fit_wt_lm1$BUGSoutput$summary