Formación PDI - Universidad de Málaga
Variables aleatorias cualitativas y cuantitativas discretas finitas
Variables aleatorias cualitativas continuas y discretas
Una variable aleatoria es una función que asigna un valor (numérico continuo o discreto o categórico) a cada resultado posible de un experimento aleatorio.
\[X: \Omega \rightarrow \mathcal{X}\]
donde:
Sea \(X\) una v.a. discreta o categórica que toma valores \(x = 0, 1, \dots\) con parámetro \(\theta\):
\[P(X = x).\]
\[F_{\theta}(x) = P(X \leq x) = \sum_{i = 0}^x P(X = x).\]
Sea \(X\) una v.a. continua que toma valores \(x \in \mathbb{R}\) con parámetro \(\theta\):
\[f(x) \text{ o } f_{\theta}(x).\]
\[F_{\theta}(x) = P(X \leq x) = \int_{-\infty}^x f_{\theta}(x).\]
\[Q_{\theta}(p) = F_{\theta}^{-1}(p) = \inf \{ x \in \mathbb{R} : F_{\theta}(x) \ge p \}, \quad 0 < p < 1\]
| Tipo | Naturaleza | Descripción | Ejemplo |
|---|---|---|---|
| Discreta | Cuantitativa | Toma un número finito o contable de valores. | Número de caras al lanzar 3 monedas. |
| Continua | Cuantitativa | Puede tomar cualquier valor dentro de un intervalo real. | Tiempo de espera en una cola. |
| Categórica/Cualitativa (nominal u ordinal) | Cualitativa | Representa categorías o etiquetas con o sin orden. | Color de una bola extraída de una urna. |
Sea \(X\) una variable aleatoria discreta que puede tomar valores \(\Omega = \{x_1, x_2, \dots , x_n\}\) con probabilidades \(p_1, p_2, ..., p_n\), tal que:
\[P(X = x_i) = p_i, \quad i = 1, ..., n, \quad \sum_{i=1}^{n} p_i = 1\]
Si \(\{x_1, x_2, \dots , x_n\}\) son categorías, tenemos una v.a. cualitativa discreta. Ejemplo: nacionalidades.
Si \(\{x_1, x_2, \dots , x_n\}\) son números enteros, tenemos una v.a. cuantitativa discreta. Ejemplo: distribución uniforme discreta, lanzamiento de un dado.
Generación de variables cualitativas: crea un script de cero, programa lo indicado debajo y ejecútalo
📝 Define un vector que contenta el espacio muestral del experimento “lanzamiento de una moneda”.
📝 Use la función sample para generar una muestra con 100 realizaciones de este experimento.
📝 Utilice la tabla de frecuencias para calcular las probabilidades empíricas de cada suceso.
📝 Use la función sample para generar una muestra con 100 realizaciones de este experimento. Determine que la probabilidad de cara es 3/4 y la de cruz es 1/4. Utilice la tabla de frecuencias para calcular las probabilidades empíricas de cada suceso.
📝 Considere el experimento “lanzamiento de un dado” justo.
📝 Considere el experimento “lanzamiento de un dado” justo. Aproxime por simulación la probabilidad de sacar un número mayor que 4 y compare con la teórica.
📝 Considere el experimento “lanzamiento de un dado” justo. Aproxime por simulación la probabilidad de sacar un número mayor que 4 y compare con la teórica. Represente la diferencia entre la aproximada y la teórica a medida que aumentamos el número de replicas.
n <- 1000
omega <- c(1:6)
prob <- rep(1/6, 6)
prop_teorica <- 1/6 + 1/6
vec_prop_aprox <- numeric(length = n)*NA
for(i in 1:n){
muestra <- sample(omega, size = i, replace = TRUE, prob = prob)
vec_prop_aprox[i] <- mean(muestra > 4)
}
plot(1:n, vec_prop_aprox - prop_teorica, type = "l")
abline(h = 0, col = "red")📝 Repita el ejercicio 7 pero use la función sapply.
Los principios de conteo permiten determinar el número de resultados posibles en experimentos aleatorios sin enumerarlos directamente.
Permutaciones
Combinaciones
Variaciones
Número de formas de ordenar todos los elementos de un conjunto.
\[P(n) = n!\]
Si solo se ordenan \(k\) elementos de \(n\):
\[P(n, k) = \frac{n!}{(n - k)!}\]
El orden importa.
Número de formas de elegir elementos sin importar el orden.
\[C(n, k) = \frac{n!}{k!(n - k)!}\]
El orden no importa.
Número de formas de elegir y ordenar k elementos de un conjunto de \(n\).
\[V(n, k) = \frac{n!}{(n - k)!}\]
Se eligen y se ordenan.
En R, hay un estandar en la terminología para nombrar a las diferentes funciones relacionadas con una distribución concreta, llamémosla ~:
d~(): devuelve la densidad (continua) o función de probabilidad (discreta).p~(): devuelve la función de distribución.q~(): devuelve la función cuantíl.r~(): genera números aleatorios de esa distribución.Los argumentos específicos de estas funciones para cada distribución dependerán principalmente del número de parámetros que tenga la distribución. Las distribuciones más conocidas se encuentran en el paquete R base.
| Distribución | Prefijo | Función de densidad (d) |
Parámetros principales |
|---|---|---|---|
| Bernoulli | binom | dbinom(x, 1, prob) |
prob: probabilidad de éxito (1) |
| Binomial | binom | dbinom(x, size, prob) |
size: n. de ensayos, prob: probabilidad de éxito por ensayo |
| Geométrica | geom | dgeom(x, prob) |
prob: probabilidad de éxito por intento |
| Binomial negativa | nbinom | dnbinom(x, size, prob) |
size: n. de éxitos deseados, prob: probabilidad de éxito |
| Hipergeométrica | hyper | dhyper(x, m, n, k) |
m: éxitos en población, n: fracasos, k: tamaño de muestra |
| Poisson | pois | dpois(x, lambda) |
lambda: media de eventos esperados en un intervalo |
| Distribución | Prefijo | Función de densidad (d) |
Parámetros principales |
|---|---|---|---|
| Uniforme | unif | dunif(x, min, max) |
min, max: límites inferior y superior |
| Normal | norm | dnorm(x, mean, sd) |
mean: media, sd: desviación estándar |
| Exponencial | exp | dexp(x, rate) |
rate: tasa de ocurrencia (lambda), media = 1/rate |
| Gamma | gamma | dgamma(x, shape, rate) |
shape: forma (alpha), rate: tasa (lambda); alternativa: scale = 1/rate |
| Beta | beta | dbeta(x, shape1, shape2) |
shape1, shape2: parámetros de forma (alpha, beta), definen la asimetría |
| Log-normal | lnorm | dlnorm(x, meanlog, sdlog) |
meanlog, sdlog: media y desviación estándar del logaritmo |
| Chi-cuadrado | chisq | dchisq(x, df) |
df: grados de libertad |
| t de Student | t | dt(x, df) |
df: grados de libertad |
| F de Snedecor | f | df(x, df1, df2) |
df1, df2: grados de libertad del numerador y denominador |
| Weibull | weibull | dweibull(x, shape, scale) |
shape: forma, scale: escala |
| Cauchy | cauchy | dcauchy(x, location, scale) |
location: ubicación (mediana), scale: parámetro de escala |
Generación de variables cualitativas: crea un script de cero, programa lo indicado debajo y ejecútalo
📝 Calcule \(P(X \geq 10)\) para \(X\sim Bin(n = 20, p = 0.7)\).
📝 Genere \(100\) realizaciones de una variable aleatoria \(X\sim N(0,1)\). Estime y represente su densidad.
📝 Calcule la probabilidad \(P(X \leq 0.5)\) y \(P(X \geq 0.5)\) siendo \(X \sim N(0,1)\).
📝 Represente la densidad de la distribución Normal y de la t-student con 1, 5 y 25 grados de libertad.
x <- seq(-3, 3, length.out = 1000)
plot(x, dnorm(x), type = "l", col = "blue", lwd = 2, ylab = "Densidad", xlab = "x",
main = "Distribución Normal vs t de Student")
lines(x, dt(x, df = 1), col = "red", lwd = 2)
lines(x, dt(x, df = 5), col = "orange", lwd = 2)
lines(x, dt(x, df = 25), col = "yellow", lwd = 2)
legend("topright",
legend = c("Normal(0,1)", "t (df=1)", "t (df=5)", "t (df=25)"),
col = c("blue", "red", "orange", "yellow"),
lty = 1, lwd = 2, bty = "n")Queremos simular datos \(X \sim \mathcal{N}(\mu, \Sigma)\) con:
Podemos simular variable aleatorias de esta distribución de dos formas:
Vía descomposición de Cholesky.
Utilizando una librería que implementa la función.
Sea \(Z \sim \mathcal{N}_d(0, I_d)\), y sea \(\Sigma\) una matriz simétrica definida positiva. Si \(L\) es tal que \(\Sigma = L L^\top\) (descomposición de Cholesky), entonces:
\[X = \mu + L Z \sim \mathcal{N}_d(\mu, \Sigma)\]
\(\mathbb{E}[X] = \mu + L \mathbb{E}[Z] = \mu\)
\(\text{Cov}(X) = L \text{Cov}(Z) L^\top = L I_d L^\top = \Sigma\)
\(X\) es una combinación lineal de normales, por lo tanto, también es normal.
Generación de normales bivariada vía Descomposición de Cholesky:
\[X = (X_1, X_2) \sim N_2 \big(\mu, \Sigma \big)\] donde \(\mu = (\mu_1, \mu_2)\) y \(\Sigma = \begin{pmatrix} \sigma_{X_1}^2 & \sigma_{X_1X_2} \\ \sigma_{X_2X_1} & \sigma_{X_2}^2 \end{pmatrix}\).
📝 Cree un vector mu para la media y una matriz sigma para la matriz de covarianza tal que:
\[\mu = (2, 3), \qquad \Sigma = \begin{pmatrix} 4 & 2 \\ 2 & 3 \end{pmatrix}.\]
📝 Obtenga la descomposición de Cholerky de la matriz de covarianzas:
📝 Genere la matriz \(Z \sim N_2(0, I_d)\) que nos permita generar \(n=500\) realizaciones:
📝 Genere las \(500\) realizaciones de \(X\) usando la fórmula y represente su gráfico de dispersión:
https://cran.r-project.org/web/views/Distributions.html#base
Semilla set.seed(): Fijar para obtener siempre los mismos resultados.
Función manipulate::manipulate(): permite ejecutar un gráfico con diferentes parámetros.
Hay 3 puertas: detrás de una hay un coche (premio) y detrás de las otras dos cabras.
El concursante elige una puerta (sin abrirla).
El presentador, que sabe dónde está el coche, abre una de las otras dos puertas mostrando siempre una cabra.
Se ofrece al concursante la opción de mantener su elección inicial o cambiar a la otra puerta cerrada.
Pregunta: ¿conviene cambiar o mantener? Simula el experimento y estima la probabilidad de ganar si cambias y si mantienes.
📝 Utilice 100000 simulaciones para estimar la probabilidad y compare con los valores teóricos.
📝 ¿Cómo cambian las probabilidades si tenemos 100 puertas en vez de 3 y el presentador abre todas las que no son el premio excepto 1?
¿Cuál es la probabilidad de que, en un grupo de \(n\) personas, al menos dos compartan cumpleaños?
📝 Estime la probabilidad por simulación para un grupo de \(n = 23\) personas. Asuma que cada año tiene 365 días y utilice.
n_replicates <- 1000
n <- 23
dias <- 365
# Simula todos los cumpleaños de golpe
cumples_matrix <- matrix(sample(1:dias, n * n_replicates, replace = TRUE),
nrow = n_replicates, ncol = n)
# Detecta filas con duplicados
comparten_cumple <- apply(cumples_matrix, 1, function(x) any(duplicated(x)))
prob_sim <- mean(comparten_cumple)📝 Repita el ejercicio anterior usando la función replicate.
📝 Grafique la probabilidad para un rango de valores de n desde 2 hasta 80.
Antonio Elías • Curso de R para Estadística