さまざまなソースからのデータを組み合わせる


8

さまざまなソースのデータを組み合わせたい。

化学的性質(例えば分配係数)を推定したいとしましょう:

いくつかの経験的データがありますが、平均値周辺の測定誤差により変動します。

次に、他の情報から推定値を予測するモデルがあります(モデルには不確実性もあります)。

これら2つのデータセットを組み合わせるにはどうすればよいですか?[結合された推定値は、別のモデルで予測子として使用されます]。

メタ分析とベイズ法が適しているようです。しかし、それを実装する方法やアイディアはあまり見つかりませんでした(私はRを使用していますが、PythonとC ++にも精通しています)。

ありがとう。

更新

わかりました、これはより現実的な例です:

化学物質の毒性を推定するために(通常、 =動物の50%が死亡する濃度)ラボ実験を行います。幸いにも、実験の結果はデー​​タベース(EPA)に収集されます。LC50

殺虫剤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)))

ただし、化学的特性(QSAR)から毒性を予測するために利用できるいくつかのモデルもあります。これらのモデルの1つは、オクタノール/水分配係数()から毒性を予測し。log KOW

log LC50[mol/L]=0.94 (±0.03) log KOW  1.33(± 0.1)

Lindaneの分配係数はlog〜K_あり、予測される毒性はです。l o g L C 50 [ m o l / L ] = 4.902log KOW=3.8log LC50[mol/L]=4.902

lkow = 3.8
mod1 <- -0.94 * lkow - 1.33
mod1

これら2つの異なる情報(実験室実験とモデル予測)を組み合わせる良い方法はありますか?

hist(log10(epa/ (mw * 1000000)))
abline(v = mod1, col = 'steelblue')

結合されたは、後でモデルで予測子として使用されます。したがって、単一の(結合された)値は単純なソリューションになります。LC50

ただし、これがモデリングで可能であれば、分布も便利です(方法)。


2
他の人はここで応答するのに十分なことがわかるかもしれませんが、十分な理由のある回答をサポートするのに十分な情報があることはまだわかりません。組み合わせる予定のデータについてもう少し具体的にすることはできますか?
whuber

@whuber:コメントをありがとう。より具体的な例を追加し、これが私が探しているものを明確にすることを期待しています。
EDi、2014

説明は役に立ちます-ありがとうございます。しかし、これらの結果の「組み合わせ」の結果がどうなるかについて、少し説明を加えてもらえますか?単一のますか?それらの範囲?それらの信頼区間?予測がどの程度うまく機能しているかの評価 他に何か?そして、それらがどのように組み合わされるかに関係なく、最終的には化学物質の製造、使用、または廃棄の規制などの決定を行うために情報を使用することに焦点が当てられます。これらの決定がどのように行われるかは、通常、適切な組み合わせの使用方法に(強い)関係があります。 L C 50LC50LC50
whuber

ここ私が開発した以前の推定アプローチの1つを適用できます。このpriors_demo.Rmdに例を示します。
David LeBauer、2014

@David。論文をありがとう-見てみましょう。
EDi、2014

回答:


5

モデルの推定値は、事前に役立ちます。

私は、次のアプローチを適用しているLeBauerら2013、及びコードから適応しているpriors_demo.Rmdを下回っ。

シミュレーションを使用して事前にこれをパラメーター化するには、モデルを検討してください

logLC50=b0X+b1

および想定します。は既知です(固定パラメーター。たとえば、物理定数は他のパラメーターと比較して非常に正確に知られていることがよくあります)。B 1N 1.33 0.1 Lkowb0N(0.94,0.03)b1N(1.33,0.1)Lkow

さらに、モデルの不確実性があります。これをにしますが、情報の正確な表現である必要があります。たとえば、モデルのRMSEを使用して標準のスケールを通知できます偏差。私は意図的にこれを「有益な」事前のものにしています。ϵN(0,1)

b0 <- rnorm(1000, -0.94, 0.03)
b1 <- rnorm(1000, -1.33, 0.1)
e <- rnorm(1000, 0, 1)
lkow <- 3.8
theprior <- b0 * lkow + b1 + e

今想像しthepriorてくださいあなたの前と

thedata <- log10(epa/ (mw * 1000000))

あなたのデータです:

library(ggplot2)
ggplot() + geom_density(aes(theprior)) + theme_bw() + geom_rug(aes(thedata))

事前分布を使用する最も簡単な方法は、JAGSが認識する分布をパラメーター化することです。

これは多くの方法で行うことができます。データは正常である必要はないので、パッケージを使用して分布を見つけることを検討できますfitdistrplus。簡単にするために、前の値がN(mean(theprior), sd(theprior))、またはおよそと仮定します。(データをより強くするために)分散を大きくしたい場合は、)を使用できます。N - 4.9 2 N(4.9,1.04)N(4.9,2)

次に、JAGSを使用してモデルを近似できます。

writeLines(con = "mymodel.bug",
           text = "
           model{
             for(k in 1:length(Y)) {
               Y[k] ~ dnorm(mu, tau)
             }

             # informative prior on mu
             mu ~ dnorm(-4.9, 0.25) # precision tau = 1/variance
             # weak prior 
             tau ~ dgamma(0.01, 0.01)
             sd <- 1 / sqrt(tau)
           }")

require(rjags)
j.model  <- jags.model(file = "mymodel.bug", 
                                  data = data.frame(Y = thedata), 
                                  n.adapt = 500, 
                                  n.chains = 4)
mcmc.object <- coda.samples(model = j.model, variable.names = c('mu', 'tau'),
                            n.iter = 10000)
library(ggmcmc)

## look at diagnostics
ggmcmc(ggs(mcmc.object), file = NULL)

## good convergence, but can start half-way through the simulation
mcmc.o     <- window(mcmc.object, start = 10000/2)
summary(mcmc.o)

最後に、プロット:

ggplot() + theme_bw() + xlab("mu") + 
     geom_density(aes(theprior), color = "grey") + 
     geom_rug(aes(thedata)) + 
     geom_density(aes(unlist(mcmc.o[,"mu"])), color = "pink") +
     geom_density(aes(unlist(mcmc.o[,"pred"])), color = "red")

そしてmu=5.08、平均パラメーター値(ピンク)とsd = 0.8その標準偏差の推定値と見なすことができます。logLC_50の事後予測推定(サンプルの取得元)は赤で表示されます。

ここに画像の説明を入力してください

参照

LeBauer、DS、D。Wang、K。Richter、C。Davidson、およびMC Dietze。(2013)。フィールド測定と生態系モデル間のフィードバックを促進します。生態学的モノグラフ83:133–154。doi:10.1890 / 12-0137.1


以前の計算では-1.33をb1に置き換えたはずですが、今は修正する時間がありません。それは大きな違いはありません。
David LeBauer、2014

@EDiありがとう-使用する場合は、付属のリファレンスを引用してください!
David LeBauer、2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.