Saya ingin menggabungkan data dari berbagai sumber.
Katakanlah saya ingin memperkirakan properti kimia (misalnya koefisien partisi ):
Saya memiliki beberapa data empiris, bervariasi karena kesalahan pengukuran di sekitar rata-rata.
Dan, kedua, saya memiliki model yang memperkirakan perkiraan dari informasi lain (model juga memiliki beberapa ketidakpastian).
Bagaimana saya bisa menggabungkan kedua set data itu? [Estimasi gabungan akan digunakan dalam model lain sebagai prediktor].
Meta-analisis dan metode bayesian tampaknya cocok. Namun, belum menemukan banyak referensi dan ide bagaimana mengimplementasikannya (saya menggunakan R, tetapi juga akrab dengan python dan C ++).
Terima kasih.
Memperbarui
Oke, ini contoh yang lebih nyata:
Untuk memperkirakan toksisitas bahan kimia (biasanya dinyatakan sebagai = konsentrasi ketika 50% hewan mati) percobaan laboratorium dilakukan. Untungnya hasil percobaan dikumpulkan dalam database (EPA) .
Berikut adalah beberapa nilai untuk insektisida 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)))
Namun, ada juga beberapa model yang tersedia untuk memprediksi toksisitas dari sifat kimia ( QSAR ). Salah satu model ini memprediksi toksisitas dari koefisien partisi oktanol / air ():
Koefisien partisi Lindane adalah dan toksisitas yang diprediksi adalah .
lkow = 3.8
mod1 <- -0.94 * lkow - 1.33
mod1
Apakah ada cara yang baik untuk menggabungkan dua informasi yang berbeda ini (percobaan laboratorium dan prediksi model)?
hist(log10(epa/ (mw * 1000000)))
abline(v = mod1, col = 'steelblue')
Gabungan akan digunakan nanti dalam model sebagai prediktor. Oleh karena itu, nilai tunggal (gabungan) akan menjadi solusi sederhana.
Namun, distribusi mungkin juga berguna - jika ini dimungkinkan dalam pemodelan (bagaimana?).
sumber
Jawaban:
Perkiraan model Anda akan menjadi prior yang bermanfaat.
Saya telah menerapkan pendekatan berikut dalam LeBauer et al 2013 , dan telah mengadaptasi kode dari priors_demo.Rmd di bawah ini.
Untuk parameter ini sebelum menggunakan simulasi, pertimbangkan model Anda
Menganggapb0∼ N( 0,94 , 0,03 ) dan b1∼ N( 1,33 , 0,1 ) ; Lkow diketahui (parameter tetap; misalnya konstanta fisik sering dikenal sangat relatif terhadap parameter lainnya).
Selain itu, ada beberapa ketidakpastian model, saya akan membuatnyaϵ ∼ N( 0 , 1 ) , tetapi harus merupakan representasi akurat dari informasi Anda, misalnya RMSE model dapat digunakan untuk menginformasikan skala deviasi standar. Saya sengaja menjadikan ini sebagai 'informatif' sebelumnya.
Sekarang bayangkan
theprior
adalah prioritas Andaadalah data Anda:
Cara termudah untuk menggunakan prior adalah dengan parameterisasi distribusi yang akan dikenali JAGS.
Ini bisa dilakukan dengan banyak cara. Karena data tidak harus normal, Anda mungkin mempertimbangkan untuk menemukan distribusi menggunakan paketN( - 4,9 , 1,04 ) . Jika Anda ingin mengembang varians (untuk memberikan data lebih banyak kekuatan) yang bisa Anda gunakanN( - 4,9 , 2 )
fitdistrplus
. Untuk mempermudah, anggap saja bahwa prior Anda adalahN(mean(theprior), sd(theprior))
, atau kurang-lebihLalu kita bisa muat model menggunakan JAGS
Akhirnya, sebuah plot:
Dan Anda dapat mempertimbangkan
mu=5.08
untuk menjadi estimasi nilai parameter rata-rata (merah muda), dansd = 0.8
standar deviasinya; estimasi prediktif posterior dari logLC_50 (di mana Anda mendapatkan sampel Anda) berwarna merah.Referensi
LeBauer, DS, D. Wang, K. Richter, C. Davidson, & MC Dietze. (2013). Memfasilitasi umpan balik antara pengukuran lapangan dan model ekosistem. Monografi Ekologis 83: 133–154. doi: 10.1890 / 12-0137.1
sumber