Inicializa con un DataFrame de pandas o array numpy. Detecta automΓ‘ticamente columnas numΓ©ricas y categΓ³ricas
| ParΓ‘metro | Tipo | Default | DescripciΓ³n |
|---|---|---|---|
| data | pd.DataFrame | np.ndarray | β | Dataset de entrada (requerido) |
| lang | str | 'es-ES' | Idioma de salidas: 'es-ES' o 'en-US' |
from statslibx import InferentialStats
from statslibx.datasets import load_iris
data = load_iris()
inf = InferentialStats(data)
Calcula intervalos de confianza para la media (t-distribution), mediana (bootstrap) o proporciΓ³n (z-test). Retorna una tupla (lower_bound, upper_bound, point_estimate).
| ParΓ‘metro | Tipo | Default | DescripciΓ³n |
|---|---|---|---|
| column | str | β | Columna a analizar |
| confidence | float | 0.95 | Nivel de confianza (ej: 0.95, 0.99) |
| statistic | str | 'mean' | 'mean', 'median' o 'proportion' |
# IC para la media (95%)
lower, upper, mean = inf.confidence_interval('sepal_length', confidence=0.95)
print(f"IC 95%: [{lower:.3f}, {upper:.3f}], media={mean:.3f}")
# IC para mediana (bootstrap)
lower, upper, med = inf.confidence_interval('petal_length', statistic='median')
# IC para proporciΓ³n (datos binarios 0/1)
lower, upper, p = inf.confidence_interval('survived', statistic='proportion')Prueba t de una muestra (para media) o Wilcoxon signed-rank (para mediana). Especifica popmean o popmedian, no ambos.
| ParΓ‘metro | Tipo | Default | DescripciΓ³n |
|---|---|---|---|
| column | str | β | Columna a analizar |
| popmean | float | None | None | Media poblacional hipotΓ©tica (Hβ: ΞΌ = popmean) |
| popmedian | float | None | None | Mediana poblacional hipotΓ©tica β usa Wilcoxon |
| alternative | str | 'two-sided' | 'two-sided', 'less' o 'greater' |
| alpha | float | 0.05 | Nivel de significancia |
# Hβ: media de sepal_length = 5.0
result = inf.t_test_1sample('sepal_length', popmean=5.0)
print(result) # EstadΓstico, p-value, interpretaciΓ³n
# Prueba unilateral: Hβ: media > 5.0
result = inf.t_test_1sample('sepal_length', popmean=5.0, alternative='greater')
# Para mediana (Wilcoxon signed-rank)
result = inf.t_test_1sample('petal_length', popmedian=3.5)Prueba t de dos muestras independientes (Student si equal_var=True, Welch si False).
result = inf.t_test_2sample('sepal_length_a', 'sepal_length_b', equal_var=True)
print(result)
# Welch (varianzas desiguales)
result_w = inf.t_test_2sample('grupo1', 'grupo2', equal_var=False)Prueba t pareada para muestras dependientes (mediciones antes/despuΓ©s sobre los mismos sujetos).
result = inf.t_test_paired('peso_antes', 'peso_despues', alternative='two-sided')
print(result) # Incluye diferencia de medias, p-valueTest de Mann-Whitney U. Alternativa no paramΓ©trica al t-test de dos muestras. Usa medianas en lugar de medias.
result = inf.mann_whitney_test('grupo_a', 'grupo_b')
print(result) # EstadΓstico U, medianas, p-valueANOVA de un factor (One-Way ANOVA). Compara medias entre mΓΊltiples grupos. column es la variable numΓ©rica y groups la variable categΓ³rica de agrupaciΓ³n.
result = inf.anova_oneway(column='sepal_length', groups='species')
print(result) # F-estadΓstico, p-value, nΓΊmero de gruposTest de Kruskal-Wallis. Alternativa no paramΓ©trica a ANOVA para datos que no cumplen normalidad.
result = inf.kruskal_wallis_test(column='petal_length', groups='species')
print(result)Prueba Chi-cuadrado de independencia entre dos variables categΓ³ricas. Incluye la tabla de contingencia en los parΓ‘metros del resultado.
result = inf.chi_square_test(column1='sex', column2='survived')
print(result) # ChiΒ², grados de libertad, p-value, tabla de contingenciaPrueba si los datos siguen una distribuciΓ³n normal. Con method='all' retorna un dict con los cuatro tests. Anderson-Darling retorna valores crΓticos en lugar de p-value.
| MΓ©todo | DescripciΓ³n | n mΓ‘ximo |
|---|---|---|
| 'shapiro' | Shapiro-Wilk. Recomendado para muestras pequeΓ±as-medianas. | β€ 5000 |
| 'ks' | Kolmogorov-Smirnov contra distribuciΓ³n normal parametrizada. | cualquier n |
| 'anderson' | Anderson-Darling. MΓ‘s potente en las colas. | cualquier n |
| 'jarque_bera' | Basado en asimetrΓa y curtosis. Para muestras grandes. | cualquier n |
| 'all' | Ejecuta los cuatro tests y retorna un dict. | β |
# Shapiro-Wilk
result = inf.normality_test('sepal_length', method='shapiro')
print(result)
# Todos los tests
results = inf.normality_test('petal_length', method='all', test_statistic='median')
print(results['shapiro'])
print(results['kolmogorov_smirnov'])
print(results['anderson_darling'])
print(results['jarque_bera'])Prueba de igualdad de varianzas entre dos columnas. Levene es robusto a no-normalidad; Bartlett asume normalidad; var_test es el equivalente al var.test de R.
result = inf.variance_test('grupo_a', 'grupo_b', method='levene', center='median')
print(result)Interface unificada para pruebas de hipΓ³tesis. Incluye test de homocedasticidad automΓ‘tico para comparaciΓ³n de medias.
# Test de media
result = inf.hypothesis_test(method='mean', column1='sepal_length', pop_mean=5.0)
# Diferencia de medias (incluye Levene automΓ‘tico)
result = inf.hypothesis_test(method='difference_mean', column1='g1', column2='g2')
# ProporciΓ³n
result = inf.hypothesis_test(method='proportion', column1='survived', pop_proportion=0.5)
# Varianza (F-test)
result = inf.hypothesis_test(method='variance', column1='g1', column2='g2')