(Esta pregunta es un poco relativa a una pregunta anterior de la mina, sino que se trata de entre sujetos de comparación, mientras que esta pregunta es específicamente acerca de hacer inferencias de la media del grupo.)
Al analizar los datos mediante un modelo jerárquico Bayesiano a veces no quieren hacer inferencias sobre los sujetos individuales, sino más bien en el nivel de grupo (por ejemplo, para las niñas mayores de 10 años los más creíble la puntuación de la prueba es de 100 con una credibilidad de 95% intervalo de [75, 125]). Cuando la construcción de un modelo de uso de un MCMC marco, por ejemplo ENTRECORTADO/BUGS, veo dos maneras de llegar en el grupo de nivel medio. Tampoco puedo usar la media de la previa ($\mu_\text{gr}$ en el diagrama a continuación). en la media de la distribución de muestreo o, para cada iteración del algoritmo MCMC puedo calcular la media de todos los sujetos medio (que es la media de todos los $\mu_\text{subj}$ en el diagrama de abajo). Si quiero hacer inferencias acerca de la media del grupo de cuál de estas dos alternativas debo usar?
Como una prueba para ver lo que sucede cuando se usa la de las dos alternativas me encontré con un modelo con datos simulados.
Aquí está una Kruschke estilo diagrama de un modelo jerárquico donde calculamos la media de $\mu_\text{subj}$ para un número de sujetos con una distribución normal de grupo antes de en $\mu_\text{subj}$, con una media de $\mu_\text{gr}$.
Aquí es ENTRECORTADO y R código para especificar el modelo anterior y la simulación de los datos de 50 temas en los que cada sujeto obtiene una media que es de forma aleatoria normalmente distribuida con $\mu=0$$\sigma=1$. Las batallas contra la modelo se ejecuta para 5000 iteraciones y cada iteración de la media de la previa, group_mu
, y la media calculada de los sujetos, mean_mu <- mean(mu[])
, se guarda.
library(rjags)
model_string <- "model {
for(i in 1:length(y)) {
y[i] ~ dnorm( mu[subject[i]], precision[subject[i]])
}
mean_mu <- mean(mu[])
for(subject_i in 1:n_subject) {
mu[subject_i] ~ dnorm(group_mu, group_precision)
precision[subject_i] <- 1/pow(sigma[subject_i], 2)
sigma[subject_i] ~ dunif(0, 10)
}
group_mu ~ dunif(-10, 10)
group_precision <- 1/pow(group_sd, 2)
group_sd ~ dunif(0, 10)
}"
# Creating fake data
n <- 10
n_subject <- 50
subject_mean <- rnorm(n_subject, mean=0, sd=1)
y <- rnorm(n * n_subject, mean=rep(subject_mean, each=n), sd=1)
subject <- rep(1:n_subject, each=n)
# Running the model with JAGS
jags_model <- jags.model(textConnection(model_string),
data=list(y=y, subject=subject, n_subject=n_subject),
n.chains= 3, n.adapt= 1000)
update(jags_model, 1000)
jags_samples <- jags.samples(jags_model,
variable.names=c("group_mu", "mean_mu"),
n.iter=5000)
Mirando cuantiles y boxplots de mean_mu
y group_mu
muestran que ambos están centrados alrededor de la verdadera grupo significa, pero difieren mucho en propagarse con la credibilidad de 95% intervalo de ser mucho más amplia para group_mu
de de mean_mu
.
quantile(jags_samples$mean_mu, c(0.025, 0.5, 0.975))
## 2.5% 50% 97.5%
## -0.10804263 -0.00741235 0.09216414
quantile(jags_samples$group_mu, c(0.025, 0.5, 0.975))
## 2.5% 50% 97.5%
## -0.262734656 -0.008996673 0.248624938
boxplot(jags_samples, outline=F, horizontal=T)
Así que si quiero hacer inferencias acerca de la media del grupo de distribución que debo usar, group_mu
o mean_mu
? Para mí esta no es clara, y alguna explicación de por qué es preferible a la otra es muy apreciada!