import numpy as np
import pandas as pd
from scipy import stats
Muestreo aleatorio
np.random.random(10)
np.random.randint(0, 100, 10)
colors = ['red', 'blue', 'green']
np.random.choice(colors, 10)
Con reemplazo
np.random.choice(colors, 10, replace=True)
Distribucion normal
parametros: media, desviacion estandar y tamaño de la muestra
np.random.normal(0, 1, 10)
stats.norm.rvs(0, 1, 10)
Distribucion uniforme
parametros: minimo, maximo y tamaño de la muestra
np.random.uniform(0, 1, 10)
stats.uniform.rvs(0, 1, 10)
Distribucion binomial
parametros: numero de ensayos, probabilidad de exito y tamaño de la muestra
np.random.binomial(10, 0.5, 10)
stats.binom.rvs(10, 0.5, 10)
Distribucion poisson
parametros: tasa de ocurrencia y tamaño de la muestra
np.random.poisson(10, 10)
stats.poisson.rvs(10, 10)
Distribucion exponencial
parametros: tasa de ocurrencia y tamaño de la muestra
np.random.exponential(10, 10)
stats.expon.rvs(10, 10)
Muestreo estratificado
df = pd.DataFrame({
'sexo': np.random.choice(['M', 'F'], 100),
'edad': np.random.randint(18, 65, 100),
'estado_civil': np.random.choice(['S', 'C', 'D', 'V'], 100),
'ingreso': np.random.randint(1000, 10000, 100)
})
df.groupby('sexo').apply(lambda x: x.sample(10))
Muestreo sistematico
df = pd.DataFrame({
'sexo': np.random.choice(['M', 'F'], 100),
'edad': np.random.randint(18, 65, 100),
'estado_civil': np.random.choice(['S', 'C', 'D', 'V'], 100),
'ingreso': np.random.randint(1000, 10000, 100)
})
df.iloc[::10] # selecciona cada 10 filas