Técnicas de Muestreo en R

Introducción

Este documento tiene como objetivo aplicar y explicar diversas técnicas de muestreo estadístico utilizando R. Se trabajará con un conjunto de datos poblacional de acciones (acciones.csv) para extraer muestras representativas que permitan realizar inferencias. Cada técnica de muestreo se presentará con su código correspondiente y una explicación de su implementación y propósito.


1. Carga y Preparación de Datos

Antes de realizar cualquier muestreo, es fundamental cargar las herramientas necesarias y nuestro conjunto de datos. También definiremos los parámetros clave para nuestro análisis.

1.1. Carga de Librerías y Lectura de Datos

Se utilizarán las siguientes librerías de R:

  • dplyr: Es una librería fundamental para la manipulación de datos. Nos permitirá filtrar, agrupar y seleccionar datos de manera intuitiva y eficiente.
  • readr: Proporciona una forma rápida y amigable de leer archivos rectangulares como los .csv.

1.2. Análisis y Limpieza de Datos Faltantes (NA)

Antes de realizar el muestreo, es una buena práctica inspeccionar la calidad de los datos. Específicamente, verificaremos la presencia de valores faltantes (NA), ya que estos pueden afectar los análisis.

El siguiente código realiza tres acciones: 1. Calcula el número total de celdas con NA en todo el conjunto de datos. 2. Crea un nuevo dataframe llamado datos_limpios eliminando todas las filas que contengan al menos un valor NA. 3. Muestra un resumen del proceso de limpieza.

##      fecha            precio_cierre       sector         
##  Min.   :2013-01-01   Min.   :-37.07   Length:3521       
##  1st Qu.:2015-06-28   1st Qu.:117.39   Class :character  
##  Median :2017-12-22   Median :176.90   Mode  :character  
##  Mean   :2017-12-27   Mean   :178.85                     
##  3rd Qu.:2020-06-26   3rd Qu.:240.01                     
##  Max.   :2022-12-29   Max.   :417.48                     
##  clasificacion_crediticia    region          volumen_transacciones
##  Length:3521              Length:3521        Min.   :1002         
##  Class :character         Class :character   1st Qu.:3298         
##  Mode  :character         Mode  :character   Median :5536         
##                                              Mean   :5542         
##                                              3rd Qu.:7871         
##                                              Max.   :9999         
##    dividendos    capitalizacion_bursatil volatilidad_diaria margen_operativo
##  Min.   :0.000   Min.   : 50064935       Min.   :0.500      Min.   : 5.00   
##  1st Qu.:1.260   1st Qu.:112407108       1st Qu.:1.610      1st Qu.: 8.63   
##  Median :2.490   Median :172730966       Median :2.690      Median :12.40   
##  Mean   :2.504   Mean   :173445414       Mean   :2.716      Mean   :12.42   
##  3rd Qu.:3.760   3rd Qu.:233835495       3rd Qu.:3.820      3rd Qu.:16.12   
##  Max.   :5.000   Max.   :299884880       Max.   :4.990      Max.   :20.00   
##   deuda_total      rendimiento_alto
##  Min.   :1000711   Min.   :0.0000  
##  1st Qu.:3327775   1st Qu.:0.0000  
##  Median :5543841   Median :0.0000  
##  Mean   :5520976   Mean   :0.4942  
##  3rd Qu.:7716988   3rd Qu.:1.0000  
##  Max.   :9999604   Max.   :1.0000

1.3. Definición del Tamaño de la Población y la Muestra

Población (N): Nuestra población de estudio (N) corresponde a la totalidad de los registros contenidos en el archivo acciones.csv. Para determinar su tamaño, simplemente contamos el número de filas del dataframe.

Tamaño de la Muestra (n): Para los fines de este ejercicio, se ha decidido trabajar con un tamaño de muestra (n) de 400.

La elección de este tamaño se hace con un propósito demostrativo. En un escenario real, este valor se obtendría a través de un cálculo de poder estadístico, pero para ilustrar las técnicas de muestreo, un tamaño de 400 es ideal porque es suficientemente grande (aproximadamente un 11% de la población) para generar resultados significativos y a la vez es manejable para su análisis e inspección.

## El tamaño de la población (N) es: 3521 registros.
## El tamaño de muestra deseado (n) es: 400 registros.

2. Muestreo Aleatorio Simple (MAS)

El Muestreo Aleatorio Simple (MAS) asegura que cada registro de la población tenga la misma probabilidad de ser elegido. A continuación, seleccionaremos n=400 registros únicos de forma aleatoria, sin permitir que un mismo registro sea elegido más de una vez.

## Primeros 6 registros de la Muestra Aleatoria Simple (n=400):
## # A tibble: 6 × 12
##   fecha      precio_cierre sector     clasificacion_crediticia region 
##   <date>             <dbl> <chr>      <chr>                    <chr>  
## 1 2019-12-25          64.0 Salud      BB                       Asia   
## 2 2020-02-13         323.  Tecnología AAA                      Europa 
## 3 2019-04-25         170.  Finanzas   BB                       América
## 4 2014-06-26         136.  Finanzas   BB                       América
## 5 2013-07-18         196.  Salud      BB                       Asia   
## 6 2021-06-24          82.2 Salud      BBB                      América
## # ℹ 7 more variables: volumen_transacciones <dbl>, dividendos <dbl>,
## #   capitalizacion_bursatil <dbl>, volatilidad_diaria <dbl>,
## #   margen_operativo <dbl>, deuda_total <dbl>, rendimiento_alto <dbl>

La tabla anterior muestra los primeros 6 registros de nuestra muestra_mas, creada a través del Muestreo Aleatorio Simple sin Reemplazo.

Cada una de las 6 filas que vemos es un registro único de la población original de 3651 acciones. Gracias a que usamos replace = FALSE, podemos estar seguros de que ninguno de estos 6 registros (ni ninguno de los otros 394 de la muestra) está duplicado


Justificación sobre el Muestreo con Reemplazo

¿Sería útil usar muestreo aleatorio simple con reemplazo en este caso?

No, para este objetivo no sería útil. El muestreo con reemplazo implicaría que un mismo registro (la misma acción en la misma fecha) podría ser seleccionado más de una vez.

Esto generaría duplicados dentro de nuestra muestra de 400 registros, lo cual tiene dos desventajas principales: 1. No aporta información nueva: Un registro repetido no nos dice nada nuevo sobre la diversidad de la población. 2. Sesga los resultados: Al calcular estadísticas como promedios o varianzas, los registros duplicados tendrían un peso indebido, distorsionando el análisis.


3. Muestreo Sistemático

El muestreo sistemático es una técnica que selecciona elementos de la población a intervalos regulares. Es más sencillo que el muestreo aleatorio simple y puede ser igual de efectivo si no existen patrones ocultos en los datos.

El proceso es el siguiente: 1. Se calcula un “intervalo de salto” (k) dividiendo el tamaño de la población N entre el tamaño de la muestra n. 2. Se elige un punto de partida aleatorio entre 1 y k. 3. A partir de ese inicio, se selecciona cada k-ésimo elemento hasta completar la muestra.

## Intervalo de salto (k) calculado: 8
## Punto de inicio aleatorio: 1
## Primeros 6 registros de la Muestra Sistemática:
## # A tibble: 6 × 12
##   fecha      precio_cierre sector     clasificacion_crediticia region 
##   <date>             <dbl> <chr>      <chr>                    <chr>  
## 1 2013-01-01         224.  Tecnología AAA                      Europa 
## 2 2013-01-09          58.5 Salud      BBB                      América
## 3 2013-01-17         162.  Tecnología BB                       Europa 
## 4 2013-01-25         117.  Salud      AAA                      Europa 
## 5 2013-02-02         205.  Tecnología AAA                      Asia   
## 6 2013-02-10         106.  Finanzas   AAA                      Europa 
## # ℹ 7 more variables: volumen_transacciones <dbl>, dividendos <dbl>,
## #   capitalizacion_bursatil <dbl>, volatilidad_diaria <dbl>,
## #   margen_operativo <dbl>, deuda_total <dbl>, rendimiento_alto <dbl>

4. Muestreo Estratificado

El muestreo estratificado divide la población en subgrupos homogéneos (llamados estratos) para luego realizar un muestreo dentro de cada uno. Esta técnica garantiza que los diferentes subgrupos de la población estén representados adecuadamente en la muestra.

Para estos ejemplos, usaremos la columna region como variable de estratificación.

4.1. Muestreo Estratificado Proporcional

En este método, el tamaño de la muestra que se toma de cada estrato es proporcional a su tamaño en la población. Por ejemplo, si una región constituye el 30% de la población total, también constituirá el 30% de nuestra muestra.

## Distribución de la muestra proporcional por región:
## 
## América    Asia  Europa 
##     128     137     134
## 
## Primeros 6 registros de la Muestra Estratificada Proporcional:
## # A tibble: 6 × 12
##   fecha      precio_cierre sector     clasificacion_crediticia region 
##   <date>             <dbl> <chr>      <chr>                    <chr>  
## 1 2014-06-15         151.  Salud      BB                       América
## 2 2017-07-16         183.  Tecnología BBB                      América
## 3 2021-02-21         117.  Salud      AAA                      América
## 4 2014-10-01         242.  Tecnología BB                       América
## 5 2016-03-05          48.8 Finanzas   BBB                      América
## 6 2018-08-15         239.  Tecnología BBB                      América
## # ℹ 7 more variables: volumen_transacciones <dbl>, dividendos <dbl>,
## #   capitalizacion_bursatil <dbl>, volatilidad_diaria <dbl>,
## #   margen_operativo <dbl>, deuda_total <dbl>, rendimiento_alto <dbl>

4.2. Muestreo Estratificado Uniforme

A diferencia del proporcional, en el muestreo uniforme se extrae el mismo número de elementos de cada estrato, sin importar su peso en la población.

## Número de muestras a tomar por cada región: 133
## Distribución de la muestra uniforme por región:
## 
## América    Asia  Europa 
##     133     133     133
## 
## Primeros 6 registros de la Muestra Estratificada Uniforme:
## # A tibble: 6 × 12
##   fecha      precio_cierre sector   clasificacion_crediticia region 
##   <date>             <dbl> <chr>    <chr>                    <chr>  
## 1 2015-04-09         235.  Salud    BB                       América
## 2 2019-04-06         238.  Finanzas BBB                      América
## 3 2018-11-04         236.  Salud    AAA                      América
## 4 2016-02-28         196.  Salud    BB                       América
## 5 2017-06-24         104.  Salud    AAA                      América
## 6 2022-07-31          64.2 Finanzas AAA                      América
## # ℹ 7 more variables: volumen_transacciones <dbl>, dividendos <dbl>,
## #   capitalizacion_bursatil <dbl>, volatilidad_diaria <dbl>,
## #   margen_operativo <dbl>, deuda_total <dbl>, rendimiento_alto <dbl>

5. Muestreo por Conglomerados

El muestreo por conglomerados implica dividir la población en grupos (o “conglomerados”). A diferencia del estratificado, aquí se selecciona una muestra aleatoria de conglomerados enteros, y todos los individuos dentro de los conglomerados seleccionados forman parte de la muestra.

Esta técnica es útil cuando es más fácil obtener una lista de grupos que de individuos. En nuestro caso, usaremos la columna sector para definir los conglomerados.

# Se carga la librería dplyr para asegurar que el operador %>% esté disponible.
library(dplyr)

# 1. Se crea una lista con todos los conglomerados (sectores) únicos disponibles.
lista_conglomerados <- unique(datos_limpios$sector)

# 2. Se seleccionan aleatoriamente 2 conglomerados de la lista.
conglomerados_seleccionados <- sample(lista_conglomerados, size = 2)

# 3. Se utiliza filter() para seleccionar TODAS las filas cuyo sector esté en la
#    lista de conglomerados seleccionados. El operador %in% es ideal para esto.
muestra_conglomerados <- datos_limpios %>%
  filter(sector %in% conglomerados_seleccionados)

# Se muestran los resultados para verificar el proceso.
cat("Conglomerados (Sectores) seleccionados aleatoriamente:", 
    paste(conglomerados_seleccionados, collapse=", "), "\n\n")
## Conglomerados (Sectores) seleccionados aleatoriamente: Finanzas, Salud
cat("El tamaño final de la muestra por conglomerados es de:", 
    nrow(muestra_conglomerados), "registros.\n\n")
## El tamaño final de la muestra por conglomerados es de: 2348 registros.
cat("Primeros 6 registros de la Muestra por Conglomerados:\n")
## Primeros 6 registros de la Muestra por Conglomerados:
head(muestra_conglomerados)
## # A tibble: 6 × 12
##   fecha      precio_cierre sector   clasificacion_crediticia region 
##   <date>             <dbl> <chr>    <chr>                    <chr>  
## 1 2013-01-02         151.  Salud    BBB                      América
## 2 2013-01-06         238.  Finanzas BBB                      América
## 3 2013-01-08         192.  Finanzas BBB                      Asia   
## 4 2013-01-09          58.5 Salud    BBB                      América
## 5 2013-01-12         125.  Finanzas BBB                      América
## 6 2013-01-13         250.  Salud    AAA                      Asia   
## # ℹ 7 more variables: volumen_transacciones <dbl>, dividendos <dbl>,
## #   capitalizacion_bursatil <dbl>, volatilidad_diaria <dbl>,
## #   margen_operativo <dbl>, deuda_total <dbl>, rendimiento_alto <dbl>

5.2. ¿Cuándo resulta útil emplear esta técnica en comparación con el muestreo estratificado?

La elección entre conglomerados y estratificado depende de los objetivos y recursos del estudio.

El Muestreo por Conglomerados es particularmente útil cuando:

  • El objetivo es reducir costos y simplificar la logística: Es muy eficiente cuando la población está muy dispersa geográficamente. Es más barato visitar 2 ciudades enteras que visitar 100 ciudades para encuestar a unas pocas personas en cada una.
  • No existe un listado completo de todos los individuos: A menudo es más fácil conseguir una lista de grupos (escuelas, empresas, barrios) que de todas las personas que los componen.

La principal diferencia con el Muestreo Estratificado es:

Característica Muestreo Estratificado Muestreo por Conglomerados
Objetivo Precisión estadística. Eficiencia y reducción de costos.
Selección Se muestrean algunos individuos DE TODOS los estratos. Se muestrean TODOS los individuos DE ALGUNOS conglomerados.

En resumen: se elige el estratificado por precisión y el de conglomerados por eficiencia.


6. Declaración de Uso de IA

En cumplimiento con la integridad académica, se declara el uso de Gemini (la IA de Google) como herramienta de apoyo en este trabajo.

La asistencia se centró en mejorar la redacción, estructurar el documento y en la generación, explicación y depuración del código R.