Configuran el comportamiento global de la instancia para visualizaciones.
from statslibx import UtilsStats
utils = UtilsStats()
utils.set_plot_backend('seaborn') # 'matplotlib', 'seaborn', 'plotly'
utils.set_default_figsize((14, 6)) # (ancho, alto) en pulgadas
utils.set_save_fig_options(
save_fig=True,
fig_format='png', # 'png', 'svg', 'pdf'
fig_dpi=300,
figures_dir='mis_graficos'
)Carga datos desde archivo en mΓΊltiples formatos. Detecta el formato automΓ‘ticamente por la extensiΓ³n.
| Formato | Extensiones |
|---|---|
| CSV | .csv |
| Excel | .xlsx, .xls |
| Texto / TSV | .txt, .tsv |
| JSON | .json |
| Parquet | .parquet |
| Feather | .feather |
df = utils.load_data("ventas.csv")
df = utils.load_data("reporte.xlsx", sheet_name="Hoja1")
df = utils.load_data("datos.json")Verifica normalidad con el test de Shapiro-Wilk. Acepta datos en memoria o rutas de archivo.
result = utils.check_normality(df, column='edad')
# {'is_normal': True, 'shapiro_statistic': 0.98, 'shapiro_pvalue': 0.12,
# 'alpha': 0.05, 'interpretation': 'Normal'}
# Desde archivo directo
result = utils.check_normality("datos.csv", column="salario")Calcula intervalos de confianza para la media. El mΓ©todo 'bootstrap' es preferible para datos no normales (1000 resamplings).
ci = utils.calculate_confidence_intervals(df, column='salario', confidence_level=0.95)
# {'mean': 52000, 'std': 8200, 'n': 300, 'confidence_level': 0.95,
# 'ci_lower': 51070, 'ci_upper': 52930, 'margin_error': 930, 'method': 'parametric'}
ci_boot = utils.calculate_confidence_intervals(data, method='bootstrap')Detecta outliers con tres mΓ©todos. Retorna array booleano. isolation_forest requiere scikit-learn.
mask_iqr = utils.detect_outliers(df, column='precio', method='iqr')
mask_z = utils.detect_outliers(df, column='precio', method='zscore', threshold=3)
mask_if = utils.detect_outliers(df, column='precio', method='isolation_forest', contamination=0.05)
# Filtrar outliers
df_limpio = df[~mask_iqr]Calcula el tamaΓ±o del efecto entre dos grupos usando Cohen's d o Hedges' g (correcciΓ³n para muestras pequeΓ±as).
# Desde DataFrame con nombres de columna
efecto = utils.calculate_effect_size(df, group1='salario_h', group2='salario_m')
# {'effect_size': 0.45, 'method': 'cohen', 'interpretation': 'PequeΓ±o',
# 'mean_diff': 3200, 'pooled_std': 7100}
# Desde arrays numpy
import numpy as np
g1 = np.random.normal(100, 15, 100)
g2 = np.random.normal(110, 15, 100)
efecto = utils.calculate_effect_size(g1, group2=g2, method='hedges')Retorna un diccionario completo de estadΓsticas descriptivas: count, mean, median, mode, std, variance, min, max, q1, q3, iqr, skewness, kurtosis, range.
stats = utils.get_descriptive_stats(df, column='edad')
print(f"Media: {stats['mean']:.2f}, IQR: {stats['iqr']:.2f}")Visualiza la distribuciΓ³n de una variable. Con plot_type='all' genera cuatro paneles (histograma+KDE, boxplot, violin, Q-Q). Acepta rutas de archivo directamente.
matplotlib
RΓ‘pido y ligero. Ideal para scripts y exportar.
seaborn
GrΓ‘ficos estadΓsticos elegantes. Por defecto.
plotly
Interactivo con zoom y tooltips.
utils.plot_distribution(df, column='salario', plot_type='hist', backend='seaborn')
utils.plot_distribution(df, column='edad', plot_type='all') # 4 paneles
utils.plot_distribution("datos.csv", column="precio", plot_type='violin') # Desde archivo
fig = utils.plot_distribution(df, column='edad', backend='plotly') # InteractivoGenera dos paneles: histograma+KDE y KDE con intervalo de confianza sombreado. Incluye estadΓsticas en recuadro informativo.
utils.plot_distribution_with_ci(
df, column='salario',
confidence_level=0.95,
ci_method='parametric',
save_fig=True, filename='salario_ic'
)Heatmap de la matriz de correlaciΓ³n. Con triangular=True oculta la diagonal superior para mayor claridad.
utils.plot_correlation_matrix(df, method='pearson', triangular=True)
fig = utils.plot_correlation_matrix(df, backend='plotly') # InteractivoPairplot / scatter matrix. Muestra relaciones entre todas las variables numΓ©ricas de forma simultΓ‘nea.
utils.plot_scatter_matrix(df, columns=['edad', 'salario', 'experiencia'])
fig = utils.plot_scatter_matrix(df, backend='plotly')