ingresos_h = np.random.normal(2800, 600, 80) ingresos_m = np.random.normal(2600, 550, 80)
descripcion = df['ingresos'].describe(percentiles=[.25, .5, .75, .95, .99])
Un p-valor bajo (<0.05) indica que sería muy raro ver este resultado si H0 fuera cierta.
Una correlación alta (medida por el coeficiente de Pearson entre -1 y 1) no implica que una variable cause la otra. Es indispensable evaluar el contexto de negocio y variables exógenas (confusoras). Regresión Lineal Múltiple con Statsmodels ingresos_h = np
Saber qué tan dispersos están los datos es tan importante como conocer su centro.
# Central tendency mean_val = np.mean(df['total_bill']) median_val = np.median(df['total_bill']) mode_val = stats.mode(df['total_bill'], keepdims=True).mode[0]
Una prueba de hipótesis evalúa si un efecto observado es estadísticamente significativo. Regresión Lineal Múltiple con Statsmodels Saber qué tan
statistical_report(df, 'total_bill', 'sex')
Bootstrap es una técnica de remuestreo muy útil:
import pandas as pd import numpy as np import scipy.stats as stats import statsmodels.api as sm from statsmodels.stats import weightstats as ws import matplotlib.pyplot as plt import seaborn as sns from sklearn.linear_model import LinearRegression, LogisticRegression from sklearn.metrics import mean_squared_error, confusion_matrix Esta habilidad marca la diferencia entre un científico
La no se trata de memorizar fórmulas complejas, sino de aplicar herramientas estadísticas con Python para extraer valor real de los datos. Esta habilidad marca la diferencia entre un científico de datos que solo usa herramientas y uno que entiende los resultados.
def statistical_report(df, numeric_col, categorical_col=None): """Quick statistical summary for a numeric column.""" data = df[numeric_col].dropna() print(f"=== Statistical Report: numeric_col ===\n") # Descriptives print(f"Mean: np.mean(data):.2f") print(f"Median: np.median(data):.2f") print(f"Std: np.std(data, ddof=1):.2f") print(f"Skewness: stats.skew(data):.3f")