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\}$$