Quero simular uma amostra de uma distribuição normal de mistura, de modo que
é restrito ao intervalo vez de . Isso significa que eu quero simular uma mistura truncada de distribuições normais.R
Eu sei que há algum algoritmo para simular um normal truncado (ou seja, desta pergunta ) e o pacote correspondente em R para fazer isso. Mas como posso simular uma mistura truncada normal? É o mesmo se eu simular duas normais truncadas de e ) para normalizar uma mistura truncada?N ( μ 2 , σ 2 2
Respostas:
A simulação de um normal truncado é feita facilmente se você tiver acesso a uma função quantil normal adequada. Por exemplo, em R, simulando , onde e significam os limites inferiores e superiores podem ser feitas invertendo a CDF por exemplo, em RNba(μ,σ2) a b Φ(σ−1{x−μ})−Φ(σ−1{a−μ})Φ(σ−1{b−μ})−Φ(σ−1{a−μ})
Caso contrário, desenvolvi um algoritmo normal de aceitação / rejeição truncado há vinte anos.
Se considerarmos o problema de mistura truncada, com densidade é uma mistura de distribuições normais truncadas, mas com pesos diferentes : Portanto, para simular a partir de um normal truncado mistura, é suficiente tomarf(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
onde
s=p{Φ(σ−11{b−μ1})−Φ(σ−11{a−μ1})}+(1−p){Φ(σ−12{b−μ2})−Φ(σ−12{a−μ2})}
fonte