Guía básica de muestreo de datos aleatorio y estratificado en Python



El muestreo estadístico es una forma genial de obtener información precisa sin tener que analizar a toda una población. El muestreo estadístico es una herramienta esencial en el campo de la investigación y la estadística. Permite obtener una muestra representativa de una población más grande, lo que facilita el análisis y las conclusiones precisas. En este blog post, exploraremos dos métodos comunes de muestreo: el muestreo aleatorio y el muestreo estratificado, destacando sus características, ventajas y desafíos.

En procesos de machine learning y análisis estadístico, el muestreo permitirá ejecutar análisis y procesos con una menor cantidad de registros, requiriendo menor capacidad de cómputo y almacenamiento que si se hace con el set completo, lo que facilita el proceso de desarrollo. Es un recurso muy valioso cuando se tienen grandes datasets.

Muestreo Aleatorio Simple

El muestreo muestreo aleatorio simple, es el método más básico de selección de muestras y  consiste en seleccionar aleatoriamente individuos de una población sin ningún criterio específico. Cada miembro de la población tendrá la misma probabilidad de ser incluido en la muestra, lo que garantiza la representatividad.

Características y Ventajas

  • Sencillez: El muestreo aleatorio es fácil de implementar y no requiere información previa sobre la población.
  • Representatividad: Debido a su naturaleza aleatoria, el muestreo aleatorio ofrece una muestra que representa fielmente las características de la población.
  • Facilita el análisis estadístico: Los resultados obtenidos de la muestra pueden generalizarse a toda la población, siempre que la muestra sea lo suficientemente grande y representativa.

Desafíos:

  • Ineficiencia en poblaciones grandes: En poblaciones muy extensas, el muestreo aleatorio simple puede ser costoso y requiere mucho tiempo para seleccionar y recopilar la información de la muestra.
  • No adecuado para poblaciones heterogéneas: Si la población tiene subgrupos muy diferentes, el muestreo aleatorio puede no reflejar adecuadamente las características de cada subgrupo e incluso dejar por fuera algunos segmentos.

Muestreo aleatorio en Python con Pandas:

Cargamos el dataset general, que lee 10,000 registros de información básica de series de TV tomados de TVMaze.com

import pandas as pd
# cargamos dataset de 10,000 registros sobre series de TV de Tvmaze.com
dfDatos= pd.read_csv('https://raw.githubusercontent.com/gcastano/datasets/main/TVMaze_Shows_Genres_encoded_10K.csv')

Generamos la muestra por cantidad de registros, para ello usamos el método sample de Pandas y se entrega el parámetro n con la cantidad de registros que deseamos de la muestra, en este caso tomaremos 1000 filas.

# Muestreo aleatorio simple por cantidad de registros
dfDatos.sample(n=1000)

Generamos muestra por porcentaje, usando el método sample y en este caso usamos el parámetro frac con el porcentaje de registros, en este caso 25% que para el parámetro será 0.25

# Muestreo aleatorio simple por porcentaje de registros
dfDatos.sample(frac=0.25)


Muestreo Estratificado

El muestreo estratificado es un método más sofisticado que primero, divide la población en grupos similares llamados "estratos" y luego, elegimos personas al azar de cada grupo para garantizar que cada grupo esté bien representado en la muestra. En cada estrato, se selececciona aleatoriamente una muestra en función de su tamaño o importancia relativa dentro de la población total.

Características y Ventajas

  • Precisión: Al considerar las diferencias dentro de la población, el muestreo estratificado proporciona estimaciones más precisas para cada estrato.
  • Eficiencia: En comparación con el muestreo aleatorio, el muestreo estratificado puede requerir menos recursos al reducir el tamaño de la muestra necesario para obtener estimaciones confiables.
  • Representatividad mejorada: Al asegurarse de que cada estrato esté representado en la muestra, el muestreo estratificado aborda la falta de representatividad que puede surgir en el muestreo aleatorio.

Desafíos

  • Diseño complejo: El muestreo estratificado puede requerir un diseño más elaborado, ya que es necesario determinar los estratos y sus tamaños adecuadamente.
  • Información adicional: Para aplicar el muestreo estratificado de manera efectiva, es necesario tener información sobre las características que definen los estratos.

Muestreo estratificado en Python con Pandas:

Para este muestreo requeriremos seleccionar el campo por el que vamos a crear los estratos, en este caso sería la columna "type". Antes de sacar el muestreo agrupamos y encadenamos la función sample con el parámertro frac y el porcentaje de datos que queremos tomar de cada estrato, en este caso un 10% o 0.1.

import pandas as pd
# Muestreo estratificado
dfDatos.groupby('type').sample(frac=0.1)

Si bien también podríamos aplicar el parámetro n al método sample esto nos daría la misma cantidad de registros por cada estrato lo que no necesariamente representaría adecuadamente la población.
Aquí podrás encontrar el archivo en Google Colab para que experimentes con le muestreo por ti mismo y en Github están los set de datos

En resumen, el muestreo estadístico es una técnica vital para obtener resultados confiables en investigaciones y análisis, buscando un buen nivel de precisión con menos cantidad de registros y por ende menor requerimiento de recursos . Tanto el muestreo aleatorio simple como el estratificado tienen sus propias ventajas y desafíos, siendo el muestreo aleatorio adecuado para poblaciones homogéneas y pequeñas, mientras que el muestreo estratificado es más eficiente y preciso para poblaciones grandes y heterogéneas. La elección del método de muestreo depende de la naturaleza de la población y los objetivos del estudio, pero en ambos casos, un muestreo adecuado garantizará que los resultados sean representativos y confiables.

Publicar un comentario

0 Comentarios