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 DescriptiveStats
from statslibx.datasets import load_iris
data = load_iris()
ds = DescriptiveStats(data)
Calcula la media aritmΓ©tica de una columna especΓfica o de todas las columnas numΓ©ricas.
| ParΓ‘metro | Tipo | Default | DescripciΓ³n |
|---|---|---|---|
| column | str | None | None | Nombre de la columna. Si es None, calcula para todas las columnas numΓ©ricas. |
ds.mean('sepal_length') # β float
ds.mean() # β pd.Series con todas las columnasCalcula la mediana (valor central) de una columna o de todas las numΓ©ricas.
ds.median('petal_width') # β float
ds.median() # β pd.SeriesCalcula la moda (valor mΓ‘s frecuente) de una columna o de todas las numΓ©ricas.
ds.mode('species') # β valor mΓ‘s frecuente
ds.mode() # β pd.SeriesDesviaciΓ³n estΓ‘ndar muestral de una columna o de todas las numΓ©ricas.
ds.std('sepal_length') # β float
ds.std() # β pd.SeriesVarianza muestral de una columna o de todas las numΓ©ricas.
ds.variance('petal_length') # β floatCalcula cuantiles / percentiles para una o todas las columnas numΓ©ricas.
| ParΓ‘metro | Tipo | DescripciΓ³n |
|---|---|---|
| q | float | List[float] | Cuantil(es) a calcular. Ej: 0.25, [0.25, 0.5, 0.75] |
| column | str | None | Columna especΓfica. None para todas. |
ds.quantile(0.25, 'sepal_length') # Q1 de una columna
ds.quantile([0.25, 0.5, 0.75]) # Cuartiles de todas
ds.quantile([0.1, 0.9], 'petal_width') # Percentiles 10 y 90AsimetrΓa (sesgo) de la distribuciΓ³n. Valores positivos indican cola derecha, negativos cola izquierda.
skew = ds.skewness('sepal_length')
# >0: sesgo positivo (cola derecha), <0: sesgo negativoCurtosis (apuntamiento) de la distribuciΓ³n. Mide cuΓ‘nto difiere la distribuciΓ³n de la normal en sus colas.
kurt = ds.kurtosis('petal_length')
# >0: leptocΓΊrtica (colas pesadas), <0: platicΓΊrtica (colas ligeras)Detecta outliers en una columna usando el mΓ©todo IQR (rango intercuartΓlico) o z-score. Retorna una mΓ‘scara booleana.
| ParΓ‘metro | Tipo | Default | DescripciΓ³n |
|---|---|---|---|
| column | str | β | Columna a analizar (requerido) |
| method | 'iqr' | 'zscore' | 'iqr' | MΓ©todo de detecciΓ³n |
| threshold | float | 1.5 | 1.5 para IQR, 3 para zscore tΓpicamente |
mask = ds.outliers('sepal_length', method='iqr', threshold=1.5)
print(f"Outliers encontrados: {mask.sum()}")
# Con z-score
mask_z = ds.outliers('petal_length', method='zscore', threshold=3)
datos_limpios = data[~mask_z] # Filtrar outliersCalcula la matriz de correlaciΓ³n entre variables numΓ©ricas usando el mΓ©todo seleccionado.
| ParΓ‘metro | Tipo | Default | DescripciΓ³n |
|---|---|---|---|
| method | str | 'pearson' | 'pearson', 'spearman' o 'kendall' |
| columns | List[str] | None | None | Subconjunto de columnas. None para todas las numΓ©ricas. |
# CorrelaciΓ³n de Pearson
corr = ds.correlation(method='pearson')
# CorrelaciΓ³n de Spearman para columnas especΓficas
corr_sub = ds.correlation(
method='spearman',
columns=['sepal_length', 'petal_length', 'petal_width']
)Calcula la matriz de covarianza entre variables numΓ©ricas.
cov_matrix = ds.covariance()
cov_sub = ds.covariance(columns=['sepal_length', 'petal_length'])Resumen estadΓstico completo: conteo, media, mediana, moda, desviaciΓ³n estΓ‘ndar, varianza, mΓnimo, Q1, Q3, mΓ‘ximo, IQR, asimetrΓa y curtosis. Retorna un objeto DescriptiveSummary con mΓ©todos de conversiΓ³n.
| ParΓ‘metro | Tipo | Default | DescripciΓ³n |
|---|---|---|---|
| columns | List[str] | None | None | Columnas a resumir. None para todas las numΓ©ricas. |
| show_plot | bool | False | Mostrar grΓ‘ficos de distribuciΓ³n |
| plot_backend | str | 'seaborn' | 'seaborn', 'plotly' o 'matplotlib' |
resumen = ds.summary()
print(resumen) # Tabla formateada
# Convertir a DataFrame
df_wide = resumen.to_dataframe(format='wide') # estadΓsticas en filas
df_compact = resumen.to_dataframe(format='compact') # variables en filas
df_long = resumen.to_dataframe(format='long') # formato largo
# DataFrame estilizado para Jupyter
styled = resumen.to_styled_df() # Heatmap de valores
# Resumen por categorΓas
cats = resumen.to_categorical_summary()
print(cats['Tendencia Central'])
print(cats['DispersiΓ³n'])RegresiΓ³n lineal simple o mΓΊltiple. Retorna un objeto completo con coeficientes, RΒ², residuales, intervalos de confianza y mΓ©todos de predicciΓ³n.
| ParΓ‘metro | Tipo | Default | DescripciΓ³n |
|---|---|---|---|
| X | str | List[str] | β | Variable(s) independiente(s) |
| y | str | β | Variable dependiente |
| engine | str | 'statsmodels' | 'statsmodels' o 'scikit-learn' |
| fit_intercept | bool | True | Incluir intercepto en el modelo |
| show_plot | bool | False | Mostrar grΓ‘fico de regresiΓ³n |
| handle_missing | str | 'drop' | 'drop', 'error' o 'warn' |
# RegresiΓ³n simple
modelo = ds.linear_regression(X='sepal_length', y='petal_length')
print(modelo.summary())
print(f"RΒ²: {modelo.r_squared:.4f}")
print(f"Intercepto: {modelo.intercept_:.4f}")
print(f"Coeficiente: {modelo.coef_[0]:.4f}")
# Predicciones
import numpy as np
X_nuevo = np.array([[5.0], [6.5], [7.2]])
preds = modelo.predict(X_nuevo)
# RegresiΓ³n mΓΊltiple
modelo_m = ds.linear_regression(
X=['sepal_length', 'sepal_width'],
y='petal_length',
engine='statsmodels',
show_plot=True
)Muestra la documentaciΓ³n completa de la clase en la consola, en el idioma configurado (lang).
ds = DescriptiveStats(data, lang='en-US')
ds.help() # Imprime guΓa completa en inglΓ©s