¡Copiado!
Configuración
Métodos de Configuración
set_plot_backend() · set_default_figsize() · set_save_fig_options()

Configuran el comportamiento global de la instancia para visualizaciones.

Python
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 de Datos
.load_data(path, **kwargs)
path: str | Path · **kwargs: args adicionales para pandas
→ pd.DataFrame

Carga datos desde archivo en múltiples formatos. Detecta el formato automáticamente por la extensión.

FormatoExtensiones
CSV.csv
Excel.xlsx, .xls
Texto / TSV.txt, .tsv
JSON.json
Parquet.parquet
Feather.feather
Python
df = utils.load_data("ventas.csv")
df = utils.load_data("reporte.xlsx", sheet_name="Hoja1")
df = utils.load_data("datos.json")
Análisis Estadístico
.check_normality(data, column, alpha)
data: DataFrame | Series | ndarray | str | Path · column: str | None
→ dict

Verifica normalidad con el test de Shapiro-Wilk. Acepta datos en memoria o rutas de archivo.

Python
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")
.calculate_confidence_intervals(data, column, confidence_level, method)
method: 'parametric' | 'bootstrap' = 'parametric'
→ dict

Calcula intervalos de confianza para la media. El método 'bootstrap' es preferible para datos no normales (1000 resamplings).

Python
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')
.detect_outliers(data, column, method, **kwargs)
method: 'iqr' | 'zscore' | 'isolation_forest' = 'iqr'
→ np.ndarray[bool]

Detecta outliers con tres métodos. Retorna array booleano. isolation_forest requiere scikit-learn.

Python
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]
.calculate_effect_size(data, group1, group2, method)
method: 'cohen' | 'hedges' = 'cohen'
→ dict

Calcula el tamaño del efecto entre dos grupos usando Cohen's d o Hedges' g (corrección para muestras pequeñas).

Python
# 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')
.get_descriptive_stats(data, column)
→ dict

Retorna un diccionario completo de estadísticas descriptivas: count, mean, median, mode, std, variance, min, max, q1, q3, iqr, skewness, kurtosis, range.

Python
stats = utils.get_descriptive_stats(df, column='edad')
print(f"Media: {stats['mean']:.2f}, IQR: {stats['iqr']:.2f}")
Visualización
.plot_distribution(data, column, plot_type, backend, ...)
plot_type: 'hist'|'kde'|'box'|'violin'|'all' · backend: 'matplotlib'|'seaborn'|'plotly'

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.

Python
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') # Interactivo
.plot_distribution_with_ci(data, column, confidence_level, ci_method, ...)
confidence_level: float = 0.95 · ci_method: 'parametric' | 'bootstrap'
→ plt.Figure

Genera dos paneles: histograma+KDE y KDE con intervalo de confianza sombreado. Incluye estadísticas en recuadro informativo.

Python
utils.plot_distribution_with_ci(
df, column='salario',
confidence_level=0.95,
ci_method='parametric',
save_fig=True, filename='salario_ic'
)
.plot_correlation_matrix(data, method, backend, triangular, ...)
method: 'pearson'|'spearman'|'kendall' · backend: 'seaborn'|'plotly'

Heatmap de la matriz de correlación. Con triangular=True oculta la diagonal superior para mayor claridad.

Python
utils.plot_correlation_matrix(df, method='pearson', triangular=True)
fig = utils.plot_correlation_matrix(df, backend='plotly') # Interactivo
.plot_scatter_matrix(data, columns, backend, ...)
backend: 'seaborn'|'plotly'|'pandas'

Pairplot / scatter matrix. Muestra relaciones entre todas las variables numéricas de forma simultánea.

Python
utils.plot_scatter_matrix(df, columns=['edad', 'salario', 'experiencia'])
fig = utils.plot_scatter_matrix(df, backend='plotly')