4.4 Método de composición (o de simulación condicional)

En ocasiones la densidad de interés se puede expresar como una mixtura discreta de densidades: \[f(x)=\sum_{j=1}^{k}p_{j}f_{j}(x)\] con \(\sum_{j=1}^{k}p_j=1\), \(p_j\geq 0\) y \(f_j\) densidades (sería también válido para funciones de distribución, incluyendo el caso discreto).

Algoritmo 4.6 (simulación de una mixtura discreta)

  1. Generar \(J\) con distribución \(P\left( J=j \right) = p_j\).

  2. Generar \(X\sim f_J\).

Ejemplo 4.6 (distribución doble exponencial)

A partir de la densidad de la distribución doble exponencial: \[f(x) =\frac{\lambda }{2}e^{-\lambda \left\vert x\right\vert } \text{, }\forall x\in \mathbb{R},\] se deduce que: \[f(x) = \frac{1}{2}f_{1}(x) + \frac{1}{2}f_{2}(x)\] siendo: \[f_{1}(x) = \left\{ \begin{array}{ll} \lambda e^{-\lambda x} & \text{si } x\geq 0 \\ 0 & \text{si } x<0 \end{array} \right., \ f_{2}(x) = \left\{ \begin{array}{ll} \lambda e^{\lambda x} & \text{si } x<0 \\ 0 & \text{si } x\geq 0 \end{array} \ \right.\]

El algoritmo resultante, empleando dos números pseudoaleatorios uniformes17, el primero para seleccionar el índice y el segundo para generar un valor de la correspondiente componente mediante el método de inversión, sería el siguiente:

  1. Generar \(U,V \sim \mathcal{U}(0, 1)\).

  2. Si \(U<0.5\) devolver \(X= -\ln( 1-V )/\lambda\).

  3. En caso contrario devolver \(X= \ln(V)/\lambda\).

Este método está implementado en la función rdexp() del paquete simres (fichero ddexp.R).

En ciertas ocasiones, por comodidad, para simular una muestra de tamaño \(n\), se simulan muestras de tamaño \(np_{i}\) con densidad \(f_{i}\) y, si el orden es importante, se combinan aleatoriamente

Otro ejemplo de una mixtura discreta es el estimador tipo núcleo de la densidad (ver e.g. la ayuda de la función density() de R o la Sección 10.3). Simular a partir de una estimación de este tipo es lo que se conoce como bootstrap suavizado.

En el caso de una mixtura continua tendríamos: \[f(x)=\int g(x|y)h(y)dy\]

Algoritmo 4.7 (simulación de una mixtura continua)

  1. Generar \(Y\sim h\).

  2. Generar \(X\sim g(\cdot |Y)\).

Este algoritmo es muy empleado en Inferencia Bayesiana y en la simulación de algunas variables discretas (como la Binomial Negativa, denominada también distribución Gamma-Poisson, o la distribución Beta-Binomial; ver Sección 5.6), ya que el resultado sería válido cambiando las funciones de densidad \(f\) y \(g\) por funciones de masa de probabilidad.


  1. En ocasiones se hace un reciclado de los números aleatorios, es decir, solo se genera la uniforme \(U\) y se obtiene \(V\) a partir de ella. Por ejemplo, \(V=2U\) si \(U \le 0.5\) y \(V=2(U-0.5)\) si \(U > 0.5\).↩︎