Je souhaite combiner des données provenant de différentes sources.
Disons que je veux estimer une propriété chimique (par exemple un coefficient de partage ):
J'ai quelques données empiriques, variant en raison d'une erreur de mesure autour de la moyenne.
Et, deuxièmement, j'ai un modèle prédisant une estimation à partir d'autres informations (le modèle présente également une certaine incertitude).
Comment puis-je combiner ces deux jeux de données? [L'estimation combinée sera utilisée dans un autre modèle comme prédicteur].
La méta-analyse et les méthodes bayésiennes semblent convenir. Cependant, je n'ai pas trouvé beaucoup de références et d'idées pour l'implémenter (j'utilise R, mais je suis également familier avec python et C ++).
Merci.
Mise à jour
Ok, voici un exemple plus réel:
Pour estimer la toxicité d'un produit chimique (généralement exprimée en = concentration où 50% des animaux meurent), des expériences en laboratoire sont menées. Heureusement, les résultats des expériences sont rassemblés dans une base de données (EPA) .
Voici quelques valeurs pour l'insecticide Lindane :
### 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)))
Cependant, il existe également certains modèles pour prédire la toxicité des propriétés chimiques ( QSAR ). L'un de ces modèles prédit la toxicité à partir du coefficient de partage octanol / eau ():
Le coefficient de partage du lindane est et la toxicité prévue est .
lkow = 3.8
mod1 <- -0.94 * lkow - 1.33
mod1
Existe-t-il une belle façon de combiner ces deux informations différentes (expériences de laboratoire et prédictions de modèles)?
hist(log10(epa/ (mw * 1000000)))
abline(v = mod1, col = 'steelblue')
Le combiné sera utilisé plus tard dans un modèle comme prédicteur. Par conséquent, une seule valeur (combinée) serait une solution simple.
Cependant, une distribution peut également être utile - si cela est possible dans la modélisation (comment?).
Réponses:
Votre estimation de modèle serait un préalable utile.
J'ai appliqué l'approche suivante dans LeBauer et al 2013 , et j'ai adapté le code de priors_demo.Rmd ci-dessous.
Pour paramétrer cela avant d'utiliser la simulation, considérez votre modèle
Présumerb0∼N(0.94,0.03) et b1∼N(1.33,0.1) ; Lkow est connu (un paramètre fixe; par exemple, les constantes physiques sont souvent connues très précisément par rapport à d'autres paramètres).
De plus, il y a une certaine incertitude du modèle, je vais en faireϵ∼N(0,1) , mais doit être une représentation précise de vos informations, par exemple, le RMSE du modèle peut être utilisé pour informer l'échelle de l'écart-type. J'en fais intentionnellement un avant «informatif».
Imaginez maintenant
theprior
est votre avant etsont vos données:
Le moyen le plus simple d'utiliser l'a priori sera de paramétrer une distribution que JAGS reconnaîtra.
Cela peut se faire de plusieurs manières. Étant donné que les données ne doivent pas être normales, vous pouvez envisager de trouver une distribution à l'aide du packageN(−4.9,1.04) . Si vous voulez gonfler la variance (pour donner plus de force aux données), vous pouvez utiliserN(−4.9,2)
fitdistrplus
. Pour simplifier, supposons simplement que votre a priori estN(mean(theprior), sd(theprior))
, ou approximativementEnsuite, nous pouvons adapter un modèle à l'aide de JAGS
Enfin, un complot:
Et vous pouvez considérer
mu=5.08
comme votre estimation de la valeur moyenne du paramètre (rose) et desd = 0.8
son écart-type; l'estimation prédictive postérieure du logLC_50 (d'où vous obtenez vos échantillons) est en rouge.Référence
LeBauer, DS, D. Wang, K. Richter, C. Davidson et MC Dietze. (2013). Faciliter les rétroactions entre les mesures sur le terrain et les modèles d'écosystème. Monographies écologiques 83: 133-154. doi: 10.1890 / 12-0137.1
la source