10 votos

Simular de un truncado de la mezcla de la distribución normal

Quiero simular una muestra de una mezcla normal de distribución tal que

$$p\times\mathcal{N}(\mu_1,\sigma_1^2) + (1-p)\times\mathcal{N}(\mu_2,\sigma_2^2) $$

está restringida al intervalo de $[0,1]$ en lugar de $\mathbb{R}$. Esto significa que quiero simular un tronco de mezcla de distribuciones normales.

Sé que hay algún algoritmo para simular un truncado normal (he.e a partir de esta pregunta) y el correspondiente paquete de R para hacer esto. Pero, ¿cómo puedo simular un truncado de la mezcla normal? Es lo mismo si yo simular dos trunca normal de $\mathcal{N}(\mu_1,\sigma_1^2)$$\mathcal{N}(\mu_2,\sigma_2^2$) para hacer un tronco de mezcla normal?

16voto

Lev Puntos 2212

Simulación de un truncado normal es fácil de hacer si usted tiene acceso a una adecuada cuantil normal de la función. Por ejemplo, en R, simulando $$\mathcal{N}_a^b(\mu,\sigma^2)$$where $un$ and $b$ denote the lower and upper bounds can be done by inverting the cdf $$\dfrac{\Phi(\sigma^{-1}\{x-\mu\})-\Phi(\sigma^{-1}\{a-\mu\})}{\Phi(\sigma^{-1}\{b-\mu\})-\Phi(\sigma^{-1}\{a-\mu\})}$$por ejemplo, en R

x=qnorm(pnorm(a,mu,sigma)+runif(1)*(pnorm(b,mu,sigma)-pnorm(a,mu,sigma)))

De lo contrario, he desarrollado un trunca normal de aceptar-rechazar algoritmo de veinte años.

Si tenemos en cuenta el truncado de la mezcla problema, con la densidad $$f(x;\theta) \propto \left\{p\varphi(x;\mu_1,\sigma_1)+(1-p)\varphi(x;\mu_2,\sigma_2)\right\}\mathbb{I}_{[a,b]}(x)$$es una mezcla de truncado de distribuciones normales , pero con diferentes pesos: $$f(x;\theta) \propto p\left\{\Phi(\sigma_1^{-1}\{b-\mu_1\})-\Phi(\sigma_1^{-1}\{a-\mu_1\}) \right\}\dfrac{\sigma_1^{-1}\phi(\sigma_1^{-1}\{x-\mu_1\})}{\Phi(\sigma_1^{-1}\{b-\mu_1\})-\Phi(\sigma_1^{-1}\{a-\mu_1\})}+(1-p)\left\{\Phi(\sigma_2^{-1}\{b-\mu_2\})-\Phi(\sigma_2^{-1}\{a-\mu_2\}) \right\}\dfrac{\sigma_2^{-1}\phi(\sigma_2^{-1}\{x-\mu_2\})}{\Phi(\sigma_2^{-1}\{b-\mu_2\})-\Phi(\sigma_1^{-1}\{a-\mu_2\})}$$ Por lo tanto, para simular a partir de un tronco de mezcla normal, es suficiente para tomar $$x=\begin{cases} x_1\sim\mathcal{N}_a^b(\mu_1,\sigma_1^2) &\text{with probability }\\ &\qquad p\left\{\Phi(\sigma_1^{-1}\{b-\mu_1\})-\Phi(\sigma_1^{-1}\{a-\mu_1\}) \right\}\big/\mathfrak{s}\\ x_2\sim\mathcal{N}_a^b(\mu_2,\sigma_2^2) &\text{with probability }\\ &\qquad(1-p)\left\{\Phi(\sigma_2^{-1}\{b-\mu_2\})-\Phi(\sigma_2^{-1}\{a-\mu_2\}) \right\}\big/\mathfrak{s} \end{casos}$$donde $$\mathfrak{s}=p\left\{\Phi(\sigma_1^{-1}\{b-\mu_1\})-\Phi(\sigma_1^{-1}\{a-\mu_1\}) \right\}+(1-p)\left\{\Phi(\sigma_2^{-1}\{b-\mu_2\})-\Phi(\sigma_2^{-1}\{a-\mu_2\}) \right\}$$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X