2  Repaso de probabilidad

La estadística bayesiana se apoya en el cálculo de probabilidades. Este capítulo repasa los conceptos básicos que necesitaremos: frecuencias muestrales, distribuciones de frecuencias, sucesos aleatorios, las distintas definiciones de probabilidad, la probabilidad condicionada y las variables aleatorias con sus distribuciones más importantes.

2.1 Frecuencias muestrales

Definición 2.1 (Frecuencias muestrales) Dada una muestra de tamaño \(n\) de una variable \(X\), para cada valor \(x_i\) de la variable observado en la muestra se define

  • Frecuencia absoluta \(n_i\): número de veces que el valor \(x_i\) aparece en la muestra.
  • Frecuencia relativa \(f_i\): proporción de veces que el valor \(x_i\) aparece en la muestra,

\[f_i = \frac{n_i}{n}\]

Ejemplo 2.1 Si tomamos una muestra aleatoria de 10 personas en la que hay 6 mujeres, la frecuencia absoluta de mujeres es \(n_i=6\) y la frecuencia relativa es

\[ f_i= \frac{6}{10}=0{,}6. \]

2.2 Distribuciones de frecuencias

Las frecuencias muestrales se organizan habitualmente en tablas de frecuencias, que muestran para cada valor observado \(x_i\) su frecuencia absoluta \(n_i\) o su frecuencia relativa \(f_i\).

Ejemplo 2.2 Número de hijos en una muestra de 25 familias.

# Data frame número de hijos
df <- tibble(
  hijos = rep(c(0,1,2,3,4),
              c(2,6,14,2,1))
)
# Tabla de frecuencias
df |>
  tabyl(hijos) |>
  kable()
hijos n percent
0 2 0.08
1 6 0.24
2 14 0.56
3 2 0.08
4 1 0.04
# Diagrama de barras
df |> ggplot(aes(x = hijos)) +
  geom_bar(width = 0.2, fill = myblue) +
  theme_minimal() +
  labs(x = "Número de hijos", y = "Frecuencia absoluta")
Diagrama de barras con el número de familias según su número de hijos.
Figura 2.1: Distribución de frecuencias absolutas del número de hijos.

Ejemplo 2.3 Grupos sanguíneos de una muestra de 30 personas.

# Data frame grupo sanguíneo
df <- tibble(
  grupo = rep(c("0","A","B","AB"),
              c(5,14,8,3))
)
# Tabla de frecuencias
df |>
  tabyl(grupo) |>
  kable()
grupo n percent
0 5 0.1666667
A 14 0.4666667
AB 3 0.1000000
B 8 0.2666667

Ejercicio 2.1 El conjunto de datos neonatos contiene información sobre 320 recién nacidos en varios hospitales de una ciudad.

  1. Crear una tabla de frecuencias absolutas y relativas para la variable sexo.
  2. Crear una tabla de frecuencias absolutas y relativas para la variable tabaco.
  3. Representar gráficamente la distribución de frecuencias absolutas de la variable tabaco.
  4. Crear una tabla de frecuencias absolutas y relativas para la variable apgar1.
  5. Representar gráficamente la distribución de frecuencias relativas de la variable apgar1.
Solución
df_neonatos <- read_csv("datos/neonatos.csv", show_col_types = FALSE)
tabyl(df_neonatos, sexo) |> kable()
sexo n percent
hombre 157 0.490625
mujer 163 0.509375
tabyl(df_neonatos, tabaco) |> kable()
tabaco n percent
No 220 0.6875
Si 100 0.3125
df_neonatos |> ggplot(aes(x = tabaco)) +
  stat_count(width = 0.2, fill = myblue) +
  theme_minimal() +
  labs(x = "Tabaco", y = "Frecuencia absoluta")

tabyl(df_neonatos, apgar1) |> kable()
apgar1 n percent
2 4 0.012500
3 21 0.065625
4 38 0.118750
5 81 0.253125
6 97 0.303125
7 46 0.143750
8 28 0.087500
9 5 0.015625
df_neonatos |> ggplot(aes(x = apgar1, y = after_stat(prop))) +
  stat_count(width = 0.2, fill = myblue) +
  theme_minimal() +
  labs(x = "Apgar 1", y = "Frecuencia relativa")

2.3 Distribuciones de frecuencias bidimensionales

Cuando se consideran dos variables, sus frecuencias se organizan en una tabla de contingencia, que muestra para cada combinación de valores de las variables su frecuencia absoluta o relativa.

Ejemplo 2.4 Sexo y grupo sanguíneo de una muestra de 30 personas.

# Data frame sexo y grupo sanguíneo
df <- tibble(
  sexo = rep(c("Hombre","Mujer"),
             c(16,14)),
  grupo = c(rep("0",3), rep("A",8), rep("B",4), rep("AB",1),
            rep("0",2), rep("A",6), rep("B",4), rep("AB",2))
)
# Tabla bidimensional de frecuencias absolutas
df |>
  tabyl(grupo, sexo) |>
  kable()
grupo Hombre Mujer
0 3 2
A 8 6
AB 1 2
B 4 4
# Tabla bidimensional de frecuencias relativas
df |>
  tabyl(grupo, sexo) |>
  adorn_percentages("all") |>
  adorn_pct_formatting() |>
  kable()
grupo Hombre Mujer
0 10.0% 6.7%
A 26.7% 20.0%
AB 3.3% 6.7%
B 13.3% 13.3%

2.3.1 Distribuciones de frecuencias marginales

Sumando por filas o por columnas de una tabla de contingencia se obtienen las distribuciones marginales de cada variable, que muestran la frecuencia de cada valor de una variable sin tener en cuenta la otra.

Ejemplo 2.5  

# Distribución marginal del sexo
df |>
  tabyl(grupo, sexo) |>
  adorn_totals("row") |>
  kable()
grupo Hombre Mujer
0 3 2
A 8 6
AB 1 2
B 4 4
Total 16 14
# Distribución marginal del grupo sanguíneo
df |>
  tabyl(grupo, sexo) |>
  adorn_totals("col") |>
  kable()
grupo Hombre Mujer Total
0 3 2 5
A 8 6 14
AB 1 2 3
B 4 4 8

Ejercicio 2.2 El conjunto de datos neonatos contiene información sobre 320 recién nacidos en varios hospitales de una ciudad.

  1. Crear una tabla de frecuencias absolutas bidimensional para las variables edad y tabaco. Añadir las frecuencias marginales de cada variable.
  2. Crear una tabla de frecuencias relativas bidimensional para las variables tabaco y apgar1 para cada grupo de edad.
Solución
df_neonatos |>
  tabyl(edad, tabaco) |>
  adorn_totals(c("row", "col")) |>
  kable()
edad No Si Total
mayor de 20 140 78 218
menor de 20 80 22 102
Total 220 100 320
df_neonatos |>
  tabyl(tabaco, apgar1, edad) |>
  adorn_percentages("all") |>
  adorn_pct_formatting() |>
  kable()
tabaco 2 3 4 5 6 7 8 9
No 0.0% 1.4% 3.7% 11.5% 23.9% 13.3% 8.7% 1.8%
Si 0.9% 3.2% 6.4% 12.8% 7.8% 2.3% 2.3% 0.0%
tabaco 2 3 4 5 6 7 8 9
No 1.0% 2.9% 9.8% 24.5% 24.5% 10.8% 3.9% 1.0%
Si 1.0% 7.8% 5.9% 2.9% 2.9% 1.0% 0.0% 0.0%

2.4 Distribuciones de frecuencias condicionales

Cada fila o columna de una tabla de contingencia es una distribución de frecuencias condicional, que muestra la frecuencia de cada valor de una variable para un valor fijo de la otra.

Ejemplo 2.6  

# Distribución condicional del grupo sanguíneo para hombres
df |>
  tabyl(grupo, sexo) |>
  kable() |>
  column_spec(2, color = myblue)
grupo Hombre Mujer
0 3 2
A 8 6
AB 1 2
B 4 4
# Distribución condicional del sexo para el grupo A
df |>
  tabyl(grupo, sexo) |>
  kable() |>
  row_spec(2, color = myblue)
grupo Hombre Mujer
0 3 2
A 8 6
AB 1 2
B 4 4

El siguiente código permite obtener la distribución de los grupos sanguíneos de las mujeres, y el que le sigue, las distribuciones condicionales para todas las categorías del sexo.

# Filtramos las mujeres
filter(df, sexo == "Mujer") |>
  tabyl(grupo) |>
  kable()
grupo n percent
0 2 0.1428571
A 6 0.4285714
AB 2 0.1428571
B 4 0.2857143
df |>
  split(~sexo) |>
  map(~tabyl(.x, grupo)) |>
  kable()
grupo n percent
0 3 0.1875
A 8 0.5000
AB 1 0.0625
B 4 0.2500
grupo n percent
0 2 0.1428571
A 6 0.4285714
AB 2 0.1428571
B 4 0.2857143

Ejercicio 2.3 El conjunto de datos neonatos contiene información sobre 320 recién nacidos en varios hospitales de una ciudad.

  1. Crear las tablas de frecuencias condicionales de tabaco para cada grupo de edad.
  2. Crear las tablas de frecuencias condicionales de apgar1 para cada grupo de tabaco.
  3. Crear la tabla de frecuencias condicionales de apgar1 para hijos de madres fumadoras de menos de 20 años.
Solución
df_neonatos |>
  split(~edad) |>
  map(~tabyl(.x, tabaco)) |>
  kable()
tabaco n percent
No 140 0.6422018
Si 78 0.3577982
tabaco n percent
No 80 0.7843137
Si 22 0.2156863
df_neonatos |>
  split(~tabaco) |>
  map(~tabyl(.x, apgar1)) |>
  kable()
apgar1 n percent
2 1 0.0045455
3 6 0.0272727
4 18 0.0818182
5 50 0.2272727
6 77 0.3500000
7 40 0.1818182
8 23 0.1045455
9 5 0.0227273
apgar1 n percent
2 3 0.03
3 15 0.15
4 20 0.20
5 31 0.31
6 20 0.20
7 6 0.06
8 5 0.05
filter(df_neonatos, tabaco == "Si", edad  == "menor de 20") |>
  tabyl(apgar1) |>
  kable()
apgar1 n percent
2 1 0.0454545
3 8 0.3636364
4 6 0.2727273
5 3 0.1363636
6 3 0.1363636
7 1 0.0454545

2.5 Experimentos aleatorios

Definición 2.2 (Experimento aleatorio) Un experimento aleatorio es un experimento que cumple dos condiciones:

  1. El conjunto de posibles resultados es conocido.
  2. Es no determinista, es decir, no se puede predecir con absoluta certeza el resultado del experimento.

En algunos contextos se añade la condición de que el experimento sea reproducible bajo las mismas condiciones, aunque esto no siempre es posible. Podemos repetir el lanzamiento de una moneda en las mismas condiciones, pero no podemos repetir el nacimiento de un niño en las mismas condiciones.

2.6 Espacio muestral

Definición 2.3 (Espacio muestral) Al conjunto \(\Omega\) de todos los posibles resultados de un experimento aleatorio se le llama espacio muestral.

Ejemplo 2.7 Algunos ejemplos de espacios muestrales son:

  • Lanzamiento de una moneda: \(\Omega=\{\mbox{C},\mbox{X}\}\).
  • Lanzamiento de un dado: \(\Omega=\{1,2,3,4,5,6\}\).
  • Grupo sanguíneo de un individuo seleccionado al azar: \(\Omega=\{\mbox{A},\mbox{B},\mbox{AB},\mbox{0}\}\).
  • Estatura de un individuo seleccionado al azar: \(\Omega=\mathbb{R}^+\).

2.6.1 Diagrama de árbol

Ejemplo 2.8 El siguiente diagrama de árbol representa el espacio muestral de un experimento aleatorio en el que se observan el sexo y el grupo sanguíneo de un individuo al azar.

library(data.tree)
df <- tibble(
  sexo = rep(c("Hombre","Mujer"),
             c(14,16)),
  grupo = c(rep("0",2), rep("A",6), rep("B",4), rep("AB",2),
            rep("0",3), rep("A",8), rep("B",4), rep("AB",1))
)
df$pathString <- paste("Ω", df$sexo, df$grupo, sep = "/")
espacio <- as.Node(df)
print(espacio)
    levelName
1  Ω         
2   ¦--Hombre
3   ¦   ¦--0 
4   ¦   ¦--A 
5   ¦   ¦--B 
6   ¦   °--AB
7   °--Mujer 
8       ¦--0 
9       ¦--A 
10      ¦--B 
11      °--AB
SetGraphStyle(espacio, rankdir = "LR")
SetEdgeStyle(espacio, arrowhead = "vee")
SetNodeStyle(espacio,
             style = "filled, rounded",
             shape = "box",
             fillcolor = "#89D3F3",
             fontcolor = "black")
plot(espacio)
Figura 2.2: Diagrama de árbol del espacio muestral del sexo y el grupo sanguíneo.

2.7 Sucesos aleatorios

Definición 2.4 (Suceso aleatorio) Un suceso aleatorio es cualquier subconjunto del espacio muestral \(\Omega\) de un experimento aleatorio.

Ejemplo 2.9 Algunos ejemplos de sucesos aleatorios son:

  • En el lanzamiento de un dado, el suceso \(A\) de obtener un número par: \(A=\{2,4,6\}\).
  • En la medición del nivel de colesterol en sangre de un individuo, el suceso \(B\) de que el nivel de colesterol sea superior a 200 mg/dL: \(B=\{x\in \mathbb{R}^+: x>200\}\).

2.8 Operaciones entre sucesos

Puesto que los sucesos son conjuntos, mediante la teoría de conjuntos se pueden definir las siguientes operaciones entre sucesos: unión, intersección, complementario y diferencia.

2.8.1 Unión de sucesos

Definición 2.5 (Suceso unión) Dados dos sucesos \(A,B\subseteq \Omega\), se llama suceso unión de \(A\) y \(B\), y se denota \(A\cup B\), al suceso formado por los elementos de \(A\) junto con los elementos de \(B\):

\[A\cup B = \{x\,|\, x\in A \mbox{ o } x\in B\}.\]

Unión de dos sucesos.

El suceso unión \(A\cup B\) ocurre siempre que ocurre \(A\) o \(B\).

2.8.2 Intersección de sucesos

Definición 2.6 (Suceso intersección) Dados dos sucesos \(A,B\subseteq \Omega\), se llama suceso intersección de \(A\) y \(B\), y se denota \(A\cap B\), al suceso formado por los elementos comunes de \(A\) y \(B\):

\[A\cap B = \{x\,|\, x\in A \mbox{ y } x\in B\}.\]

Intersección de dos sucesos.

El suceso intersección \(A\cap B\) ocurre siempre que ocurren \(A\) y \(B\).

Diremos que dos sucesos son incompatibles si su intersección es vacía.

2.8.3 Contrario de un suceso

Definición 2.7 (Suceso contrario) Dado un suceso \(A\subseteq \Omega\), se llama suceso contrario o complementario de \(A\), y se denota \(\overline A\), al suceso formado por los elementos de \(\Omega\) que no pertenecen a \(A\):

\[\overline A = \{x\,|\, x\not\in A\}.\]

Contrario de un suceso.

El suceso contrario \(\overline A\) ocurre siempre que no ocurre \(A\).

2.8.4 Diferencia de sucesos

Definición 2.8 (Suceso diferencia) Dados dos sucesos \(A,B\subseteq \Omega\), se llama suceso diferencia de \(A\) y \(B\), y se denota \(A-B\), al suceso formado por los elementos de \(A\) que no pertenecen a \(B\):

\[A-B = \{x\,|\, x\in A \mbox{ y } x\not\in B\} = A \cap \overline B.\]

Diferencia de sucesos.

El suceso diferencia \(A-B\) ocurre siempre que ocurre \(A\) pero no ocurre \(B\).

Ejemplo 2.10 Dado el espacio muestral correspondiente al lanzamiento de un dado, \(\Omega=\{1,2,3,4,5,6\}\), y los sucesos \(A=\{2,4,6\}\) y \(B=\{1,2,3,4\}\):

  • La unión de \(A\) y \(B\) es \(A\cup B=\{1,2,3,4,6\}\).
  • La intersección de \(A\) y \(B\) es \(A\cap B=\{2,4\}\).
  • El contrario de \(A\) es \(\overline A=\{1,3,5\}\).
  • Los sucesos \(A\) y \(\overline A\) son incompatibles.
  • La diferencia de \(A\) y \(B\) es \(A-B=\{6\}\), y la diferencia de \(B\) y \(A\) es \(B-A=\{1,3\}\).

2.9 Definiciones de probabilidad

2.9.1 Definición clásica de probabilidad

Definición 2.9 (Probabilidad de Laplace) Dado un espacio muestral \(\Omega\) de un experimento aleatorio en el que todos los elementos de \(\Omega\) son equiprobables, la probabilidad de un suceso \(A\subseteq \Omega\) es el cociente entre el número de elementos de \(A\) y el número de elementos de \(\Omega\):

\[P(A) = \frac{|A|}{|\Omega|} = \frac{\mbox{nº casos favorables a } A}{\mbox{nº casos posibles}}\]

Esta definición es ampliamente utilizada, pero tiene importantes restricciones:

  • Es necesario que todos los elementos del espacio muestral tengan la misma probabilidad de ocurrir (equiprobabilidad).
  • No puede utilizarse con espacios muestrales infinitos, ni con espacios de los que no se conoce el número de casos posibles.
Precaución

Estas condiciones no se cumplen en muchos experimentos aleatorios reales.

Ejemplo 2.11 Dado el espacio muestral correspondiente al lanzamiento de un dado, \(\Omega=\{1,2,3,4,5,6\}\), y el suceso \(A=\{2,4,6\}\), la probabilidad de \(A\) es

\[P(A) = \frac{|A|}{|\Omega|} = \frac{3}{6} = 0{,}5.\]

Sin embargo, si consideramos el espacio muestral correspondiente a observar el grupo sanguíneo de un individuo al azar, \(\Omega=\{0,A,B,AB\}\), no podemos usar la definición clásica para calcular la probabilidad de que tenga grupo sanguíneo \(A\),

\[P(A) \neq \frac{|A|}{|\Omega|} = \frac{1}{4} = 0{,}25,\]

porque los grupos sanguíneos no son igualmente probables en las poblaciones humanas.

2.9.2 Definición frecuentista de probabilidad

Teorema 2.1 (Ley de los grandes números) Cuando un experimento aleatorio se repite un gran número de veces, las frecuencias relativas de los sucesos del experimento tienden a estabilizarse en torno a cierto número, que es precisamente su probabilidad.

Lanzamiento de una moneda.

Definición 2.10 (Probabilidad frecuentista) Dado un espacio muestral \(\Omega\) de un experimento aleatorio reproducible, la probabilidad de un suceso \(A\subseteq \Omega\) es la frecuencia relativa del suceso \(A\) en infinitas repeticiones del experimento:

\[P(A) = \lim_{n\rightarrow \infty}\frac{n_{A}}{n}\]

Aunque esta definición es muy útil en experimentos científicos reproducibles, tiene serios inconvenientes:

  • Sólo se puede calcular una aproximación de la probabilidad real.
  • La repetición del experimento debe hacerse en las mismas condiciones.

Ejemplo 2.12 Dado el espacio muestral correspondiente al lanzamiento de una moneda, \(\Omega=\{C,X\}\), si después de lanzar la moneda 100 veces obtenemos 54 caras, la probabilidad de \(C\) es aproximadamente

\[P(C) \approx \frac{n_C}{n} = \frac{54}{100} = 0{,}54.\]

Ejemplo 2.13 Si consideramos el espacio muestral correspondiente a observar el grupo sanguíneo de un individuo al azar, \(\Omega=\{0,A,B,AB\}\), y tomamos una muestra aleatoria de 1000 personas en la que 412 tienen grupo sanguíneo \(A\), la probabilidad del grupo sanguíneo \(A\) es aproximadamente

\[P(A) \approx \frac{n_A}{n} = \frac{412}{1000} = 0{,}412.\]

2.9.3 Definición subjetiva de probabilidad

Definición 2.11 (Probabilidad subjetiva) Dado un espacio muestral \(\Omega\) de un experimento aleatorio, la probabilidad de un suceso \(A\subseteq \Omega\) es una medida de la confianza que un individuo tiene en que el suceso \(A\) ocurra, y se expresa mediante un número real entre 0 y 1.

  • Se basa en la experiencia personal, el conocimiento previo y la información disponible, por lo que es distinta para cada individuo y puede cambiar con nueva información o experiencias.
  • No existe una fórmula matemática para calcularla.

Es la definición de probabilidad más usada en nuestras decisiones cotidianas, pero también tiene inconvenientes:

  • Es subjetiva, por lo que puede tener sesgos.
  • No se puede calcular de forma objetiva, así que no es posible contrastar su valor con la realidad.

Ejemplo 2.14 Basándome en el tiempo de los días previos, puedo hacer la predicción de que es moderadamente probable que llueva mañana. Sin embargo, mi abuelo puede hacer esta otra predicción: me duele la rodilla, así que mañana va a llover.

2.9.4 Definición axiomática de probabilidad

Definición 2.12 (Probabilidad de Kolmogórov) Dado un espacio muestral \(\Omega\) de un experimento aleatorio, una función de probabilidad es una aplicación que asocia a cada suceso \(A\subseteq \Omega\) un número real \(P(A)\) que cumple los siguientes axiomas:

  1. La probabilidad de un suceso cualquiera es positiva o nula: \(P(A)\geq 0\).
  2. La probabilidad del suceso seguro es igual a la unidad: \(P(\Omega)=1\).
  3. La probabilidad de la unión de dos sucesos incompatibles (\(A\cap B=\emptyset\)) es igual a la suma de sus probabilidades: \(P(A\cup B) = P(A)+P(B)\).

Teorema 2.2 Si \(P\) es una función de probabilidad de un espacio muestral \(\Omega\), entonces para cualesquiera sucesos \(A, B\subseteq \Omega\) se cumple:

  1. \(P(\overline A) = 1-P(A)\).
  2. \(P(\emptyset)= 0\).
  3. Si \(A\subseteq B\) entonces \(P(A)\leq P(B)\).
  4. \(P(A) \leq 1\).
  5. \(P(A-B) = P(A)-P(A\cap B)\).
  6. \(P(A\cup B)= P(A) + P(B) - P(A\cap B)\).
  7. Si \(A = \{e_1,e_2,\ldots,e_n\}\), entonces \(P(A)=\sum_{i=1}^n P(e_i)\).

2.9.5 Interpretación de la probabilidad

NotaDos interpretaciones
  • Frecuentista: frecuencia relativa a largo plazo de un suceso en un experimento aleatorio reproducible.
  • Bayesiana: verosimilitud o plausibilidad de un suceso, dada la información disponible.
  • La mayor incertidumbre corresponde a \(P(A)=0{,}5\): es igual de probable que ocurra \(A\) que no ocurra.
  • La menor incertidumbre corresponde a \(P(A)=1\) (\(A\) sucederá con absoluta certeza) y a \(P(A)=0\) (\(A\) no sucederá con absoluta certeza).

2.10 Probabilidad condicionada

En algunas ocasiones tenemos información sobre el experimento antes de realizarlo. Habitualmente esa información se da en forma de un suceso \(B\) del mismo espacio muestral que sabemos que ha ocurrido. En tal caso, \(B\) es un suceso condicionante, y la probabilidad de otro suceso \(A\) se expresa como

\[P(A \mid B),\]

que se lee probabilidad de \(A\) dado \(B\) o probabilidad de \(A\) bajo la condición de \(B\).

Los condicionantes suelen cambiar el espacio muestral del experimento y, por tanto, las probabilidades de sus sucesos.

Ejemplo 2.15 Supongamos que tenemos una muestra de 100 hombres y 100 mujeres con las siguientes frecuencias:

\[ \begin{array}{|c|c|c|} \hline & \mbox{No fumadores} & \mbox{Fumadores} \\ \hline \mbox{Mujeres} & 80 & 20 \\ \hline \mbox{Hombres} & 60 & 40 \\ \hline \end{array} \]

Usando la definición frecuentista de probabilidad, la probabilidad de que una persona elegida al azar sea fumadora es

\[P(\mbox{Fumadora})= \frac{60}{200}=0{,}3.\]

Sin embargo, si sabemos que la persona elegida es mujer, la muestra se reduce a la primera fila, y la probabilidad de que sea fumadora es

\[P(\mbox{Fumadora} \mid \mbox{Mujer}) = \frac{20}{100}=0{,}2.\]

Definición 2.13 (Probabilidad condicionada) Dado un espacio muestral \(\Omega\) de un experimento aleatorio y dos sucesos \(A,B\subseteq \Omega\), la probabilidad de \(A\) condicionada por \(B\) es

\[P(A \mid B) = \frac{P(A\cap B)}{P(B)},\]

siempre que \(P(B)\neq 0\).

Esta definición permite calcular probabilidades condicionadas sin tener que alterar el espacio muestral original del experimento.

Ejemplo 2.16 En el ejemplo anterior,

\[P(\mbox{Fumadora} \mid \mbox{Mujer})= \frac{P(\mbox{Fumadora}\cap \mbox{Mujer})}{P(\mbox{Mujer})} = \frac{20/200}{100/200}=\frac{20}{100}=0{,}2.\]

2.10.1 Probabilidad del suceso intersección

A partir de la definición de probabilidad condicionada se obtiene la fórmula para calcular la probabilidad de la intersección de dos sucesos:

\[P(A\cap B) = P(A)P(B \mid A) = P(B)P(A \mid B).\]

Ejemplo 2.17 En una población hay un 30 % de fumadores, y se sabe que el 40 % de los fumadores tiene cáncer de pulmón. La probabilidad de que una persona elegida al azar sea fumadora y tenga cáncer de pulmón es

\[ \begin{align*} P(\mbox{Fumadora}\cap \mbox{Cáncer}) &= P(\mbox{Fumadora})\,P(\mbox{Cáncer} \mid \mbox{Fumadora}) \\ &= 0{,}3 \times 0{,}4 = 0{,}12. \end{align*} \]

2.11 Independencia de sucesos

En ocasiones, la ocurrencia del suceso condicionante no cambia la probabilidad original del suceso principal.

Definición 2.14 (Sucesos independientes) Dado un espacio muestral \(\Omega\) de un experimento aleatorio, dos sucesos \(A,B\subseteq \Omega\) son independientes si la probabilidad de \(A\) no se ve alterada al condicionar por \(B\), y viceversa, es decir,

\[P(A \mid B) = P(A) \quad \mbox{y} \quad P(B \mid A)=P(B),\]

si \(P(A)\neq 0\) y \(P(B)\neq 0\).

Esto significa que la ocurrencia de un suceso no aporta información relevante para cambiar la incertidumbre sobre el otro. Cuando dos sucesos son independientes, la probabilidad de su intersección es igual al producto de sus probabilidades:

\[P(A\cap B) = P(A)P(B).\]

2.11.1 Árboles de probabilidad con variables dependientes

Ejemplo 2.18 Sea una población en la que el 30 % de las personas fuma, y en la que la incidencia del cáncer de pulmón es del 40 % en fumadores y del 10 % en no fumadores.

El espacio probabilístico del experimento aleatorio que consiste en elegir una persona al azar y medir las variables fumar y cáncer de pulmón se muestra a continuación.

Diagrama de árbol del espacio probabilístico de fumar y tener cáncer de pulmón.

2.11.2 Árboles de probabilidad con variables independientes

Ejemplo 2.19 El árbol de probabilidad asociado al experimento aleatorio que consiste en el lanzamiento de dos monedas se muestra a continuación.

Diagrama de árbol del espacio probabilístico del lanzamiento de dos monedas.

Ejemplo 2.20 Dada una población en la que hay un 40 % de hombres y un 60 % de mujeres, el experimento aleatorio que consiste en tomar una muestra aleatoria de tres personas tiene el árbol de probabilidad que se muestra a continuación.

Diagrama de árbol del espacio probabilístico del sexo de tres individuos elegidos al azar.

2.12 Variables aleatorias

Definición 2.15 (Variable aleatoria) Una variable aleatoria \(X\) es una función que asocia un número real a cada elemento del espacio muestral de un experimento aleatorio:

\[X:\Omega \rightarrow \mathbb{R}.\]

Al conjunto de posibles valores que puede tomar la variable se le llama rango o recorrido de la variable, y se representa por \(\mbox{Ran}(X)\).

En el fondo, una variable aleatoria es una variable cuyos valores provienen de la realización de un experimento aleatorio, y por tanto tendrá asociada una determinada distribución de probabilidad.

Ejemplo 2.21 La variable \(X\) que mide el número de personas infectadas con un virus en una muestra aleatoria de 10 personas es una variable aleatoria, cuyo rango es el conjunto de números enteros entre 0 y 10:

\[ \mbox{Ran}(X)=\{0,1,2,3,4,5,6,7,8,9,10\}. \]

2.12.1 Tipos de variables aleatorias

Las variables aleatorias se clasifican en dos tipos:

  • Discretas. Toman valores aislados y su rango es numerable. Por ejemplo, el número de hijos, el número de cigarrillos o el número de asignaturas aprobadas.
  • Continuas. Toman valores en un intervalo real y su rango no es numerable. Por ejemplo, el peso, la estatura, la edad o el nivel de colesterol.

2.13 Variables aleatorias discretas

Definición 2.16 (Función de probabilidad) La función de probabilidad de una variable aleatoria discreta \(X\) es una función \(f(x)\) que asocia a cada valor de la variable su probabilidad:

\[ f(x_i) = P(X=x_i). \]

Ejemplo 2.22 La función de probabilidad de la variable que mide el número de caras obtenidas al lanzar una moneda tres veces es

\[ \begin{array}{c|cccc} x & 0 & 1 & 2 & 3 \\ \hline f(x) & \frac{1}{8} & \frac{3}{8} & \frac{3}{8} & \frac{1}{8} \end{array} \]

2.13.1 Estadísticos de una variable aleatoria discreta

La media o esperanza de \(X\) es

\[ E(X) = \sum_{i} x_i f(x_i), \]

y la varianza es

\[ Var(X) = \sum_{i} (x_i - E(X))^2 f(x_i) = \sum_{i} x_i^2 f(x_i) - E(X)^2. \]

2.13.2 Distribución uniforme discreta

Definición 2.17 (Distribución uniforme discreta) Se dice que una variable aleatoria discreta \(X\) sigue un modelo de distribución uniforme discreto, \(X\sim U(n)\), si su rango es \(\mbox{Ran}(X)=\{1,\ldots,n\}\) y su función de probabilidad es constante:

\[ P(X=k) = \frac{1}{n} \quad \forall k=1,\ldots,n. \]

El modelo uniforme discreto se utiliza para modelar experimentos aleatorios con un número finito de resultados equiprobables, como el lanzamiento de un dado o la selección aleatoria de un individuo de una población finita.

Ejemplo 2.23 El modelo de distribución de probabilidad del resultado de lanzar un dado equilibrado es uniforme discreto \(U(6)\).

df <- tibble(
  x = 1:6, # Rango
  p = rep(1/6, 6) # Probabilidad
)
# Diagrama de barras
ggplot(df, aes(x = x, y = p)) +
  geom_bar(stat = "identity", width = 0.2, fill = myblue) +
  scale_x_continuous(breaks = 1:6) +
  labs(x = "X", y = "Probabilidad") +
  theme_minimal()
Diagrama de barras con seis barras de igual altura, una para cada resultado del dado.
Figura 2.3: Distribución uniforme discreta \(U(6)\).

2.13.3 Distribución binomial

Definición 2.18 (Distribución binomial) Se dice que una variable aleatoria discreta \(X\) sigue un modelo de distribución binomial, \(X\sim B(n, p)\), si su rango es \(\mbox{Ran}(X)=\{0,1,\ldots,n\}\) y su función de probabilidad es

\[ P(X=k) = \binom{n}{k} p^k (1-p)^{n-k} \quad k=0,1,\ldots,n, \]

donde \(n\) es el número de ensayos y \(p\) la probabilidad de éxito en cada ensayo.

El modelo binomial se utiliza para modelar el número de éxitos en \(n\) ensayos independientes con dos posibles resultados (éxito/fracaso), como el número de caras al lanzar \(n\) monedas o el número de individuos enfermos en una muestra de tamaño \(n\).

Sus estadísticos son

\[ E(X) = np \quad \mbox{y} \quad Var(X) = np(1-p). \]

Ejemplo 2.24 En una población hay el mismo número de hombres que de mujeres. La variable que mide el número de mujeres en una muestra aleatoria de 10 personas sigue una distribución binomial \(B(10, 0{,}5)\).

df <- tibble(
  x = 0:10,  # Rango
  p = dbinom(0:10, size = 10, prob = 0.5) # Probabilidad
)
# Diagrama de barras
ggplot(df, aes(x = x, y = p)) +
  geom_bar(stat = "identity", width = 0.2, fill = myblue) +
  scale_x_continuous(breaks = 0:10) +
  labs(x = "Número de mujeres", y = "Probabilidad") +
  theme_minimal()
Diagrama de barras de la distribución binomial con n = 10 y p = 0,5, simétrica alrededor de 5.
Figura 2.4: Distribución binomial \(B(10, 0{,}5)\).

2.13.3.1 Forma de la distribución binomial para distintos valores de \(n\) y \(p\)

params <- expand.grid(n = c(10, 30, 100), p = c(0.1, 0.5, 0.9))
df_binom <- params |>
  rowwise() |>
  mutate(x = list(0:n), prob = list(dbinom(0:n, size = n, prob = p))) |>
  unnest(cols = c(x, prob)) |>
  mutate(
    label = factor(
      paste0("n = ", n, ", p = ", p),
      levels = paste0("n = ", rep(c(10, 30, 100), 3), ", p = ", rep(c(0.1, 0.5, 0.9), each = 3))
    )
  )

df_binom |>
  ggplot(aes(x = x, y = prob)) +
  geom_bar(stat = "identity", width = 0.5, fill = myblue) +
  facet_wrap(~ label, scales = "free", nrow = 3) +
  labs(x = "X", y = "Probabilidad") +
  theme_minimal() +
  theme(strip.text = element_text(size = 11))
Nueve diagramas de barras de distribuciones binomiales combinando n = 10, 30 y 100 con p = 0,1, 0,5 y 0,9.
Figura 2.5: Forma de la distribución binomial para distintos valores de \(n\) y \(p\).

2.13.4 Distribución geométrica

Definición 2.19 (Distribución geométrica) Se dice que una variable aleatoria discreta \(X\) sigue un modelo de distribución geométrica, \(X\sim G(p)\), si su rango es \(\mbox{Ran}(X)=\{0,1,2,\ldots\}\) y su función de probabilidad es

\[ P(X=k) = (1-p)^{k}p \quad k=0,1,2,\ldots, \]

donde \(p\) es la probabilidad de éxito en cada ensayo.

El modelo geométrico se utiliza para modelar el número de fracasos necesarios hasta obtener el primer éxito en una serie de ensayos independientes con dos posibles resultados, como el número de pacientes sanos que se examinan hasta encontrar un paciente enfermo.

Sus estadísticos son

\[ E(X) = \frac{1-p}{p} \quad \mbox{y} \quad Var(X) = \frac{1-p}{p^2}. \]

Ejemplo 2.25 En una población hay aproximadamente un 30 % de fumadores. La variable que mide el número de personas no fumadoras que hay que examinar hasta encontrar la primera persona fumadora sigue una distribución geométrica \(G(0{,}3)\).

df <- tibble(
  x = 0:14,  # Rango truncado (número de fracasos)
  p = dgeom(0:14, prob = 0.3) # Probabilidad
)
# Diagrama de barras
ggplot(df, aes(x = x, y = p)) +
  geom_bar(stat = "identity", width = 0.2, fill = myblue) +
  scale_x_continuous(breaks = 0:14) +
  labs(x = "Número de no fumadoras hasta la primera fumadora", y = "Probabilidad") +
  theme_minimal()
Diagrama de barras decreciente con la probabilidad de encontrar la primera fumadora tras k no fumadoras.
Figura 2.6: Distribución geométrica \(G(0{,}3)\), truncada en 14 fracasos.

2.13.4.1 Forma de la distribución geométrica para distintos valores de \(p\)

ps <- c(0.1, 0.5, 0.9)
df_geom <- tibble(p = ps) |>
  rowwise() |>
  mutate(x = list(0:14), prob = list(dgeom(0:14, prob = p))) |>
  unnest(cols = c(x, prob)) |>
  mutate(label = factor(paste0("p == ", p),
                        levels = paste0("p == ", ps)))
df_geom |>
  ggplot(aes(x = x, y = prob)) +
  geom_bar(stat = "identity", width = 0.5, fill = myblue) +
  facet_wrap(~ label, nrow = 1, labeller = label_parsed) +
  labs(x = "X", y = "Probabilidad") +
  theme_minimal() +
  theme(strip.text = element_text(size = 11))
Tres diagramas de barras de distribuciones geométricas con p = 0,1, 0,5 y 0,9; cuanto mayor es p, más concentrada está la masa en valores bajos.
Figura 2.7: Forma de la distribución geométrica para distintos valores de \(p\).

2.13.5 Distribución binomial negativa

Definición 2.20 (Distribución binomial negativa) Se dice que una variable aleatoria discreta \(X\) sigue un modelo de distribución binomial negativa, \(X\sim BN(r, p)\), si su rango es \(\mbox{Ran}(X)=\{0, 1, 2, \ldots\}\) y su función de probabilidad es

\[ P(X=k) = \binom{r+k-1}{k}p^r(1-p)^{k} \quad k=0, 1, 2, \ldots, \]

donde \(r\) es el número de éxitos y \(p\) la probabilidad de éxito en cada ensayo.

El modelo binomial negativo se utiliza para modelar el número de fracasos necesarios para obtener \(r\) éxitos en una serie de ensayos independientes con dos posibles resultados, como el número de pacientes sanos que se examinan hasta encontrar el tercer paciente enfermo.

Sus estadísticos son

\[ E(X) = \frac{r(1-p)}{p} \quad \mbox{y} \quad Var(X) = \frac{r(1-p)}{p^2}. \]

Ejemplo 2.26 Se sabe que en una población hay aproximadamente un 30 % de fumadores. La variable que mide el número de personas no fumadoras hasta obtener 3 personas fumadoras sigue una distribución \(BN(3, 0{,}3)\).

df <- tibble(
  x = 0:25,  # Rango truncado (número de fracasos)
  p = dnbinom(0:25, size = 3, prob = 0.3) # Probabilidad
)
# Diagrama de barras
ggplot(df, aes(x = x, y = p)) +
  geom_bar(stat = "identity", width = 0.2, fill = myblue) +
  scale_x_continuous(breaks = seq(0, 25, by = 5)) +
  labs(x = "Número de no fumadoras hasta la tercera fumadora", y = "Probabilidad") +
  theme_minimal()
Diagrama de barras de la distribución binomial negativa con r = 3 y p = 0,3, con la masa concentrada entre 0 y 15 no fumadoras.
Figura 2.8: Distribución binomial negativa \(BN(3, 0{,}3)\).

2.13.5.1 Forma de la distribución binomial negativa para distintos valores de \(r\) y \(p\)

params <- expand.grid(r = c(1, 3, 5), p = c(0.2, 0.5, 0.8))
df_binom <- params |>
  rowwise() |>
  mutate(x = list(0:30), prob = list(dnbinom(0:30, size = r, prob = p))) |>
  unnest(cols = c(x, prob)) |>
  mutate(
    label = factor(
      paste0("r = ", r, ", p = ", p),
      levels = paste0("r = ", rep(c(1, 3, 5), 3), ", p = ", rep(c(0.2, 0.5, 0.8), each = 3))
    )
  )

df_binom |>
  ggplot(aes(x = x, y = prob)) +
  geom_bar(stat = "identity", width = 0.5, fill = myblue) +
  facet_wrap(~ label, scales = "free", nrow = 3) +
  labs(x = "X", y = "Probabilidad") +
  theme_minimal() +
  theme(strip.text = element_text(size = 11))
Nueve diagramas de barras de distribuciones binomiales negativas combinando r = 1, 3 y 5 con p = 0,2, 0,5 y 0,8.
Figura 2.9: Forma de la distribución binomial negativa para distintos valores de \(r\) y \(p\).

2.13.6 Distribución de Poisson

Definición 2.21 (Distribución de Poisson) Se dice que una variable aleatoria discreta \(X\) sigue un modelo de distribución de Poisson, \(X\sim P(\lambda)\), si su rango es \(\mbox{Ran}(X)=\{0,1,2,\ldots\}\) y su función de probabilidad es

\[ P(X=k) = \frac{e^{-\lambda}\lambda^k}{k!} \quad k=0,1,2,\ldots, \]

donde \(\lambda>0\) es el número medio de ocurrencias del suceso en el intervalo de referencia.

El modelo de Poisson se utiliza para modelar el número de ocurrencias de un suceso en un intervalo de tiempo o espacio fijo, como el número de llamadas que recibe una centralita en una hora o el número de mutaciones en un fragmento de ADN.

Sus estadísticos son

\[ E(X) = Var(X) = \lambda. \]

Ejemplo 2.27 En una ciudad, el número medio de nacimientos diarios es 4. Entonces, el número de nacimientos en un día sigue una distribución de Poisson \(P(4)\).

df <- tibble(
  x = 0:12,  # Rango truncado
  p = dpois(0:12, lambda = 4)  # Probabilidad
)
# Diagrama de barras
ggplot(df, aes(x = x, y = p)) +
  geom_bar(stat = "identity", width = 0.2, fill = myblue) +
  scale_x_continuous(breaks = 0:12) +
  labs(x = "Número de nacimientos", y = "Probabilidad") +
  theme_minimal()
Diagrama de barras de la distribución de Poisson con lambda = 4, con el máximo en 3 y 4 nacimientos.
Figura 2.10: Distribución de Poisson \(P(4)\).

2.13.6.1 Forma de la distribución de Poisson para distintos valores de \(\lambda\)

lambdas <- c(2, 10, 30)
df_pois <- tibble(lambda = lambdas) |>
  rowwise() |>
  mutate(x = list(0:qpois(0.999, lambda)), prob = list(dpois(0:qpois(0.999, lambda), lambda))) |>
  unnest(cols = c(x, prob)) |>
  mutate(
    label = factor(paste0("lambda == ", lambda),
                   levels = paste0("lambda == ", lambdas))
  )

df_pois |>
  ggplot(aes(x = x, y = prob)) +
  geom_bar(stat = "identity", width = 0.5, fill = myblue) +
  facet_wrap(~ label, nrow = 1, labeller = label_parsed) +
  labs(x = "X", y = "Probabilidad") +
  theme_minimal() +
  theme(strip.text = element_text(size = 11))
Tres diagramas de barras de distribuciones de Poisson con lambda = 2, 10 y 30; la distribución se vuelve más simétrica al crecer lambda.
Figura 2.11: Forma de la distribución de Poisson para distintos valores de \(\lambda\).

2.13.7 Resumen de distribuciones discretas

Distribución Parámetros Media Varianza Usos habituales
Bernoulli(\(p\)) \(p \in (0,1)\) \(p\) \(p(1-p)\) Resultado binario individual: test positivo/negativo, vivo/muerto, enfermo/sano.
Binomial(\(n, p\)) \(n \in \mathbb{N},\ p \in (0,1)\) \(np\) \(np(1-p)\) Número de éxitos en \(n\) ensayos: respondedores a tratamiento, casos en cribado.
Geométrica(\(p\)) \(p \in (0,1)\) \(\dfrac{1-p}{p}\) \(\dfrac{1-p}{p^2}\) Fracasos hasta el primer éxito: contactos hasta contagio, consultas hasta diagnóstico.
Binomial negativa(\(r, p\)) \(r > 0,\ p \in (0,1)\) \(\dfrac{r(1-p)}{p}\) \(\dfrac{r(1-p)}{p^2}\) Fracasos hasta obtener \(r\) éxitos; conteos sobredispersos: recaídas, reingresos, eventos adversos con varianza mayor que la media.
Poisson(\(\lambda\)) \(\lambda > 0\) \(\lambda\) \(\lambda\) Conteos de eventos raros: casos semanales de enfermedad, llamadas a urgencias.
Hipergeométrica(\(N, K, n\)) \(N, K, n \in \mathbb{N}\) \(\dfrac{nK}{N}\) \(\dfrac{nK(N-K)(N-n)}{N^2(N-1)}\) Muestreo sin reemplazamiento: prevalencia en poblaciones pequeñas.

2.14 Variables aleatorias continuas

Definición 2.22 (Función de densidad) La función de densidad de una variable aleatoria continua \(X\) es una función \(f(x)\) que cumple las siguientes condiciones:

  1. \(f(x)\geq 0\) para todo \(x\in \mathbb{R}\).
  2. \(\int_{-\infty}^{+\infty} f(x)\,dx = 1\).
  3. \(P(a\leq X \leq b) = \int_a^b f(x)\,dx\) para cualesquiera \(a,b\in \mathbb{R}\) con \(a\leq b\).

Ejemplo 2.28 La función

\[ f(x) = \begin{cases} e^{-x} & x\geq 0 \\ 0 & x<0 \end{cases} \]

es una función de densidad, ya que cumple las condiciones anteriores:

  1. \(f(x)\geq 0\) para todo \(x\in \mathbb{R}\).
  2. \(\int_{-\infty}^{+\infty} f(x)\,dx = \int_0^{+\infty} e^{-x}\,dx = \left[-e^{-x}\right]_0^{+\infty} = 1\).
  3. \(P(a\leq X \leq b) = \int_a^b e^{-x}\,dx = \left[-e^{-x}\right]_a^b = e^{-a}-e^{-b}\) para \(0\leq a\leq b\).

2.14.1 Estadísticos de una variable aleatoria continua

La media de \(X\) es

\[ E(X) = \int_{-\infty}^{+\infty} x f(x)\,dx, \]

y la varianza,

\[ Var(X) = \int_{-\infty}^{+\infty} (x - E(X))^2 f(x)\,dx = \int_{-\infty}^{+\infty} x^2 f(x)\,dx - E(X)^2. \]

2.14.2 Distribución uniforme continua

Definición 2.23 (Distribución uniforme continua) Se dice que una variable aleatoria continua \(X\) sigue un modelo de distribución uniforme continuo, \(X\sim U(a, b)\), si su rango es \(\mbox{Ran}(X)=[a,b]\) y su función de densidad es constante en ese intervalo:

\[ f(x) = \frac{1}{b-a} \quad \forall x\in[a,b], \]

donde \(a\) y \(b\) son el mínimo y el máximo de los valores que puede tomar la variable, respectivamente.

El modelo uniforme continuo se utiliza para modelar experimentos aleatorios en los que todos los valores del intervalo \([a,b]\) son equiprobables, como el tiempo de espera de un autobús que pasa a intervalos fijos.

Sus estadísticos son

\[ E(X) = \frac{a+b}{2} \quad \mbox{y} \quad Var(X) = \frac{(b-a)^2}{12}. \]

Ejemplo 2.29 El tiempo de espera de un autobús que pasa cada 20 minutos sigue una distribución uniforme continua \(U(0, 20)\).

df <- tibble(x = c(0, 0, 20, 20), p = c(0, 1/20, 1/20, 0))
# Diagrama de densidad de probabilidad
ggplot(df, aes(x = x, y = p)) +
  geom_area(fill = myblue, alpha = 0.5) +
  geom_line(color = myblue, linewidth = 1) +
  labs(x = "Tiempo de espera (minutos)", y = "Densidad") +
  theme_minimal()
Densidad constante igual a 1/20 entre 0 y 20 minutos.
Figura 2.12: Distribución uniforme continua \(U(0, 20)\).

2.14.3 Distribución beta

Definición 2.24 (Distribución beta) Se dice que una variable aleatoria continua \(X\) sigue un modelo de distribución beta, \(X\sim \mbox{Beta}(\alpha, \beta)\), si su rango es \(\mbox{Ran}(X)=[0,1]\) y su función de densidad es

\[ f(x) = \frac{x^{\alpha-1}(1-x)^{\beta-1}}{B(\alpha,\beta)} \quad x\in[0,1], \]

donde \(\alpha, \beta>0\) son los parámetros de forma y \(B(\alpha,\beta)=\frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha+\beta)}\) es la función beta.

El modelo beta se utiliza para modelar proporciones o probabilidades, ya que su rango está acotado en \([0,1]\). Según los valores de \(\alpha\) y \(\beta\) puede tomar formas muy variadas (simétricas, asimétricas, en forma de U, etc.). Su media y su varianza son

\[ E(X) = \frac{\alpha}{\alpha+\beta}, \qquad Var(X) = \frac{\alpha\beta}{(\alpha+\beta)^2(\alpha+\beta+1)}. \]

Nota

La función gamma es una generalización del factorial a los números reales positivos, definida como \(\Gamma(\alpha) = \int_0^{+\infty} t^{\alpha-1}e^{-t}\,dt\). Para enteros positivos cumple \(\Gamma(n) = (n-1)!\).

Ejemplo 2.30 La proporción de individuos que responden positivamente a un tratamiento puede modelarse con una distribución \(\mbox{Beta}(2, 5)\).

# Función de densidad Beta(2, 5)
df <- tibble(x = seq(0, 1, length.out = 300),
             p = dbeta(x, shape1 = 2, shape2 = 5))  # Densidad de probabilidad
# Diagrama de densidad de probabilidad
ggplot(df, aes(x = x, y = p)) +
  geom_area(fill = myblue, alpha = 0.5) +
  geom_line(color = myblue, linewidth = 1) +
  labs(x = "X", y = "Densidad") +
  theme_minimal()
Curva de densidad asimétrica a la derecha con máximo cerca de 0,2.
Figura 2.13: Distribución beta \(\text{Beta}(2, 5)\).

2.14.3.1 Forma de la distribución beta para distintos valores de \(\alpha\) y \(\beta\)

beta_params <- expand.grid(alpha = c(1, 10, 100), beta = c(1, 10, 100))
df_beta <- pmap_dfr(beta_params, function(alpha, beta) {
  tibble(x = seq(0.001, 0.999, length.out = 300),
         y = dbeta(x, shape1 = alpha, shape2 = beta),
         label = factor(paste0("Beta(", alpha, ", ", beta, ")"),
                        levels = paste0("Beta(", beta_params$alpha, ", ", beta_params$beta, ")")))
})

df_beta |>
  ggplot(aes(x = x, y = y)) +
  geom_area(fill = myblue, alpha = 0.5) +
  geom_line(color = myblue, linewidth = 1) +
  facet_wrap(~ label, scales = "free_y", nrow = 3) +
  labs(x = "x", y = NULL) +
  theme_minimal() +
  theme(strip.text = element_text(size = 11))
Nueve densidades beta combinando alfa y beta en 1, 10 y 100.
Figura 2.14: Forma de la distribución beta para distintos valores de \(\alpha\) y \(\beta\).

2.14.4 Distribución normal

Definición 2.25 (Distribución normal) Se dice que una variable aleatoria continua \(X\) sigue un modelo de distribución normal, \(X\sim N(\mu, \sigma)\), si su rango es \(\mbox{Ran}(X)=(-\infty,+\infty)\) y su función de densidad es

\[ f(x) = \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} \quad x\in\mathbb{R}, \]

donde \(\mu\in\mathbb{R}\) es la media y \(\sigma>0\) la desviación típica.

El modelo normal es el más importante de la estadística. Describe muchos fenómenos naturales y, por el teorema central del límite, es la distribución límite de la media de muestras grandes de casi cualquier distribución. Sus estadísticos son

\[ E(X) = \mu \quad \mbox{y} \quad Var(X) = \sigma^2. \]

Ejemplo 2.31 La estatura de los adultos de una población suele seguir una distribución normal \(N(170, 8)\) (en cm).

# Función de densidad N(170, 8)
df <- tibble(x = seq(140, 200, length.out = 300),
             p = dnorm(x, mean = 170, sd = 8)) # Densidad de probabilidad
# Diagrama de densidad de probabilidad
ggplot(df, aes(x = x, y = p)) +
  geom_area(fill = myblue, alpha = 0.5) +
  geom_line(color = myblue, linewidth = 1) +
  scale_x_continuous(breaks = seq(140, 200, by = 10)) +
  labs(x = "Estatura (cm)", y = "Densidad") +
  theme_minimal()
Campana de Gauss centrada en 170 cm con desviación típica de 8 cm.
Figura 2.15: Distribución normal \(N(170, 8)\).

2.14.4.1 Forma de la distribución normal para distintos valores de \(\mu\) y \(\sigma\)

norm_params <- expand.grid(mu = c(0, 20, 100), sigma = c(1, 5, 10))
df_norm <- pmap_dfr(norm_params, function(mu, sigma) {
  tibble(x = seq(mu - 4*sigma, mu + 4*sigma, length.out = 300),
         y = dnorm(x, mean = mu, sd = sigma),
         mu    = factor(paste0("μ = ", mu),    levels = paste0("μ = ", c(0, 20, 100))),
         sigma = factor(paste0("σ = ", sigma), levels = paste0("σ = ", c(1, 5, 10))))
})

df_norm |>
  ggplot(aes(x = x, y = y)) +
  geom_area(fill = myblue, alpha = 0.5) +
  geom_line(color = myblue, linewidth = 1) +
  facet_grid(sigma ~ mu, scales = "free") +
  labs(x = "x", y = NULL) +
  theme_minimal() +
  theme(strip.text = element_text(size = 11))
Nueve densidades normales combinando mu = 0, 20 y 100 con sigma = 1, 5 y 10.
Figura 2.16: Forma de la distribución normal para distintos valores de \(\mu\) y \(\sigma\).

2.14.5 Distribución exponencial

Definición 2.26 (Distribución exponencial) Se dice que una variable aleatoria continua \(X\) sigue un modelo de distribución exponencial, \(X\sim Exp(\lambda)\), si su rango es \(\mbox{Ran}(X)=(0,+\infty)\) y su función de densidad es

\[ f(x) = \lambda e^{-\lambda x} \quad x>0, \]

donde \(\lambda > 0\) es la tasa de ocurrencia del suceso.

El modelo exponencial se utiliza para modelar tiempos de espera o duraciones positivas, como el tiempo entre llamadas a una centralita o el tiempo de vida de un paciente. Sus estadísticos son

\[ E(X) = \frac{1}{\lambda} \quad \mbox{y} \quad Var(X) = \frac{1}{\lambda^2}. \]

Ejemplo 2.32 Se sabe que la tasa de infecciones por un virus es de 0,2 por día. Entonces, el tiempo hasta que haya una infección sigue una distribución exponencial \(Exp(0{,}2)\).

# Función de densidad Exp(0.2)
df <- tibble(x = seq(0, 30, length.out = 300),
             p = dexp(x, rate = 0.2)) # Densidad de probabilidad
# Diagrama de densidad de probabilidad
ggplot(df, aes(x = x, y = p)) +
  geom_area(fill = myblue, alpha = 0.5) +
  geom_line(color = myblue, linewidth = 1) +
  labs(x = "Tiempo hasta la infección (días)", y = "Densidad") +
  theme_minimal()
Densidad exponencial decreciente desde 0,2 en el origen.
Figura 2.17: Distribución exponencial \(Exp(0{,}2)\).

2.14.5.1 Forma de la distribución exponencial para distintos valores de \(\lambda\)

lambdas <- c(0.1, 0.3, 0.5)
df_exp <- tibble(lambda = lambdas) |>
  rowwise() |>
  mutate(x = list(seq(0, qexp(0.99, rate = lambda), length.out = 300)),
         y = list(dexp(x, rate = lambda))) |>
  unnest(cols = c(x, y)) |>
  mutate(label = factor(paste0("λ = ", lambda), levels = paste0("λ = ", lambdas)))

df_exp |>
  ggplot(aes(x = x, y = y)) +
  geom_line(color = myblue) +
  geom_area(fill = myblue, alpha = 0.5) +
  labs(x = "X", y = "Densidad") +
  facet_wrap(~ label, nrow = 1) +
  theme_minimal() +
  theme(strip.text = element_text(size = 11))
Tres densidades exponenciales decrecientes con lambda = 0,1, 0,3 y 0,5.
Figura 2.18: Forma de la distribución exponencial para distintos valores de \(\lambda\).

2.14.6 Distribución gamma

Definición 2.27 (Distribución gamma) Se dice que una variable aleatoria continua \(X\) sigue un modelo de distribución gamma, \(X\sim \mbox{Gamma}(\alpha, \beta)\), si su rango es \(\mbox{Ran}(X)=(0,+\infty)\) y su función de densidad es

\[ f(x) = \frac{\beta^\alpha}{\Gamma(\alpha)}x^{\alpha-1}e^{-\beta x} \quad x>0, \]

donde \(\alpha>0\) es el parámetro de forma, \(\beta>0\) el parámetro de tasa y \(\Gamma(\alpha)\) la función gamma.

El modelo gamma se utiliza para modelar tiempos de espera o duraciones positivas. Incluye como caso particular la distribución exponencial (\(\alpha=1\)) y, para valores grandes de \(\alpha\), se aproxima a la normal. Sus estadísticos son

\[ E(X) = \frac{\alpha}{\beta} \quad \mbox{y} \quad Var(X) = \frac{\alpha}{\beta^2}. \]

Ejemplo 2.33 El tiempo hasta el tercer contagio de un virus, si los contagios ocurren a una tasa de 2 por hora, sigue una distribución \(\mbox{Gamma}(3, 2)\).

# Función de densidad Gamma(3, 2)
df <- tibble(x = seq(0, 5, length.out = 300),
             p = dgamma(x, shape = 3, rate = 2))
# Diagrama de densidad de probabilidad
ggplot(df, aes(x = x, y = p)) +
  geom_area(fill = myblue, alpha = 0.5) +
  geom_line(color = myblue, linewidth = 1) +
  labs(x = "Tiempo hasta el tercer contagio (horas)", y = "Densidad") +
  theme_minimal()
Densidad gamma asimétrica a la derecha con máximo cerca de 1 hora.
Figura 2.19: Distribución gamma \(\text{Gamma}(3, 2)\).

2.14.6.1 Forma de la distribución gamma para distintos valores de \(\alpha\) y \(\beta\)

library(ggh4x) # Para facet_grid2
alpha_vals <- c(1, 10, 30)
beta_vals <- c(0.1, 0.2, 0.3)

df_gamma <- expand.grid(alpha = alpha_vals, beta = beta_vals) |>
  pmap_dfr(function(alpha, beta) {
    x_max <- qgamma(0.9999, shape = alpha, rate = beta)
    tibble(x = seq(0.001, x_max, length.out = 300),
           y = dgamma(x, shape = alpha, rate = beta),
           alpha = factor(paste0("α = ", alpha), levels = paste0("α = ", alpha_vals)),
           beta = factor(paste0("β = ", beta), levels = paste0("β = ", beta_vals)))
  })

df_gamma |>
  ggplot(aes(x = x, y = y)) +
  geom_area(fill = myblue, alpha = 0.5) +
  geom_line(color = myblue, linewidth = 1) +
  ggh4x::facet_grid2(alpha ~ beta, scales = "free", independent = "y") +
  labs(x = "X", y = "Densidad") +
  theme_minimal() +
  theme(strip.text = element_text(size = 11))
Nueve densidades gamma combinando alfa = 1, 10 y 30 con beta = 0,1, 0,2 y 0,3.
Figura 2.20: Forma de la distribución gamma para distintos valores de \(\alpha\) y \(\beta\).

2.14.7 Distribución gamma inversa

Definición 2.28 (Distribución gamma inversa) Se dice que una variable aleatoria continua \(X\) sigue un modelo de distribución gamma inversa, \(X\sim \mbox{Gamma}^{-1}(\alpha, \beta)\), si su rango es \(\mbox{Ran}(X)=(0,+\infty)\) y su función de densidad es

\[ f(x) = \frac{\beta^{\alpha}}{\Gamma(\alpha)}x^{-\alpha-1}e^{-\beta/x}, \quad x>0, \]

donde \(\alpha>0\) es el parámetro de forma, \(\beta>0\) el parámetro de escala y \(\Gamma(\alpha)\) la función gamma.

Si \(X\sim \mbox{Gamma}(\alpha, \beta)\) (con \(\beta\) como tasa), entonces \(1/X\sim \mbox{Gamma}^{-1}(\alpha, \beta)\). La distribución gamma inversa se utiliza habitualmente para modelar varianzas en estadística bayesiana. Sus estadísticos son

\[ E(X) = \frac{\beta}{\alpha-1} \quad \mbox{y} \quad Var(X) = \frac{\beta^2}{(\alpha-1)^2(\alpha-2)} \quad \mbox{para } \alpha > 2. \]

2.14.7.1 Forma de la distribución gamma inversa para distintos valores de \(\alpha\) y \(\beta\)

library(extraDistr)
library(ggh4x) # Para facet_grid2
alpha_vals <- c(5, 10, 15)
beta_vals <- c(1, 5, 10)

df_gamma_inv <- expand.grid(alpha = alpha_vals, beta = beta_vals) |>
  pmap_dfr(function(alpha, beta) {
    x_max <- qinvgamma(0.99, alpha = alpha, beta = beta)
    tibble(x = seq(0.001, x_max, length.out = 300),
           y = dinvgamma(x, alpha = alpha, beta = beta),
           alpha = factor(paste0("α = ", alpha), levels = paste0("α = ", alpha_vals)),
           beta = factor(paste0("β = ", beta), levels = paste0("β = ", beta_vals)))
  })

df_gamma_inv |>
  ggplot(aes(x = x, y = y)) +
  geom_area(fill = myblue, alpha = 0.5) +
  geom_line(color = myblue, linewidth = 1) +
  ggh4x::facet_grid2(alpha ~ beta, scales = "free", independent = "y") +
  labs(x = "X", y = "Densidad") +
  theme_minimal() +
  theme(strip.text = element_text(size = 11))
Nueve densidades gamma inversa combinando alfa = 5, 10 y 15 con beta = 1, 5 y 10.
Figura 2.21: Forma de la distribución gamma inversa para distintos valores de \(\alpha\) y \(\beta\).

2.14.8 Resumen de distribuciones continuas

Distribución Parámetros Media Varianza Usos habituales
Uniforme(\(a, b\)) \(a < b\) \(\dfrac{a+b}{2}\) \(\dfrac{(b-a)^2}{12}\) Prior no informativo sobre parámetros acotados: probabilidades, proporciones.
Beta(\(\alpha, \beta\)) \(\alpha, \beta > 0\) \(\dfrac{\alpha}{\alpha+\beta}\) \(\dfrac{\alpha\beta}{(\alpha+\beta)^2(\alpha+\beta+1)}\) Prior conjugado para proporciones: prevalencia, sensibilidad, especificidad.
Dirichlet(\(\alpha_1,\ldots,\alpha_k\)) \(\alpha_i > 0\) \(\dfrac{\alpha_i}{\alpha_0}\) \(\dfrac{\alpha_i(\alpha_0-\alpha_i)}{\alpha_0^2(\alpha_0+1)}\) Prior conjugado para vectores de probabilidad: serotipos, mezclas de poblaciones.
Normal(\(\mu, \sigma^2\)) \(\mu \in \mathbb{R},\ \sigma^2 > 0\) \(\mu\) \(\sigma^2\) Prior para medias y coeficientes: presión arterial, colesterol, efectos de tratamiento.
\(t\) de Student(\(\nu, \mu, \sigma^2\)) \(\nu > 0,\ \mu \in \mathbb{R},\ \sigma^2 > 0\) \(\mu\ (\nu > 1)\) \(\dfrac{\nu\sigma^2}{\nu-2}\ (\nu > 2)\) Prior robusto con colas pesadas; marginal de \(\mu\) en el modelo normal-gamma inversa.
Cauchy(\(\mu, \sigma\)) \(\mu \in \mathbb{R},\ \sigma > 0\) no existe no existe Prior de colas muy pesadas para coeficientes en regresión logística.
Exponencial(\(\lambda\)) \(\lambda > 0\) \(\dfrac{1}{\lambda}\) \(\dfrac{1}{\lambda^2}\) Prior débilmente informativo para \(\sigma\) y \(\tau\); tiempo entre eventos con riesgo constante.
Gamma(\(\alpha, \beta\)) \(\alpha, \beta > 0\) \(\dfrac{\alpha}{\beta}\) \(\dfrac{\alpha}{\beta^2}\) Prior conjugado para tasas Poisson: incidencia, mortalidad.
Gamma inversa(\(\alpha, \beta\)) \(\alpha, \beta > 0\) \(\dfrac{\beta}{\alpha-1}\ (\alpha > 1)\) \(\dfrac{\beta^2}{(\alpha-1)^2(\alpha-2)}\ (\alpha > 2)\) Prior conjugado para varianzas \(\sigma^2\); varianza de efectos aleatorios.
Lognormal(\(\mu, \sigma^2\)) \(\mu \in \mathbb{R},\ \sigma^2 > 0\) \(e^{\mu+\sigma^2/2}\) \(\left(e^{\sigma^2}-1\right)e^{2\mu+\sigma^2}\) Parámetros positivos asimétricos: dosis, concentraciones, tiempos de supervivencia.
Weibull(\(k, \lambda\)) \(k, \lambda > 0\) \(\lambda\,\Gamma\!\left(1+\tfrac{1}{k}\right)\) \(\lambda^2\!\left[\Gamma\!\left(1+\tfrac{2}{k}\right)-\Gamma\!\left(1+\tfrac{1}{k}\right)^2\right]\) Modelos de supervivencia: tiempo hasta la muerte, recaída o fracaso de tratamiento.

Ejercicio 2.4 ¿Qué tipo de distribución de probabilidad utilizarías para modelar las siguientes variables aleatorias?

  1. Número de casos de gripe por semana.
  2. Eficacia de una vacuna.
  3. Tiempo entre hospitalizaciones de un paciente con insuficiencia cardíaca.
  4. Número de lesiones de acné por dm² de piel en una persona.
  5. Nivel de glucosa en sangre de un paciente diabético.
  6. Número de contactos hasta el primer contagio en una cadena de transmisión.
  7. Tasa de incidencia de la gripe por semana.
Solución
  1. Poisson.
  2. Beta.
  3. Exponencial.
  4. Poisson.
  5. Normal.
  6. Geométrica.
  7. Gamma.

2.15 Muestreo

El proceso de obtener valores de una variable aleatoria mediante la realización de un experimento aleatorio se conoce como muestreo. Cuando la selección de los valores se hace de manera independiente y con la misma distribución, se dice que se ha realizado un muestreo aleatorio simple.

Muestreo aleatorio simple (Fuente: Wikimedia Commons, CC BY-SA 4.0, Dan Kernler).

2.15.1 Muestreo en variables aleatorias discretas

Para realizar un muestreo aleatorio simple de una variable aleatoria discreta con un número finito de valores se puede usar la función sample de R.

Notasample

Devuelve una muestra aleatoria de los elementos de un vector dado, con o sin reemplazamiento, y con probabilidades asociadas a cada elemento.

Parámetros:

  • x: vector de valores a muestrear.
  • size: número de valores a muestrear.
  • prob: vector de probabilidades asociadas a cada valor de x. Si no se especifica, se asume que todos los valores tienen la misma probabilidad.
  • replace: TRUE indica que el muestreo es con reemplazo, mientras que FALSE implica que el muestreo es sin reemplazo.

Ejemplo 2.34 El siguiente código realiza un muestreo aleatorio simple de tamaño 10 del resultado de lanzar una moneda equilibrada, es decir, con probabilidades iguales para cara y cruz.

set.seed(123) # Para reproducibilidad
# Valores posibles: Cara ("C") y Cruz ("X")
x <- c("C", "X")
# Probabilidades asociadas a cada valor
p <- c(0.5, 0.5)
# Muestreo aleatorio simple de tamaño 10
sample(x, size = 10, prob = p, replace = TRUE)
 [1] "X" "C" "X" "C" "C" "X" "C" "C" "C" "X"

Si la moneda estuviera trucada, por ejemplo con una probabilidad de cara de 0,8 y de cruz de 0,2, se tendría:

# Probabilidades asociadas a cada valor
p <- c(0.8, 0.2)
# Muestreo aleatorio simple de tamaño 10
sample(x, size = 10, prob = p, replace = TRUE)
 [1] "X" "C" "C" "C" "C" "X" "C" "C" "C" "X"

Otra opción para tomar muestras aleatorias de un data frame es la función slice_sample del paquete dplyr.

Notaslice_sample

Devuelve una muestra aleatoria de tamaño determinado de un data frame o tibble.

Parámetros:

  • .data: data frame o tibble del que se quiere tomar la muestra.
  • n: número de filas a muestrear.
  • weight_by: nombre de la columna que contiene las probabilidades asociadas a cada fila. Si no se especifica, se asume que todas las filas tienen la misma probabilidad.
  • replace: TRUE indica que el muestreo es con reemplazo, mientras que FALSE implica que el muestreo es sin reemplazo.

El mismo ejemplo anterior puede replicarse con este código:

set.seed(123)
tibble(x = c("C", "X"), p = c(0.8, 0.2)) |>
  slice_sample(n = 10, weight_by = p, replace = TRUE)
# A tibble: 10 × 2
   x         p
   <chr> <dbl>
 1 C       0.8
 2 C       0.8
 3 C       0.8
 4 X       0.2
 5 X       0.2
 6 C       0.8
 7 C       0.8
 8 X       0.2
 9 C       0.8
10 C       0.8

2.15.2 Muestreo en el modelo de distribución binomial

Para realizar un muestreo aleatorio simple de una variable aleatoria con distribución binomial se puede usar la función rbinom de R.

Notarbinom

Devuelve una muestra aleatoria de una distribución binomial.

Parámetros:

  • n: tamaño de la muestra.
  • size: número de repeticiones o ensayos.
  • prob: probabilidad de éxito para cada ensayo.

Ejemplo 2.35 Se sabe que el porcentaje de fumadores en una población es del 20 %. Vamos a realizar un muestreo aleatorio simple de tamaño 20 del número de fumadores en muestras aleatorias de 10 personas.

set.seed(123) # Para reproducibilidad
n <- 10  # Número de repeticiones
p <- 0.2 # Probabilidad de éxito (fumador)
# Muestreo aleatorio simple de la distribución binomial
df <- tibble(x = rbinom(n = 20, size = n, prob = p))
df$x
 [1] 1 3 2 4 4 0 2 4 2 2 4 2 2 2 0 4 1 0 1 4
# Distribución binomial teórica
df_binom <- tibble(x = 0:n, p = dbinom(0:n, size = n, prob = p))
ggplot(df, aes(x = x)) +
  # Diagrama de barras de la distribución muestral
  geom_bar(aes(y = after_stat(count / sum(count))), fill = myblue, width = 0.2) +
  # Distribución de probabilidad del modelo binomial
  geom_point(data = df_binom, aes(x = x, y = p), color = myred, size = 2) +
  scale_x_continuous(breaks = 0:n) +
  labs(x = "Número de fumadores", y = "Frecuencia relativa / Probabilidad") +
  theme_minimal()
Frecuencias relativas de una muestra pequeña de número de fumadores, junto a los puntos del modelo binomial teórico, con diferencias apreciables.
Figura 2.22: Muestra aleatoria de tamaño 20 de la distribución \(B(10, 0{,}2)\) frente al modelo teórico.

Para tamaños muestrales pequeños, la distribución de frecuencias muestral es muy diferente a la distribución de probabilidad del modelo binomial \(B(10, 0{,}2)\). Pero para tamaños muestrales grandes, la distribución de frecuencias del muestreo se aproxima a la distribución de probabilidad del modelo:

df <- tibble(x = rbinom(n = 10000, size = n, prob = p))
# Distribución binomial teórica
df_binom <- tibble(x = 0:n, p = dbinom(0:n, size = n, prob = p))
ggplot(df, aes(x = x)) +
  geom_bar(aes(y = after_stat(count / sum(count))), fill = myblue, width = 0.2) +
  geom_point(data = df_binom, aes(x = x, y = p), color = myred, size = 2) +
  scale_x_continuous(breaks = 0:n) +
  labs(x = "Número de fumadores", y = "Frecuencia relativa / Probabilidad") +
  theme_minimal()
Frecuencias relativas de una muestra grande de número de fumadores que coinciden con los puntos del modelo binomial teórico.
Figura 2.23: Muestra aleatoria de tamaño 10000 de la distribución \(B(10, 0{,}2)\) frente al modelo teórico.

2.15.3 Muestreo de la distribución geométrica

Para realizar un muestreo aleatorio simple de una variable aleatoria con distribución geométrica se puede usar la función rgeom de R, cuyos parámetros son n (tamaño de la muestra) y prob (probabilidad de éxito en cada ensayo).

Ejemplo 2.36 La probabilidad de que un paciente responda favorablemente a un tratamiento es del 30 %. Tomamos una muestra aleatoria de tamaño 10000 del número de pacientes no respondedores tratados hasta obtener el primer éxito.

set.seed(123) # Para reproducibilidad
p <- 0.3 # Probabilidad de éxito
# Muestreo aleatorio simple de la distribución geométrica
df <- tibble(x = rgeom(n = 10000, prob = p))
# Distribución geométrica teórica
x_max <- max(df$x)
df_geom <- tibble(x = 0:x_max, p = dgeom(0:x_max, prob = p))
ggplot(df, aes(x = x)) +
  geom_bar(aes(y = after_stat(count / sum(count))), fill = myblue, width = 0.2) +
  geom_point(data = df_geom, aes(x = x, y = p), color = myred, size = 2) +
  scale_x_continuous(breaks = 0:x_max) +
  labs(x = "Número de fracasos antes del primer éxito", y = "Frecuencia relativa / Probabilidad") +
  theme_minimal()
Frecuencias relativas de una muestra grande de la distribución geométrica con p = 0,3, que coinciden con el modelo teórico.
Figura 2.24: Muestra aleatoria de la distribución \(G(0{,}3)\) frente al modelo teórico.

2.15.4 Muestreo de la distribución de Poisson

Para realizar un muestreo aleatorio simple de una variable aleatoria con distribución de Poisson se puede usar la función rpois de R, cuyos parámetros son n (tamaño de la muestra) y lambda (número medio de ocurrencias).

Ejemplo 2.37 El número medio de infartos que se producen diariamente en una ciudad es 5. Tomamos una muestra aleatoria de tamaño 10000 del número de infartos diarios.

set.seed(123)
lambda <- 5  # Media
df <- tibble(x = rpois(n = 10000, lambda = lambda))
x_max <- max(df$x)
df_pois <- tibble(x = 0:x_max, p = dpois(0:x_max, lambda = lambda))
ggplot(df, aes(x = x)) +
  geom_bar(aes(y = after_stat(count / sum(count))), fill = myblue, width = 0.2) +
  geom_point(data = df_pois, aes(x = x, y = p), color = myred, size = 2) +
  scale_x_continuous(breaks = 0:x_max) +
  labs(x = "Número de infartos", y = "Frecuencia relativa / Probabilidad") +
  theme_minimal()
Frecuencias relativas de una muestra grande de la distribución de Poisson con lambda = 5, que coinciden con el modelo teórico.
Figura 2.25: Muestra aleatoria de la distribución \(P(5)\) frente al modelo teórico.

2.15.5 Muestreo de la distribución uniforme continua

Para muestrear una variable con distribución uniforme continua se usa la función runif, con los parámetros n, min y max.

Ejemplo 2.38 El tiempo de espera de un autobús que pasa cada 20 minutos sigue una distribución \(U(0, 20)\). Tomamos una muestra aleatoria de tamaño 10000 del tiempo de espera.

set.seed(123)
df <- tibble(x = runif(n = 10000, min = 0, max = 20))
ggplot(df, aes(x = x)) +
  geom_area(stat = "density", fill = myblue, alpha = 0.5, bounds = c(0, 20)) +
  geom_line(stat = "density", color = myblue, linewidth = 1, bounds = c(0, 20)) +
  geom_hline(yintercept = 1/20, color = myred, linewidth = 1) +
  labs(x = "Tiempo de espera (minutos)", y = "Densidad") +
  theme_minimal()
Histograma de densidad de una muestra grande de tiempos de espera entre 0 y 20 minutos, con una línea horizontal en 1/20 como densidad teórica.
Figura 2.26: Muestra aleatoria de la distribución \(U(0, 20)\) frente al modelo teórico.

2.15.6 Muestreo de la distribución beta

Para muestrear una variable con distribución beta se usa la función rbeta, con los parámetros n, shape1 (\(\alpha\)) y shape2 (\(\beta\)).

Ejemplo 2.39 La proporción de individuos que responden positivamente a un tratamiento puede modelarse con una distribución \(\mbox{Beta}(2, 5)\). Tomamos una muestra aleatoria de tamaño 10000 de esta distribución.

set.seed(123)
n <- 10000  # Tamaño de la muestra
shape1 <- 2 # Parámetro de forma α
shape2 <- 5 # Parámetro de forma β
# Muestreo aleatorio simple de la distribución beta
df <- tibble(x = rbeta(n = n, shape1 = shape1, shape2 = shape2))
# Distribución beta teórica
df_beta <- tibble(x = seq(0, 1, length.out = 300),
                  p = dbeta(x, shape1 = shape1, shape2 = shape2))
ggplot(df, aes(x = x)) +
  geom_area(stat = "density", fill = myblue, alpha = 0.5) +
  geom_line(stat = "density", color = myblue, linewidth = 1) +
  geom_line(data = df_beta, aes(x = x, y = p), color = myred, linewidth = 1) +
  labs(x = "Proporción de respuestas positivas", y = "Densidad") +
  theme_minimal()
Densidad de una muestra grande de una distribución beta con alfa = 2 y beta = 5, que coincide con la curva teórica.
Figura 2.27: Muestra aleatoria de la distribución \(\text{Beta}(2, 5)\) frente al modelo teórico.

2.15.7 Muestreo de la distribución normal

Para muestrear una variable con distribución normal se usa la función rnorm, con los parámetros n, mean (\(\mu\)) y sd (\(\sigma\)).

Ejemplo 2.40 La estatura de los adultos de una población suele seguir una distribución \(N(170, 8)\) (en cm). Tomamos una muestra aleatoria de tamaño 10000 de esta distribución.

set.seed(123)
n <- 10000  # Tamaño de la muestra
mean <- 170 # Media μ
sd <- 8     # Desviación típica σ
# Muestreo aleatorio simple de la distribución normal
df <- tibble(x = rnorm(n = n, mean = mean, sd = sd))
# Distribución normal teórica
df_norm <- tibble(x = seq(140, 200, length.out = 300),
                  p = dnorm(x, mean = mean, sd = sd))
ggplot(df, aes(x = x)) +
  geom_area(stat = "density", fill = myblue, alpha = 0.5) +
  geom_line(stat = "density", color = myblue, linewidth = 1) +
  geom_line(data = df_norm, aes(x = x, y = p), color = myred, linewidth = 1) +
  scale_x_continuous(breaks = seq(140, 200, by = 10)) +
  labs(x = "Estatura (cm)", y = "Densidad") +
  theme_minimal()
Densidad de una muestra grande de estaturas que coincide con la campana de Gauss teórica centrada en 170 cm.
Figura 2.28: Muestra aleatoria de la distribución \(N(170, 8)\) frente al modelo teórico.

2.15.8 Muestreo de la distribución exponencial

Para muestrear una variable con distribución exponencial se usa la función rexp, con los parámetros n y rate (\(\lambda\)).

Ejemplo 2.41 El tiempo hasta la infección por un virus sigue una distribución \(Exp(0{,}2)\). Tomamos una muestra aleatoria de tamaño 10000 de esta distribución.

set.seed(123)
n <- 10000  # Tamaño de la muestra
rate <- 0.2 # Tasa de ocurrencia λ
# Muestreo aleatorio simple de la distribución exponencial
df <- tibble(x = rexp(n = n, rate = rate))
# Distribución exponencial teórica
x_max <- qexp(0.999, rate = rate)
df_exp <- tibble(x = seq(0, x_max, length.out = 300), p = dexp(x, rate = rate))
ggplot(df, aes(x = x)) +
  geom_area(stat = "density", fill = myblue, alpha = 0.5, bounds = c(0, x_max)) +
  geom_line(stat = "density", color = myblue, linewidth = 1, bounds = c(0, x_max)) +
  geom_line(data = df_exp, aes(x = x, y = p), color = myred, linewidth = 1) +
  labs(x = "Tiempo hasta la infección (días)", y = "Densidad") +
  theme_minimal()
Warning: Some data points are outside of `bounds`. Removing them.
Some data points are outside of `bounds`. Removing them.
Densidad de una muestra grande de tiempos hasta la infección que coincide con la curva exponencial teórica.
Figura 2.29: Muestra aleatoria de la distribución \(Exp(0{,}2)\) frente al modelo teórico.

2.15.9 Muestreo de la distribución gamma

Para muestrear una variable con distribución gamma se usa la función rgamma, con los parámetros n, shape (\(\alpha\)) y rate (\(\beta\)).

Ejemplo 2.42 El tiempo hasta el tercer contagio de un virus, si los contagios ocurren a una tasa de 2 por hora, sigue una distribución \(\mbox{Gamma}(3, 2)\). Tomamos una muestra aleatoria de tamaño 10000 de esta distribución.

set.seed(123)
n <- 10000  # Tamaño de la muestra
shape <- 3 # Parámetro de forma α
rate <- 2  # Parámetro de tasa β
# Muestreo aleatorio simple de la distribución gamma
df <- tibble(x = rgamma(n = n, shape = shape, rate = rate))
# Distribución gamma teórica
x_max <- qgamma(0.999, shape = shape, rate = rate)
df_gamma <- tibble(x = seq(0, x_max, length.out = 300),
                   p = dgamma(x, shape = shape, rate = rate))
ggplot(df, aes(x = x)) +
  geom_area(stat = "density", fill = myblue, alpha = 0.5) +
  geom_line(stat = "density", color = myblue, linewidth = 1) +
  geom_line(data = df_gamma, aes(x = x, y = p), color = myred, linewidth = 1) +
  labs(x = "Tiempo hasta el tercer contagio (horas)", y = "Densidad") +
  theme_minimal()
Densidad de una muestra grande de tiempos hasta el tercer contagio que coincide con la curva gamma teórica.
Figura 2.30: Muestra aleatoria de la distribución \(\text{Gamma}(3, 2)\) frente al modelo teórico.

Ejercicio 2.5 En una población hay un 30 % de personas fumadoras. Se sabe que la prevalencia de cáncer de pulmón es del 10 % en fumadoras y del 1 % en no fumadoras.

  1. Obtener una muestra aleatoria de tamaño 20 del número de personas con cáncer en muestras de 100 fumadoras y dibujar la distribución de frecuencias.
  2. Obtener una muestra aleatoria de tamaño 20 del número de personas con cáncer en muestras de 100 no fumadoras y dibujar la distribución de frecuencias.
  3. Obtener una muestra aleatoria de tamaño 20 del número de personas con cáncer en muestras de 100 personas de la población general y dibujar la distribución de frecuencias.
  4. Obtener una muestra aleatoria de tamaño 10000 del número de personas con cáncer en muestras de 100 personas de la población general y dibujar la distribución de frecuencias.
Solución
set.seed(123)
tibble(x = rbinom(n = 20, size = 100, prob = 0.1)) |>
  ggplot(aes(x = x, y = after_stat(prop))) +
  stat_count(fill = myblue, width = 0.2) +
  labs(title = "Número de personas con cáncer en 100 fumadoras",
       x = "Número de personas con cáncer", y = "Frecuencia relativa")

tibble(x = rbinom(n = 20, size = 100, prob = 0.01)) |>
  ggplot(aes(x = x, y = after_stat(prop))) +
  stat_count(fill = myblue, width = 0.2) +
  labs(title = "Número de personas con cáncer en 100 no fumadoras",
       x = "Número de personas con cáncer", y = "Frecuencia relativa")

# Cada muestra de 100 personas: primero el número de fumadoras y después los casos en cada grupo
set.seed(123)
tibble(fumadoras = rbinom(n = 20, size = 100, prob = 0.3)) |>
  mutate(x = rbinom(n = n(), size = fumadoras, prob = 0.1) +
               rbinom(n = n(), size = 100 - fumadoras, prob = 0.01)) |>
  ggplot(aes(x = x, y = after_stat(prop))) +
  stat_count(fill = myblue, width = 0.2) +
  labs(title = "Casos de cáncer en muestras de 100 personas",
       x = "Número de personas con cáncer", y = "Frecuencia relativa")

set.seed(123)
tibble(fumadoras = rbinom(n = 10000, size = 100, prob = 0.3)) |>
  mutate(x = rbinom(n = n(), size = fumadoras, prob = 0.1) +
               rbinom(n = n(), size = 100 - fumadoras, prob = 0.01)) |>
  ggplot(aes(x = x, y = after_stat(prop))) +
  stat_count(fill = myblue, width = 0.2) +
  labs(title = "Casos de cáncer en 10000 muestras de 100 personas",
       x = "Número de personas con cáncer", y = "Frecuencia relativa")

Ejercicio 2.6 La tasa diaria de personas que acuden a un especialista en un hospital sigue una distribución normal de media 10 y desviación típica 2.

  1. Obtener una muestra aleatoria de 30 días del número de personas que acuden al especialista, tomando una tasa fija de 10, y dibujar la distribución de frecuencias.
  2. Obtener una muestra aleatoria de 30 días del número de personas que acuden al especialista, tomando una tasa diaria aleatoria \(\sim N(10, 2)\), y dibujar la distribución de frecuencias.
  3. Repetir el apartado a con 10000 días.
  4. Repetir el apartado b con 10000 días.
Solución
set.seed(123)
tibble(x = rpois(n = 30, lambda = 10)) |>
  ggplot(aes(x = x, y = after_stat(prop))) +
  stat_count(fill = myblue, width = 0.2) +
  labs(title = "Personas que acuden al especialista en 30 días con tasa 10",
       x = "Número de personas", y = "Frecuencia relativa")

set.seed(123)
tibble(lambda = rnorm(n = 30, mean = 10, sd = 2)) |>
  mutate(x = rpois(n = n(), lambda = lambda)) |>
  ggplot(aes(x = x, y = after_stat(prop))) +
  stat_count(fill = myblue, width = 0.2) +
  labs(title = "Personas que acuden al especialista en 30 días con tasa aleatoria",
       x = "Número de personas", y = "Frecuencia relativa")

set.seed(123)
tibble(x = rpois(n = 10000, lambda = 10)) |>
  ggplot(aes(x = x, y = after_stat(prop))) +
  stat_count(fill = myblue, width = 0.2) +
  labs(title = "Personas que acuden al especialista en 10000 días con tasa 10",
       x = "Número de personas", y = "Frecuencia relativa")

set.seed(123)
tibble(lambda = rnorm(n = 10000, mean = 10, sd = 2)) |>
  mutate(x = rpois(n = n(), lambda = lambda)) |>
  ggplot(aes(x = x, y = after_stat(prop))) +
  stat_count(fill = myblue, width = 0.2) +
  labs(title = "Personas que acuden al especialista en 10000 días con tasa aleatoria",
       x = "Número de personas", y = "Frecuencia relativa")