Si fallan los supuestos, considera transformaciones (log, Box-Cox) o regresión robusta. 1. El Error de la Falsa Correlación # Ejemplo: correlación espuria entre ventas de helado y ataques de tiburón # En Python, usar correlation no implica causalidad. corr = df_helados['ventas'].corr(df_tiburones['ataques']) print(f"Correlación: corr:.2f") # Puede ser alta, pero la causa es el verano. 2. Data Leakage en Validación Al escalar datos, nunca se debe usar la media/desviación de todo el dataset antes de separar train/test.
if p_valor < 0.05: print("Rechazamos H0: El nuevo diseño es significativamente más rápido.") else: print("No hay evidencia suficiente.") corr = df_helados['ventas']
scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) # Ajusta en train X_test_scaled = scaler.transform(X_test) # Solo transforma en test Un p-valor no significativo puede deberse a una muestra pequeña. Usa statsmodels.stats.power para calcular tamaño muestral necesario antes de recolectar datos. Conclusión: El Camino hacia la Estadística Práctica La estadística para ciencia de datos no requiere memorizar fórmulas, sino saber cuándo y cómo aplicarlas con Python . Comienza siempre con un análisis EDA robusto: mira distribuciones, detecta outliers con IQR, usa mediana en lugar de media cuando haya asimetría. if p_valor < 0
residuos = modelo.resid from statsmodels.stats.diagnostic import het_breuschpagan bp_test = het_breuschpagan(residuos, modelo.model.exog) print(f"p-valor BP: bp_test[1]:.4f") # >0.05 es bueno 2. Normalidad de residuos (Jarque-Bera) jb = stats.jarque_bera(residuos) print(f"p-valor JB: jb[1]:.4f") # >0.05 = normal detecta outliers con IQR