Estadística Descriptiva

Roger M. López

Introducción

Cada vez que trabajamos con un conjunto de datos, la primera tarea es resumir la información de forma clara y comprensible. Lo segundo es organizar la información y, en tercer lugar, está el presentarla. Esto es el propósito de la estadística descriptiva, que es el primer paso en cualquier análisis estadístico, antes de aplicar métodos más avanzados.

Los datos

Nuevamente en esta parte del curso, vamos a utilizar los datos obtenidos del Fondo Monetario Internacional (FMI) vistos en la clase anterior, pero acotados para los años 2000 a 2023.

data <- readr::read_csv("Data/Data_FMI.csv")

data <- data |> 
  dplyr::filter(Año >= 2000, Año <= 2023)

Recordar que, alternativamente, se puede utilizar el comando library() para cargar el paquete tidyverse, que incluye dplyr y ggplot2, entre otros.

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.2     ✔ tibble    3.2.1
✔ lubridate 1.9.4     ✔ tidyr     1.3.1
✔ purrr     1.0.4     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Medidas de tendencia central

Las medidas de tendencia central son números que representan el centro de un conjunto de datos. Las más comunes son la media, la mediana y la moda.

Media

La media es el promedio de un conjunto de datos. Se calcula sumando todos los valores y dividiendo por el número de valores.

\[\bar x = \frac{1}{n}\sum_{i=1}^{n} x_i\]

Donde:

  • \(\bar x\) es la media.
  • \(n\) es el número de observaciones.
  • \(x_i\) son los valores individuales.

Por ejemplo, si tenemos los valores 2, 3, 5 y 7, la media sería: \[\bar x = \frac{2 + 3 + 5 + 7}{4} = \frac{17}{4} = 4.25\]

Intuitivamente, la media es el valor que “equilibra” todos los datos. Es decir, si tuviéramos que colocar todos los valores en una balanza, la media sería el punto de equilibrio.

Para calcular la media del PIB per cápita en 2023, utilizamos el siguiente código:

mean(data$GDPpc_usd[data$Año == 2023]/1000, na.rm = TRUE)
[1] 17.66769

Alternativamente, usando dplyr:

data |> 
  filter(Año == 2023) |>
  summarise(media_GDPpc = mean(GDPpc_usd/1000, na.rm = TRUE))
# A tibble: 1 × 1
  media_GDPpc
        <dbl>
1        17.7






Nota

La media es sensible a los valores extremos (outliers). Por ejemplo, si un país tiene un PIB per cápita muy alto, puede distorsionar la media hacia arriba. Por eso, en algunos casos, es preferible utilizar la mediana como medida de tendencia central.

Mediana

La mediana es el valor que divide un conjunto de datos en dos partes iguales. Es decir, el 50% de los valores están por debajo de la mediana y el 50% están por encima. Se calcula ordenando los datos y seleccionando el valor del medio.


Si el número de observaciones es impar, la mediana es el valor del medio. Si es par, la mediana es el promedio de los dos valores del medio.


A diferencia de la media, la mediana no se ve afectada por los valores extremos. Por lo tanto, es una medida más robusta de tendencia central en presencia de outliers.

Definición formal de la mediana

Sea \(X\) un conjunto de datos con \(n\) observaciones. Primero, ordenamos los datos de menor a mayor:

\[ X_{\text{ordenado}} = \{ x_{(1)}, x_{(2)}, \dots, x_{(n)} \} \text{ tal que } x_{(1)} \leq x_{(2)} \leq \dots \leq x_{(n)} \]

La mediana se define como:

\[ \text{Mediana}(X) = \begin{cases} x_{\left( \frac{n+1}{2} \right)} & \text{si } n \text{ es impar}, \\ \frac{1}{2} \left( x_{\left( \frac{n}{2} \right)} + x_{\left( \frac{n}{2} + 1 \right)} \right) & \text{si } n \text{ es par}. \end{cases} \]

Por ejemplo, si tenemos los valores 2, 3, 5 y 7, la mediana sería:

  • Como hay 4 valores (par), tomamos los dos del medio: 3 y 5
  • La mediana es el promedio de estos dos valores:

\[\text{Mediana} = \frac{3 + 5}{2} = 4\]

Intuitivamente, la mediana es el valor que divide el conjunto de datos en dos partes iguales.

Para calcular la mediana del PIB per cápita en 2023, utilizamos el siguiente código:

median(data$GDPpc_usd[data$Año == 2023]/1000, na.rm = TRUE)
[1] 7.20377

Alternativamente, usando dplyr:

data |> 
  filter(Año == 2023) |>
  summarise(media_GDPpc = median(GDPpc_usd/1000, na.rm = TRUE))
# A tibble: 1 × 1
  media_GDPpc
        <dbl>
1        7.20

Medidas de dispersión

Las medidas de dispersión indican cuánto varían los datos respecto a la media o a la mediana. Las más comunes son el rango, el rango intercuartil, la varianza y la desviación estándar.

Rango

El rango es la diferencia entre el valor máximo y el valor mínimo de un conjunto de datos. Se calcula como: \[ Rango = x_{\text{max}} - x_{\text{min}} \]

Donde:

  • \(x_{\text{max}}\) es el valor máximo.
  • \(x_{\text{min}}\) es el valor mínimo.

Por ejemplo, si tenemos los valores 2, 3, 5 y 7, el rango sería:

\[ Rango = 7 - 2 = 5 \]

Intuitivamente, el rango nos da una idea de la amplitud de los datos. Es decir, cuánto se extienden los valores desde el mínimo hasta el máximo.

En nuestro caso, el rango del PIB per cápita en 2023 se calcula de la siguiente manera:

maximo <- max(data$GDPpc_usd[data$Año == 2023]/1000, na.rm = TRUE) 
minimo <- min(data$GDPpc_usd[data$Año == 2023]/1000, na.rm = TRUE)

rango <- maximo - minimo

rango
[1] 132.2364

Alternativamente, usando dplyr:

data |> 
  filter(Año == 2023) |>
  summarise(rango_GDPpc = max(GDPpc_usd/1000, na.rm = TRUE) - min(GDPpc_usd/1000, na.rm = TRUE))
# A tibble: 1 × 1
  rango_GDPpc
        <dbl>
1        132.

Rango intercuartil

Un cuantil (también llamado percentil) es un valor que divide un conjunto de datos ordenados en partes iguales. Por ejemplo, el cuantil 25° es el valor que separa el 25% inferior de los datos del 75% superior.

Los cuartiles son valores que dividen un conjunto de datos ordenados en cuatro partes iguales:

  • Primer cuartil (\(Q1\)): el valor que separa el 25% inferior de los datos.
  • Segundo cuartil (\(Q2\)): la mediana, que separa el 50% inferior del 50% superior.
  • Tercer cuartil (\(Q3\)): el valor que separa el 75% inferior de los datos.

El rango intercuartil se calcula como:

\[ IQR = Q3 - Q1 \]

En nuestro ejemplo, el rango intercuartil del PIB per cápita en 2023 se calcula de la siguiente manera:

Para calcular el IQR del PIB per capita 2023, utilizamos:

q1 <- quantile(data$GDPpc_usd[data$Año == 2023]/1000, probs = 0.25, na.rm = TRUE)
q3 <- quantile(data$GDPpc_usd[data$Año == 2023]/1000, probs= 0.75, na.rm = TRUE)

rango_intercuartil <- q3 - q1
rango_intercuartil
     75% 
20.21851 

Alternativamente, usando dplyr:

data |> 
  filter(Año == 2023) |>
  summarise(rango_intercuartil_GDPpc = IQR(GDPpc_usd/1000, na.rm = TRUE))
# A tibble: 1 × 1
  rango_intercuartil_GDPpc
                     <dbl>
1                     20.2

Boxplot o gráfico de caja

Una forma común de visualizar el rango intercuartil y los cuartiles es mediante el gráfico de caja (boxplot). Este gráfico muestra la mediana, los cuartiles y los valores atípicos (outliers) de un conjunto de datos.

En un boxplot, la caja representa el rango intercuartil (IQR), la línea dentro de la caja representa la mediana, y las “extensiones” (bigotes) se extienden hasta el valor mínimo y máximo dentro de 1.5 veces el IQR.

Por ejemplo, en el caso del PIB per cápita en 2023, el boxplot muestra la distribución de los datos, destacando los cuartiles y la mediana. Los puntos fuera de los bigotes son considerados outliers.

En nuestro caso, el boxplot es bastante sugerente: la mayoría de los países tienen un PIB per cápita entre USD 5,000 y USD 20,000, pero hay algunos países con PIB per cápita muy altos (outliers) que distorsionan la media.

Lo interesante, desde el punto de vista del análisis, es quizás preguntarse por qué observamos esos datos.

Una primera pregunta es: ¿este tipo de distribución del ingreso se ha visto en otros años? ¿O es algo nuevo? Podríamos, por ejemplo, graficar el boxplot del PIB per cápita para todos los años y ver si la distribución ha cambiado.

Otra pregunta interesante es cómo se compara la distribución del PIB per cápita entre diferentes regiones del mundo. Podríamos, por ejemplo, graficar el boxplot del PIB per cápita por región.

Varianza y desviación estándar

La varianza es una medida de la dispersión de los datos respecto a la media. Se calcula como el promedio de las diferencias al cuadrado entre cada valor y la media:

\[ \hat\sigma^2 = \frac{1}{n}\sum_{i=1}^{n} (x_i - \bar x)^2 \]

Donde:

  • \(\sigma^2\) es la varianza.
  • \(n\) es el número de observaciones.
  • \(x_i\) son los valores individuales.
  • \(\bar x\) es la media.

Intuitivamente, la varianza nos dice cuánto se dispersan los datos respecto a la media. Si la varianza es alta, significa que los datos están muy dispersos; si es baja, significa que los datos están más concentrados alrededor de la media.

Ejemplo de cálculo

Se desea calcular la varianza de los valores 2, 3, 5 y 7.

Para ello, primero calculamos la media: \[ \begin{align*} \bar x &= \frac{2 + 3 + 5 + 7}{4} = 4.25 \end{align*} \]

Luego, calculamos la varianza:

\[ \begin{align*} \hat{\sigma}^2 &= \frac{1}{4} \left( (2 - 4.25)^2 + (3 - 4.25)^2 + (5 - 4.25)^2 + (7 - 4.25)^2 \right) \\ &= \frac{1}{4} \left( 5.0625 + 1.5625 + 0.5625 + 7.5625 \right) \\ &= \frac{14.75}{4} = 3.6875 \end{align*} \]

¿Cómo se interpreta la varianza?

Desviación estándar

La varianza no tiene las mismas unidades que los datos originales, sino que representa “unidades al cuadrado” lo que puede dificultar su interpretación.

Por esta razón, se utiliza la desviación estándar, que es la raíz cuadrada de la varianza:

\[ \begin{array}{rl} \hat\sigma &= \sqrt{\hat\sigma^2} \\ &= \sqrt{\dfrac{1}{n} \sum\limits_{i=1}^{n} (x_i - \bar{x})^2} \end{array} \]

Donde:

  • \(\hat\sigma^2\) es la varianza.
  • \(n\) es el número de observaciones.
  • \(x_i\) son los valores individuales.
  • \(\bar x\) es la media.

Intuitivamente, la desviación estándar nos dice cuánto se dispersan los datos respecto a la media, pero en las mismas unidades que los datos originales.

Simetría y curtosis

La simetría y la curtosis son dos medidas que describen la forma de una distribución de datos. Estas medidas son útiles para entender cómo se distribuyen los datos en torno a la media y cómo se comportan las colas de la distribución.

Simetría (skewness)

La simetría, como su nombre lo indica, mide qué tan simétrica es una distribución. Una distribución es simétrica si sus dos mitades son iguales cuando se divide por la mitad.

Se mide mediante el coeficiente de asimetría (skewness), que puede ser positivo, negativo o cero:

\[\mbox{simetría}(x) = \frac{1}{n \hat{\sigma}^3} \sum_{i=1}^n (x_i - \bar{x})^3\]

  • \(n\) es el número de observaciones.
  • \(\hat{\sigma}\) es la desviación estándar muestral.
  • \(x_i\) son los valores individuales.
  • \(\bar{x}\) es la media.
  • Regla (señal) de interpretación
    • \(\text{simetría} < 0 \rightarrow\) sesgo negativo o a la izquierda.
    • \(\text{simetría} = 0 \rightarrow\) simétrica.
    • \(\text{simetría} > 0 \rightarrow\) sesgo positivo o a la derecha.

La librería psych de R tiene una función llamada skew() que calcula la simetría de un vector de datos. Por ejemplo, para calcular la simetría del PIB per cápita en 2023, se puede usar:

psych::skew((data$GDPpc_usd[data$Año == 2023]/1000), na.rm = TRUE)
[1] 2.049937

Curtosis (kurtosis)

La curtosis mide la “altura” y “ancho” de las colas de una distribución. Es decir, evalúa qué tan concentrados están los datos en torno a la media y cómo se comportan los valores extremos.

Se define como:

\[\mbox{curtosis}(x) = \frac{1}{n \hat\sigma^4} \sum_{i=1}^n \left( x_i - \bar{x} \right)^4 - 3\]

  • \(n\) es el número de observaciones.
  • \(\hat{\sigma}\) es la desviación estándar muestral.
  • \(x_i\) son los valores individuales.
  • \(\bar{x}\) es la media.
  • Idea cualitativa
    • Evalúa qué tan concentrada en el centro o “achatada” es la distribución respecto a la normal.
    • Se centra en el tamaño de las colas (valores extremos).
  • Clasificación informal

    Forma Nombre técnico Signo de la excess kurtosis
    “Demasiado plana” Platykurtic negativa
    “En el punto justo” Mesokurtic cero
    “Demasiado picuda” Leptokurtic positiva

La librería psych de R tiene una función llamada kurtosi() que calcula la curtosis de un vector de datos. Por ejemplo, para calcular la curtosis del PIB per cápita en 2023, se puede usar:

psych::kurtosi((data$GDPpc_usd[data$Año == 2023]/1000), na.rm = TRUE)
[1] 4.560115



Covarianza y correlación

La covarianza y la correlación son dos medidas que describen la relación entre dos variables. Ambas son útiles para entender cómo varían juntas las variables y si existe una relación lineal entre ellas.

Motivación

Puntaje en test. Usualmente, cuando se aplica a una Universidad (o maestría), los postulantes deben rendir una serie de tests estandarizados. Imagine que en un test particular hay una sección de razonamiento verbal y otra de razonamiento cuantitativo. Sea \(X\) el puntaje obtenido por un individuo en la parte verbal y \(Y\) en la parte cuantitativa.

Aunque hay estudiantes que rinden mejor sobre una parte de la prueba que sobre otra, es bastante razonable suponer que un estudiante que ha tenido muy buen puntaje en una sección tendrá un rendimiento al menos tan bueno como promedio en la otra.

¿Cómo podríamos encontrar un número de la distribución de probabilidad conjunta de \(X\) y \(Y\) que refleje el grado en que tener un buen puntaje en una sección del test esté acompañado por un buen puntaje en la otra sección?

Covarianza

La covarianza es una medida que indica cómo dos variables varían juntas. Matemáticamente:

\[ \mbox{Cov}(x,y) = \frac{1}{n-1} \sum_{i=1}^n \left( x_i - \bar{x} \right) \left( y_i - \bar{y} \right) \]

Donde:

  • \(\mbox{Cov}(x,y)\) es la covarianza entre las variables \(x\) e \(y\).
  • \(n\) es el número de observaciones.
  • \(x_i\) y \(y_i\) son los valores individuales de las variables \(x\) e \(y\).

En R, usando la función cov():

data |> filter(Pais == 'Bolivia', Año >1990) |>
  summarise(cov_crecimiento_inflacion = cov(rgrowth, Inflacion, use = "complete.obs"))
# A tibble: 1 × 1
  cov_crecimiento_inflacion
                      <dbl>
1                      3.84

Es posible construir un ejemplo sencillo para ilustrar la covarianza. Supongamos que tenemos dos variables \(X\) e \(Y\):

Advertencia

La covarianza puede ser difícil de interpretar porque su valor depende de las unidades de las variables. Por ejemplo, si \(X\) está en metros y \(Y\) en kilogramos, la covarianza tendrá unidades de metros-kilogramos.

Correlación

La correlación es una medida estandarizada de la covarianza que indica la fuerza y dirección de la relación lineal entre dos variables. Se define como:

\[ \mbox{Corr}(x,y) = \frac{\mbox{Cov}(x,y)}{\hat\sigma_x \hat\sigma_y} \]

Donde:

  • \(\mbox{Corr}(x,y)\) es la correlación entre las variables \(x\) e \(y\).
  • \(\mbox{Cov}(x,y)\) es la covarianza entre las variables \(x\) e \(y\).
  • \(\hat\sigma_x\) y \(\hat\sigma_y\) son las desviaciones estándar de las variables \(x\) e \(y\), respectivamente.

En R, usando la función cor():

data |> filter(Pais == 'Bolivia', Año >1990) |>
  summarise(cor_crecimiento_inflacion = cor(rgrowth, Inflacion, use = "complete.obs"))
# A tibble: 1 × 1
  cor_crecimiento_inflacion
                      <dbl>
1                     0.420

Además, la correlación está acotada entre -1 y 1:

  • Si \(\mbox{Corr}(x,y) = 1\), hay una relación lineal perfecta positiva.
  • Si \(\mbox{Corr}(x,y) = -1\), hay una relación lineal perfecta negativa.
  • Si \(\mbox{Corr}(x,y) = 0\), no hay relación lineal entre las variables.

Finalmente, la correlación es adimensional, lo que significa que no depende de las unidades de las variables. Esto la hace más fácil de interpretar que la covarianza, además de que permite comparar la fuerza de la relación entre diferentes pares de variables.

Siempre es bueno visualizar la relación entre dos variables. En este caso, podemos graficar el crecimiento del PIB real y la inflación para Bolivia desde 1990.

Por ejemplo, en este caso la relación parece no lineal. En este sentido, el coeficiente de correlación podría no ser la métrica más adecuada para representar el grado de relación entre ambas variables.