Antecedentes : tengo un doctorado en psicología social, donde las estadísticas teóricas y las matemáticas apenas se cubrieron en mi curso cuantitativo. En la escuela de pregrado y posgrado, me enseñaron (al igual que muchos de ustedes también en ciencias sociales, probablemente) a través del marco frecuentista "clásico". Ahora, también me encanta R y el uso de métodos de simulación para verificar que los métodos de trabajo hace caminomás sentido para mí que las pruebas matemáticas (de nuevo: antecedentes en una ciencia social cuantitativa, no estadísticas teóricas). Los métodos frecuentes y los métodos de simulación juntos tienen mucho sentido para mí. Debido a que los frecuentas ven la probabilidad como probabilidades a largo plazo (p. Ej., Si hago esto un número arbitrariamente grande de veces, y ocurre el 50% del tiempo, entonces hay una probabilidad del 50%). ¡Podemos simular este largo plazo con los métodos de Monte Carlo!
Complicaciones : desde la licenciatura, he sido muy consciente de los métodos bayesianos, y siempre ha habido personas en mi vida que me han llamado al lado bayesiano, diciendo que los resultados fueron más fáciles de interpretar, que tenemos probabilidad de una hipótesis en lugar de los datos. dada una hipótesis, etc. Me gustó mucho esto y tomé una clase bayesiana, leí algunos libros y documentos bayesianos, y ahora estoy bastante familiarizado con Stan y sus paquetes de R asociados.
Ingrese Mayo : Después de pensar "Bayesian es probablemente el camino del futuro" por un tiempo, leí la Inferencia estadística de Deborah Mayo como Pruebas severas . Ella dice que no elige un lado al comienzo del libro, pero lo hace: es una frecuentista, y gran parte del libro defiende las metodologías frecuentistas. No quiero necesariamente discutir si creemos que la forma en que ve la evidencia es válida, pero esto me hizo pensar: ¿Bayes es realmente todo lo que se anuncia? Quiero decir, la multitud de Bayes está tan fracturada que ni siquiera conozco la forma "correcta" de analizar los datos en un marco bayesiano a menudo. Por lo general, solo usaríarstanarm
y estimaciones puntuales actuales e intervalos creíbles ... que a menudo se alinean estrechamente con estimaciones frecuentes e intervalos de confianza. Podría hacer comparaciones de modelos, pero siempre tengo miedo de describir los factores de Bayes como comparaciones de probabilidad posterior, etc.
Más reflexión : Lo que seguía pensando en el libro de Mayo era: hay una forma en que podemos usar las computadoras para asegurarnos de que nuestros métodos frecuentas funcionan, porque la probabilidad es lo que vemos a largo plazo y podemos simular eso. Los bayesianos ni siquiera pueden ponerse de acuerdo sobre qué probabilidad es realmente, según la escuela bayesiana (por defecto, subjetiva, etc.). Lo cual me lleva a mi pregunta:
Pregunta : ¿Cómo verifican los bayesianos que sus métodos definen adecuadamente la incertidumbre (es decir, calculan intervalos válidos creíbles y distribuciones posteriores) utilizando métodos de simulación de Monte Carlo, si la probabilidad no se define como tasas a largo plazo?
Ejemplo : creo un generador de datos. Esto solo se simulará a partir de una distribución de Bernoulli con una probabilidad de .5:
set.seed(1839)
p <- .50
n <- 100
gen_dat <- function(n, p) {
rbinom(n, 1, p)
}
Ahora, digamos que quiero asegurarme de que los intervalos de confianza en una regresión logística sean realmente válidos. Puedo simular una regresión muchas veces y asegurarme de que el valor real de la población cae en el intervalo de confianza del 95% el 95% del tiempo. Es un modelo de solo intercepción, así que solo quiero asegurarme de que estoy estimando p
correctamente:
set.seed(1839)
iter <- 10000
results <- sapply(seq_len(iter), function(zzz) {
mod <- glm(gen_dat(n, p) ~ 1, binomial)
conf <- suppressMessages(confint(mod))
log(p / (1 - p)) < max(conf) & log(p / (1 - p)) > min(conf)
})
mean(results)
Esto tarda unos minutos en ejecutarse, pero terminamos con la mean(results)
llamada que nos da 0.9416
. Esto es aproximadamente el 95%, y estoy seguro de decir que el glm
comando describe la incertidumbre de una manera válida. Estoy seguro de que se habría acercado a la nariz al 95% si hubiera subido iter
y quisiera esperar más tiempo en mi computadora portátil.
Por otro lado, ajustemos un modelo bayesiano para lo mismo:
library(rstanarm)
set.seed(1839)
dat <- data.frame(y = gen_dat(n, p))
stan_mod <- stan_glm(y ~ 1, binomial, dat)
summary(stan_mod)
En parte, esto me da:
Estimates:
mean sd 2.5% 25% 50% 75% 97.5%
(Intercept) -0.1 0.2 -0.5 -0.2 -0.1 0.0 0.3
mean_PPD 0.5 0.1 0.3 0.4 0.5 0.5 0.6
log-posterior -73.0 0.7 -75.1 -73.1 -72.7 -72.5 -72.5
Dado que los bayesianos no definen la probabilidad como lo que vemos a largo plazo, ¿cómo puedo usar métodos de simulación para verificar que stan_glm
captura la incertidumbre con precisión? Es decir, ¿cómo podría confiar en que estos intervalos creíbles son válidos, utilizando métodos de simulación? Y en este momento, ni siquiera estoy definiendo un prior: ¿cómo entra en juego la inclusión de los prior, ya que eso afectará nuestras medidas de incertidumbre?
Cuando intentaba escribir una regresión beta con un componente de modelo de obstáculo en Stan desde cero una vez, alguien me recomendó: "Simule datos. Hágalo varias veces, y las estimaciones verdaderas deberían estar en el intervalo creíble alrededor de 95 % del tiempo." Pero para mí, ¡eso va en contra de lo que creen los bayesianos! ¡Eso se basa en interpretaciones frecuentes de probabilidad! Entonces, ¿cómo podría convencerme un bayesiano de que el intervalo creíble que recibo de la summary()
llamada a mi modelo describe con precisión la incertidumbre, utilizando métodos de simulación?
Propósito de la pregunta : Este es un ejemplo trivial, pero muchas veces los clientes me presentan problemas difíciles. Y pruebo cosas con las que no estoy familiarizado, así que a menudo realizo un estudio de simulación para asegurarme de que lo que estoy haciendo sea válido. Si tuviera que escribir un modelo personalizado en Stan, ¿cómo sabría que lo que estoy haciendo es legítimo? ¿Cómo podría usar métodos de simulación para verificar que lo que estoy haciendo en Stan realmente me dirá lo que quiero saber?