Quiero combinar datos de diferentes fuentes.
Digamos que quiero estimar una propiedad química (por ejemplo, un coeficiente de partición ):
Tengo algunos datos empíricos, que varían debido al error de medición en torno a la media.
Y, en segundo lugar, tengo un modelo que predice una estimación a partir de otra información (el modelo también tiene cierta incertidumbre).
¿Cómo puedo combinar esos dos conjuntos de datos? [La estimación combinada se utilizará en otro modelo como predictor].
El metanálisis y los métodos bayesianos parecen ser adecuados. Sin embargo, no he encontrado muchas referencias e ideas sobre cómo implementarlo (estoy usando R, pero también estoy familiarizado con Python y C ++).
Gracias.
Actualizar
Ok, aquí hay un ejemplo más real:
Para estimar la toxicidad de un químico (típicamente expresado como= concentración donde muere el 50% de los animales) se realizan experimentos de laboratorio. Afortunadamente, los resultados de los experimentos se recopilan en una base de datos (EPA) .
Estos son algunos valores para el insecticida lindano :
### Toxicity of Lindane in ug/L
epa <- c(850 ,6300 ,6500 ,8000, 1990 ,516, 6442 ,1870, 1870, 2000 ,250 ,62000,
2600,1000,485,1190,1790,390,1790,750000,1000,800
)
hist(log10(epa))
# or in mol / L
# molecular weight of Lindane
mw = 290.83 # [g/mol]
hist(log10(epa/ (mw * 1000000)))
Sin embargo, también hay algunos modelos disponibles para predecir la toxicidad de las propiedades químicas ( QSAR ). Uno de estos modelos predice la toxicidad del coeficiente de partición octanol / agua ():
El coeficiente de partición de lindano es y la toxicidad prevista es .
lkow = 3.8
mod1 <- -0.94 * lkow - 1.33
mod1
¿Hay una buena manera de combinar estas dos informaciones diferentes (experimentos de laboratorio y predicciones de modelos)?
hist(log10(epa/ (mw * 1000000)))
abline(v = mod1, col = 'steelblue')
El combinado se usará más adelante en un modelo como predictor. Por lo tanto, un solo valor (combinado) sería una solución simple.
Sin embargo, una distribución también puede ser útil, si esto es posible en el modelado (¿cómo?).
fuente
Respuestas:
Su modelo estimado sería un útil previo.
He aplicado el siguiente enfoque en LeBauer et al 2013 , y he adaptado el código de priors_demo.Rmd a continuación.
Para parametrizar esto antes de usar la simulación, considere su modelo
Asumirsi0 0∼ N( 0.94 , 0.03 ) y si1∼ N( 1.33 , 0.1 ) ; Lkow es conocido (un parámetro fijo; por ejemplo, las constantes físicas a menudo se conocen con mucha precisión en relación con otros parámetros).
Además, hay cierta incertidumbre en el modelo, haré estoϵ ∼ N( 0 , 1 ) , pero debe ser una representación precisa de su información, por ejemplo, el RMSE del modelo podría usarse para informar la escala de la desviación estándar. Intencionalmente estoy haciendo esto un "informativo" previo.
Ahora imagina que
theprior
es tu anterior yson sus datos:
La forma más fácil de usar el anterior será parametrizar una distribución que JAGS reconocerá.
Esto puede hacerse de muchas maneras. Como los datos no tienen que ser normales, puede considerar encontrar una distribución usando el paquetenorte( - 4.9 , 1.04 ) . Si desea inflar la varianza (para dar más fuerza a los datos), puede usarnorte( - 4.9 , 2 )
fitdistrplus
. Para simplificar, supongamos que su anterior esN(mean(theprior), sd(theprior))
, o aproximadamenteEntonces podemos ajustar un modelo usando JAGS
Finalmente, una trama:
Y puede considerar
mu=5.08
su estimación del valor medio del parámetro (rosa) ysd = 0.8
su desviación estándar; la estimación predictiva posterior del logLC_50 (de donde obtiene las muestras) está en rojo.Referencia
LeBauer, DS, D. Wang, K. Richter, C. Davidson y MC Dietze. (2013) Facilitar retroalimentaciones entre mediciones de campo y modelos de ecosistemas. Monografías ecológicas 83: 133-154. doi: 10.1890 / 12-0137.1
fuente