Calcular intervalos de confianza en Python te permite estimar, con un nivel de certeza definido, el rango en el que se mueve una variable. Aquí aprendes a generarlos paso a paso con pandas, NumPy, Seaborn y SciPy, ideal si trabajas con análisis estadístico y ciencia de datos.
¿Qué librerías necesitas para calcular intervalos de confianza?
Antes de tocar datos, importa las herramientas que harán el trabajo pesado. Cada una cumple un rol distinto dentro del flujo de análisis.
- pandas (
pd): para construir y manipular tablas o DataFrames.
- NumPy (
np): para generar datos aleatorios y operaciones numéricas.
- Seaborn (
sns): para visualización estadística.
- SciPy.stats: la novedad del ejercicio, que entrega métodos estadísticos como el cálculo directo de intervalos de confianza.
¿Para qué sirve scipy.stats? Es el módulo de SciPy que reúne funciones estadísticas listas para usar, incluyendo distribuciones, pruebas y cálculo de intervalos de confianza sin tener que programarlos desde cero.
¿Cómo generar datos aleatorios para practicar?
Cuando no tienes un dataset a la mano, puedes crearlo. Esto es útil para validar tu código antes de aplicarlo a información real [01:30].
Fija una semilla con np.random.seed(20) para que tus resultados sean reproducibles. Después crea dos variables:
- Variable 1 (días de vacaciones): 10 enteros aleatorios entre 0 y 10 con
np.random.randint. Aquí 0 significa no vacacionar y 10 significa diez días completos.
- Variable 2 (dinero gastado): la suma de la variable 1 más 10 valores aleatorios decimales entre 0 y 1 generados con
np.random.normal. El 0 representa no gastar nada y el 1 representa el 100% del dinero disponible.
La lógica detrás es sencilla: a más días de vacaciones, mayor gasto esperado. Estás creando una correlación positiva controlada para luego analizarla.
¿Cómo visualizar un intervalo de confianza con Seaborn?
La función sns.regplot une dos variables en un gráfico de regresión y dibuja, en una banda más tenue, el intervalo de confianza alrededor de la recta ajustada [03:45].
El parámetro clave es ci, que en español equivale a IC (intervalo de confianza). Si lo configuras en 80, le pides al gráfico que muestre la franja donde, con un 80% de confianza, se ubicaría la relación real entre las variables.
python
sns.regplot(x=variable1, y=variable2, ci=80)
En el resultado se ven los 10 puntos aleatorios distribuidos y la banda sombreada que representa la incertidumbre estadística. Mientras más amplia la franja, mayor la incertidumbre; mientras más estrecha, más precisa la estimación.
¿Cómo construir un DataFrame desde dos variables?
Para analizar los datos en formato tabular, primero únelos en una estructura ordenada. La combinación de zip con tuple y pd.DataFrame te da una tabla limpia.
- Empareja las dos variables con
list(zip(variable1, variable2)).
- Convierte el resultado a DataFrame con
pd.DataFrame(tuple, columns=['días de vacaciones', 'dinero gastado']).
- Visualiza la tabla con 10 registros, indexados de 0 a 9.
Este paso es fundamental porque las funciones estadísticas de SciPy trabajan mejor sobre estructuras de pandas y arrays de NumPy.
¿Cómo calcular el intervalo de confianza con scipy.stats?
La función scipy.stats.norm.interval recibe el nivel de confianza, la media y la escala (desviación estándar) de tus datos. Para un 95% de confianza, usas alpha=0.95 [06:50].
python
stats.norm.interval(0.95, loc=np.mean(tabla), scale=stats.sem(tabla))
El parámetro scale debe escribirse en inglés, ese suele ser un error común al traducir mentalmente el código.
¿Qué significa un intervalo de confianza del 95%? Que si repitieras el muestreo muchas veces, en el 95% de los casos el valor real estaría dentro del rango calculado. No es probabilidad sobre un valor único, es certeza sobre el método.
¿Cómo interpretar los resultados numéricos?
En el ejercicio, los intervalos arrojan lecturas concretas que puedes traducir a lenguaje de negocio.
- Días de vacaciones: el intervalo va de 2.84 a 3 días. Con 95% de confianza, las personas viajarían prácticamente 3 días.
- Dinero gastado: el intervalo va de 0.686 a 0.699, es decir, entre 68.6% y 69.9% del dinero disponible.
La interpretación es lo que convierte un número en una decisión. No basta con calcular, hay que traducir el rango a la realidad del problema.
¿Qué reto puedes hacer para practicar?
Prueba el mismo flujo con otros niveles de significancia, como 68% o 99%, y observa cómo cambia la amplitud del intervalo. A mayor nivel de confianza, más amplio el rango; a menor confianza, más estrecho pero también más arriesgado.
También puedes aplicarlo a un dataset real importado desde una URL o un archivo local, manteniendo la misma estructura de código. ¿Con qué variables lo vas a probar tú? Cuéntame en los comentarios.