Ich möchte eine Probe aus einer Mischungsnormalverteilung so simulieren, dass
ist auf das Intervall anstelle von . Dies bedeutet, dass ich eine abgeschnittene Mischung von Normalverteilungen simulieren möchte.R.
Ich weiß, dass es einen Algorithmus gibt, um eine abgeschnittene Normalität (dh aus dieser Frage ) und ein entsprechendes Paket in R zu simulieren , um dies zu tun. Aber wie kann ich eine abgeschnittene Mischung normal simulieren? Ist es dasselbe, wenn ich zwei abgeschnittene Normalen von und ) simuliere , um eine abgeschnittene Mischung normal zu machen?N ( μ 2 , σ 2 2
Antworten:
Die Simulation von einer abgeschnittenen Normalen ist einfach durchzuführen, wenn Sie Zugriff auf eine ordnungsgemäße normale Quantilfunktion haben. Zum Beispiel kann in R die Simulation von wobei und die unteren und oberen Grenzen bezeichnen, durch Invertieren des cdf zB in R.Nba(μ,σ2) a b Φ(σ−1{x−μ})−Φ(σ−1{a−μ})Φ(σ−1{b−μ})−Φ(σ−1{a−μ})
Ansonsten habe ich vor zwanzig Jahren einen abgeschnittenen normalen Akzeptanz-Ablehnungs-Algorithmus entwickelt.
Wenn wir das Problem der abgeschnittenen Mischung betrachten, mit der Dichte es ist eine Mischung aus abgeschnittenen Normalverteilungen, aber mit unterschiedlichen Gewichten : Daher aus einer abgeschnittenen Normalen zu simulieren Mischung ist es ausreichend zu nehmenf(x;θ)∝{pφ(x;μ1,σ1)+(1−p)φ(x;μ2,σ2)}I[a,b](x) f(x;θ)∝p{Φ(σ−11{b−μ1})−Φ(σ−11{a−μ1})}σ−11ϕ(σ−11{x−μ1})Φ(σ−11{b−μ1})−Φ(σ−11{a−μ1})+(1−p){Φ(σ−12{b−μ2})−Φ(σ−12{a−μ2})}σ−12ϕ(σ−12{x−μ2})Φ(σ−12{b−μ2})−Φ(σ−11{a−μ2}) x=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪x1∼Nba(μ1,σ21)x2∼Nba(μ2,σ22)with probability p{Φ(σ−11{b−μ1})−Φ(σ−11{a−μ1})}/swith probability (1−p){Φ(σ−12{b−μ2})−Φ(σ−12{a−μ2})}/s
denen
s=p{Φ(σ−11{b−μ1})−Φ(σ−11{a−μ1})}+(1−p){Φ(σ−12{b−μ2})−Φ(σ−12{a−μ2})}
quelle