Processing math: 50%

13 votos

Ejemplo sencillo que muestra las ventajas de Bayesian Model averaging (BMA)

Estoy incorporando un Bayesian Model averaging (BMA) enfoque de mi investigación, y pronto dará una presentación acerca de mi trabajo a mis colegas. Sin embargo, BMA no es realmente conocido en mi campo, por lo que después de la presentación de ellos con toda la teoría y antes de aplicarlo a mi problema, quiero presentar un simple, pero muy instructivo ejemplo de por qué BMA obras.

Yo estaba pensando en un ejemplo sencillo con dos modelos, uno puede elegir, pero la verdadera generadora de datos (modelo de DGM) está en algún lugar en el medio y las pruebas no realmente a favor de cualquiera de ellos. Así que si usted elige uno y continuar a partir de ellos, usted no haría caso de incertidumbre del modelo y hacer un error, pero BMA, aunque el verdadero modelo no es parte de la modelo, al menos te da correcto posterior de la densidad del parámetro de interés. Por ejemplo, hay dos previsiones meteorológicas de cada día (a y B) y uno quiere predecir el clima mejor, por lo que en estadística clásica que intenta encontrar el mejor pronosticador entre los dos, pero ¿y si la verdad está en algún lugar en el medio (que es, a veces, Una que es correcto, a veces B). Pero yo no podía formalizar. Algo como eso, pero estoy muy abierto a ideas. Espero que esta pregunta es específica suficiente!

En la literatura, no he encontrado ninguna de niza ejemplos de lo que he leído hasta ahora:

  • Kruschke (2011), mientras que una gran introducción a la estadística Bayesiana, en realidad no se centran en BMA y el sorteo ejemplo se tiene en el capítulo 4 es ideal para la introducción de la estadística Bayesiana, pero realmente no convencer a un investigador para el uso de BMA. ("¿Por qué hacer de nuevo tengo tres modelos, uno diciendo que la moneda es justa y dos diciendo que es parcial en cualquier dirección?")
  • Todas las otras cosas que he leído (Koop 2003, Koop/Poirier/Tobias (2007), Hoeting et al. (1999) y toneladas de otros) son una buena referencia, pero no he encontrado un juguete simple ejemplo de ellos.

Pero tal vez me acabo de perder una buena fuente aquí.

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

8voto

ohit Puntos 29

Yo hice algo similar recientemente. No se trata de intentar convencer a los demás, pero haciendo un pequeño proyecto que me permitió conseguir un poco de sabor de BMA. Lo que hice fue generar un conjunto de datos con una respuesta binaria, tres variables independientes que tuvieron un efecto en la respuesta y siete variables que no tienen ningún efecto sobre la respuesta. Yo, a continuación, en comparación con la BMA resultados para la frecuentista estimados en la regresión logística. Creo que al menos en este caso, la BMA enfoque parece ser bastante buena. Si quieres hacerlo más accesible puede siempre el nombre de las variables o algo en lugar de llamar a ellos el genérico Xy.

El R código que he usado para esto se presentan a continuación. Espero que os puede inspirar!

# 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)

2voto

Dan Puntos 12178

Un gran recurso para esto es:
Bayesian Model averaging con BMS por Stefan Zeugner (2012)

Es el uso de la R-paquete de BMS, más información se puede encontrar aquí:
http://bms.zeugner.eu/

Dos manos de tutoriales para la reproducción de ejemplos del mundo real con el paquete puede ser encontrado aquí:

Más general de la motivación y la actual introducción a los métodos Bayesianos es el siguiente papel:

Ha Llegado el Momento: Bayesiano Métodos para el Análisis de Datos en la Organización de las Ciencias por John K. Kruschke, Herman Aguinis y Harry Joo

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X