Ejemplo simple que muestra las ventajas del Promedio Bayesiano de Modelos (BMA)

12

Estoy incorporando un enfoque Bayesian Model Averaging (BMA) en mi investigación y pronto daré una presentación sobre mi trabajo a mis colegas. Sin embargo, BMA no es realmente tan conocido en mi campo, así que después de presentarles toda la teoría y antes de aplicarla realmente a mi problema, quiero presentar un ejemplo simple pero instructivo sobre por qué funciona BMA.

Estaba pensando en un ejemplo simple con dos modelos entre los que se puede elegir, pero el verdadero modelo de generación de datos (DGM) está en algún punto intermedio y la evidencia realmente no favorece a ninguno de ellos. Entonces, si elige uno y continúa a partir de ellos, ignorará la incertidumbre del modelo y cometerá un error, pero BMA, aunque el modelo verdadero no es parte del conjunto de modelos, al menos proporciona la densidad posterior correcta del parámetro de interés. Por ejemplo, hay dos pronósticos del tiempo cada día (A y B) y uno quiere predecir el mejor clima, por lo que en las estadísticas clásicas primero trataría de encontrar el mejor pronosticador entre los dos, pero ¿y si la verdad está en algún punto intermedio? (es decir, a veces A es correcto, a veces B). Pero no pude formalizarlo. Algo así pero estoy muy abierto a las ideas. ¡Espero que esta pregunta sea lo suficientemente específica!

En la literatura, no he encontrado ningún buen ejemplo de lo que he leído hasta ahora:

  • Kruschke (2011) , si bien es una gran introducción a las estadísticas bayesianas, no se enfoca realmente en BMA y el ejemplo de lanzamiento de monedas que tiene en el capítulo 4 es excelente para presentar estadísticas bayesianas, pero realmente no convence a un compañero investigador para usar BMA. ("¿Por qué nuevamente tengo tres modelos, uno que dice que la moneda es justa y dos que dicen que está sesgada en cualquier dirección?")
  • Todas las otras cosas que leí ( Koop 2003 , Koop / Poirier / Tobias (2007) , Hoeting et al. (1999) y toneladas de otras) son excelentes referencias, pero no he encontrado un ejemplo de juguete simple en ellas.

Pero tal vez me perdí una buena fuente aquí.

Entonces, ¿alguien tiene un buen ejemplo que él o ella usa para introducir BMA? Tal vez incluso mostrando las probabilidades y las posteriores porque creo que sería bastante instructivo.

Christoph_J
fuente
Una breve actualización: acabo de encontrar esta presentación que se refiere a la paradoja de Freedman en la sección 2. Hay un breve ejemplo en el que se simulan 39 covariables aleatorias y si uno solo busca el mejor modelo, finalmente encuentra covariables significativas. El promedio de modelos es aparentemente una cura para ese problema. No estoy publicando una solución con código aquí porque, francamente, no sé cómo se derivan las cifras.
Christoph_J
(Continuación) ¿Sobre qué están promediando exactamente? ¿El mejor parámetro? Todos los parámetros (creo que eso solo tendría sentido en este ejemplo específico). Aún así, creo que los gráficos en combinación con la pista a la paradoja de Freedman son bastante útiles. Quizás ayude un poco.
Christoph_J

Respuestas:

8

Xy

El código R que utilicé para esto se presenta a continuación. ¡Espero que pueda inspirarte!

# The sample size
n <- 100

# The 'true' coefficient vector
Beta <- cbind(c(-1.5, 0.45, -3))

# Generate the explanatory variables which have an effect on the outcome
set.seed(1)
X <- cbind(rnorm(n, 0, 1), rnorm(n, 4, 2), rnorm(n, 0.5, 1))

# Convert this into probabilities
prob <- 1/(1+exp(-X %*% Beta))

# Generate some uniform numbers. If the elements are smaller than the corresponding elements in the prob vector, then return 1.
set.seed(2)
runis <- runif(n, 0, 1)
y <- ifelse(runis < prob, 1, 0)

# Add the nonsense variables
X <- cbind(X, rpois(n, 3))        # Redundant variable 1 (x4)
X <- cbind(X, rexp(n, 10))        # Redundant variable 2 (x5)
X <- cbind(X, rbeta(n, 3, 10))    # Redundant variable 3 (x6)
X <- cbind(X, rbinom(n, 10, 0.5)) # Redundant variable 4 (x7)
X <- cbind(X, rpois(n, 40))       # Redundant variable 5 (x8)
X <- cbind(X, rgamma(n, 10, 20))  # Redundant variable 6 (x9)
X <- cbind(X, runif(n, 0, 1))     # Redundant variable 7 (x10)


# The BMA
library(BMA)
model <- bic.glm(X, y,  glm.family="binomial", factor.type=FALSE, thresProbne0 = 5, strict = FALSE)

# The frequentist model
model2 <- glm(y~X, family = "binomial")

old.par <- par()
par(mar=c(3,2,3,1.5))
plot(model, mfrow=c(2,5))
par(old.par)

summary(model)
summary(model2)
hejseb
fuente
2
Ese es un buen ejemplo, entonces +1 por eso. Sin embargo, como ya señaló, en realidad no ayuda a convencer a otros de usar BMA. En realidad, lo ejecuté e incluso me tomó un tiempo convencerme de que BMA es mejor aquí que el enfoque clásico: el mejor modelo no es el modelo verdadero (el mejor modelo solo incluye x2 y x3) y los parámetros para model2 no son tanto, al menos para los parámetros relevantes. Sin embargo, muestra algunos parámetros significativos x5 y x6 que no deberían estar allí y BMA hace un gran trabajo al decirle que esto no es significativo, por lo que es una ventaja para BMA.
Christoph_J
2

Un gran recurso para esto es:
Promedio de modelos bayesianos con BMS por Stefan Zeugner (2012)

Está utilizando el paquete RMS BMS , puede encontrar más información aquí:
http://bms.zeugner.eu/

Aquí se pueden encontrar dos tutoriales prácticos para reproducir ejemplos del mundo real con el paquete:

Una introducción motivacional y actual más general a los métodos bayesianos es el siguiente documento:

Ha llegado el momento: métodos bayesianos para el análisis de datos en las ciencias de la organización por John K. Kruschke, Herman Aguinis y Harry Joo

vonjd
fuente
Gracias por los enlaces, pero en realidad no son lo que busco. De hecho, conocía y usé el paquete antes (es genial) y estoy de acuerdo en que su documentación es realmente instructiva. Pero, una vez más, la intención de los autores no es convencer a alguien (con suerte en menos de 5 minutos) de por qué deberían usar BMA, pero dado que quieren usarlo, cómo hacerlo con su paquete. Entonces comienzan con el attitudeejemplo y si te desplazas por tu primer enlace, realmente no hay ninguna tabla o figura donde gritarías: "¡Dios, estoy feliz de haber usado BMA!"
Christoph_J
Continuación: para ser claros, esto, por supuesto, no es de ninguna manera una crítica de su documentación: no es su intención en primer lugar. Quizás para dar un ejemplo que busco. Supongamos que desea explicar el problema de los valores atípicos en una regresión lineal. Probablemente comenzaría con algo como los cuadros aquí . Por supuesto, el problema en los datos reales nunca será tan fácil. Va a ser difícil cómo definir un valor atípico, etc. Pero con ese cuadro, todos saben lo que está sucediendo.
Christoph_J
3
@Christoph_J: ¿Conoces este documento? Indiana.edu/~kruschke/articles/KruschkeAJ2012.pdf : no se trata tanto de BMA sino de convencer a alguien de que use métodos bayesianos en primer lugar, tal vez esto sea algo útil para usted :-)
vonjd
1
No lo sabía y es un muy buen documento introductorio a los métodos bayesianos, así que +1 para el enlace. Gracias.
Christoph_J
@Christoph_J: edité la publicación en consecuencia: su +1 para la respuesta no funcionó, todavía es 0 (?!?) Así que podría hacerlo de nuevo - Gracias :-)
vonjd