5 votos

¿Qué métodos se pueden utilizar para especificar los priores de datos?

De fondo

Estoy en general interesado en aprender métodos apropiados de uso de datos para especificar los priores. Una pregunta anterior a la pregunta de cómo obtener los priores de los expertos, y han recibido buenas recomendaciones. Aquí, estoy interesado en aprender cómo especificar una antes de utilizar los datos. Voy a utilizar estos priores en un meta-análisis para sintetizar los datos adicionales que colecciono.

actualización Aunque Juan ofrece una correcta respuesta, en mi caso, se requeriría una modificación sustancial de la original del modelo a implementar, así que me gustaría encontrar una manera de estimar la previa, como un discreto paso.

Preguntas

  1. ¿Cuál es la mejor forma de especificar los datos informados con anterioridad?

  2. Si estoy trabajando con los parámetros para una especie en particular (monos), y esta especie pertenece a un grupo de organismos(primates), y los datos están disponibles para los primates, pero no para los monos, sería apropiado ajuste de una distribución basada en el primado de datos?

Casos de ejemplo, la primera con una propuesta de solución

  1. Tengo 100 observaciones a partir de 100 especies de primates de primates pulgar longitud:

    set.seed(0)
    thumb <- rgamma(100, 4, 0.1)
    library(MASS)
    fitdistr(thumb, 'gamma')
    

    De hecho, cuando no hay apriori razón para seleccionar una distribución particular, la distribución puede ser elegido por máxima verosimilitud:

    for(dist in c('gamma', 'lognormal', 'weibull') {
    logLik(fitdistr(thumb, dist))
    }
    
  2. He recogido 50 significa, errores estándar y los tamaños de muestra de 50 diferentes especies de primates, y 50 observaciones independientes de otro 50 especies de diámetro del ojo:

    eye <- data.frame( diameter = rgamma(100, 4, 0.1),
                       se       = c(rlnorm(50, 0.5,1), rep(NA, 50)),
                       n        = c(rep(1:5, 10), rep(1, 50)))      
    eye <- signif(eye, 3)
    

    ¿Cómo puedo integrar la muestra estadísticas en mi cálculo de antes?

8voto

David Joyner Puntos 4994

Si usted tiene todos estos datos, creo que la mejor respuesta es en realidad un único modelo de gran tamaño, utilizando el Modelado Jerárquico en lugar de hacerlo en dos pasos (la generación previa, a continuación, el ajuste de un modelo). Esta es básicamente la respuesta que he dado a esta pregunta. Voy a explicar esto un poco más allá.

En un modelo jerárquico que el modelo de cada uno de los parámetros que le interese (por ejemplo, la ubicación y la escala de los parámetros del pulgar longitudes para una especie) están dibujados a partir de una común antes de la distribución. El hyperparameters del modelo jerárquico parametrizar el común antes de la distribución de los parámetros para la especie, y se puede estimar el hyperparameters al mismo tiempo como los parámetros que usted está interesado en. El hyperparameters por supuesto, necesita su propia antes de la distribución, pero estos pueden ser relativamente difusa.

4voto

patfla Puntos 1

Una manera útil para incorporar los datos en una distribución previa es el principio de la máxima entropía. Básicamente proporcionar restricciones que el estado de la distribución es satisfacer (por ejemplo, media, varianza, etc.,etc.) y, a continuación, elija la distribución es más "spread" que cumple con estas restricciones.

La distribución general, tiene la forma $p(x) \propto exp(...)$

Edwin Jaynes fue el creador de este principio, por lo que la búsqueda de su trabajo es un buen lugar para empezar.

Ver la página de la wiki (http://en.wikipedia.org/wiki/Principle_of_maximum_entropy) y los enlaces en los mismos para una descripción más detallada.

2voto

Hertanto Lie Puntos 965

Propongo la siguiente solución 2), y agradecería comentarios:

  1. Los datos incluyen la media, $Y$, el tamaño de la muestra $n$, y el error estándar $\sigma$; calcular la precisión ($\tau=\frac{1}{\sigma\sqrt{n}}$) debido a que se requiere para logN parametrización por los INSECTOS
  2. los datos de $Y\sim \text{N}(\beta_0,\tau)$
  3. precisión $\tau\sim\text{Gamma}(\frac{n}{2},\frac{n}{2\tau})$
  4. difusa de los priores
  5. el uso de $N(\mu=\beta_0, \sigma=\frac{1}{\sqrt{\tau}}$) antes de
  6. Aquí está el código:

    library(rjags)
    data <- data.frame(Y = c(1.6, 2.5, 1.8, 1.8, 1.7, 2.5), 
                       n = c(4, 4, 4, 3, 4, 3), 
                       se = c(0.2, 0.41, 0.24, 0.27, 0.2, 0.14))
    # convert se to precision
    data <- transform(data, obs.prec = 1/se)[, colnames(data)!='se'] 
    # write a bugs model
    sink(file= 'model.bug') #put following in file 'model.bug'
                            #i don't think sink() actually works like this 
    model 
    {
        for (k in 1:length(Y)) {
            Y[k] ~ dnorm(beta.o, tau.y[k])
            tau.y[k] <- prec.y * n[k]
            u1[k] <- n[k]/2
            u2[k] <- n[k]/(2 * prec.y)
            obs.prec[k] ~ dgamma(u1[k], u2[k])
        }
            beta.o ~ dnorm(3, 0.0001)
        prec.y ~ dgamma(0.001, 0.001)
        sd.y  <- 1/sqrt(prec.y)
    }
    sink()
    
    
    model  <- jags.model(file = "model.bug", 
                         data = data, 
                         n.adapt = 500, 
                         n.chains = 4)
    
    mcmc.object <- coda.samples(model = model, 
                                variable.names = c( 'beta.o', 'sd.y'), 
                                n.iter = 10000, 
                                thin = 50)
    summary(mcmc.object)
    

Actualización

He revisado este enfoque para calcular una posterior distribución predictiva. Se requiere algunas modificaciones, sobre todo de la informática una posterior distribución predictiva para una observados de la muestra.

Aquí los detalles:

David S. LeBauer, Wang Dan, Katherine T. Richter, Carl C. Davidson, y Michael C. Dietze de 2013. Facilitar la retroalimentación entre las mediciones de campo y los modelos. Ecológica Monografías 83:133-154. http://dx.doi.org/10.1890/12-0137.1 pdf

Ejemplos de esto y más simple de los enfoques aquí: https://github.com/dlebauer/pecan-priors/blob/master/priors_demo.Rmd

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