Capítulo 5 Simulación de variables discretas

Se trata de simular una variable aleatoria discreta \(X\) con función de masa de probabilidad: \[\begin{array}{l|ccccc} x_{i} & x_{1} & x_{2} & \cdots & x_{n} & \cdots \\ \hline P\left( X=x_{i}\right) & p_{1} & p_{2} & \cdots & p_{n} & \cdots \end{array}\]

Considerando como partida una \(\mathcal{U}\left( 0,1\right)\), la idea general consiste en asociar a cada posible valor \(x_{i}\) de \(X\) un subintervalo de \(\left( 0,1\right)\) de longitud igual a la correspondiente probabilidad. Por ejemplo, como ya se mostró en capítulos anteriores, es habitual emplear código de la forma:

x <- runif(nsim) < p

para simular una distribución \(Bernoulli(p)\).

Para generar variables discretas con dominio finito en R, si no se dispone de un algoritmo específico más eficiente, es recomendable emplear:

sample(valores, nsim, replace = TRUE, prob)

Esta función del paquete base implementa eficientemente el método “alias” que describiremos más adelante en la Sección 5.3.