Β‘Copiado!
Constructor
DescriptiveStats(data, lang)
data: pd.DataFrame | np.ndarray  Β·  lang: 'es-ES' | 'en-US' = 'es-ES'

Inicializa con un DataFrame de pandas o array numpy. Detecta automΓ‘ticamente columnas numΓ©ricas y categΓ³ricas

ParΓ‘metroTipoDefaultDescripciΓ³n
datapd.DataFrame | np.ndarrayβ€”Dataset de entrada (requerido)
langstr'es-ES'Idioma de salidas: 'es-ES' o 'en-US'
Python
from statslibx import DescriptiveStats
from statslibx.datasets import load_iris

data = load_iris()
ds = DescriptiveStats(data)
Tendencia Central
.mean(column)
column: str | None = None
β†’ float | Series

Calcula la media aritmΓ©tica de una columna especΓ­fica o de todas las columnas numΓ©ricas.

ParΓ‘metroTipoDefaultDescripciΓ³n
columnstr | NoneNoneNombre de la columna. Si es None, calcula para todas las columnas numΓ©ricas.
Python
ds.mean('sepal_length')   # β†’ float
ds.mean()                 # β†’ pd.Series con todas las columnas
.median(column)
column: str | None = None
β†’ float | Series

Calcula la mediana (valor central) de una columna o de todas las numΓ©ricas.

Python
ds.median('petal_width')   # β†’ float
ds.median()                # β†’ pd.Series
.mode(column)
column: str | None = None
β†’ scalar | Series

Calcula la moda (valor mΓ‘s frecuente) de una columna o de todas las numΓ©ricas.

Python
ds.mode('species')   # β†’ valor mΓ‘s frecuente
ds.mode()            # β†’ pd.Series
DispersiΓ³n
.std(column)
column: str | None = None
β†’ float | Series

DesviaciΓ³n estΓ‘ndar muestral de una columna o de todas las numΓ©ricas.

Python
ds.std('sepal_length')   # β†’ float
ds.std()                 # β†’ pd.Series
.variance(column)
column: str | None = None
β†’ float | Series

Varianza muestral de una columna o de todas las numΓ©ricas.

Python
ds.variance('petal_length')   # β†’ float
.quantile(q, column)
q: float | List[float]  Β·  column: str | None = None
β†’ float | DataFrame

Calcula cuantiles / percentiles para una o todas las columnas numΓ©ricas.

ParΓ‘metroTipoDescripciΓ³n
qfloat | List[float]Cuantil(es) a calcular. Ej: 0.25, [0.25, 0.5, 0.75]
columnstr | NoneColumna especΓ­fica. None para todas.
Python
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 90
Forma de la DistribuciΓ³n y Outliers
.skewness(column)
column: str | None = None
β†’ float | Series

AsimetrΓ­a (sesgo) de la distribuciΓ³n. Valores positivos indican cola derecha, negativos cola izquierda.

Python
skew = ds.skewness('sepal_length')
# >0: sesgo positivo (cola derecha), <0: sesgo negativo
.kurtosis(column)
column: str | None = None
β†’ float | Series

Curtosis (apuntamiento) de la distribuciΓ³n. Mide cuΓ‘nto difiere la distribuciΓ³n de la normal en sus colas.

Python
kurt = ds.kurtosis('petal_length')
# >0: leptocΓΊrtica (colas pesadas), <0: platicΓΊrtica (colas ligeras)
.outliers(column, method, threshold)
column: str  Β·  method: 'iqr'|'zscore' = 'iqr'  Β·  threshold: float = 1.5
β†’ pd.Series[bool]

Detecta outliers en una columna usando el mΓ©todo IQR (rango intercuartΓ­lico) o z-score. Retorna una mΓ‘scara booleana.

ParΓ‘metroTipoDefaultDescripciΓ³n
columnstrβ€”Columna a analizar (requerido)
method'iqr' | 'zscore''iqr'MΓ©todo de detecciΓ³n
thresholdfloat1.51.5 para IQR, 3 para zscore tΓ­picamente
Python
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 outliers
AnΓ‘lisis Multivariado
.correlation(method, columns)
method: 'pearson'|'spearman'|'kendall' = 'pearson'  Β·  columns: List[str] | None = None
β†’ pd.DataFrame

Calcula la matriz de correlaciΓ³n entre variables numΓ©ricas usando el mΓ©todo seleccionado.

ParΓ‘metroTipoDefaultDescripciΓ³n
methodstr'pearson''pearson', 'spearman' o 'kendall'
columnsList[str] | NoneNoneSubconjunto de columnas. None para todas las numΓ©ricas.
Python
# 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']
)
.covariance(columns)
columns: List[str] | None = None
β†’ pd.DataFrame

Calcula la matriz de covarianza entre variables numΓ©ricas.

Python
cov_matrix = ds.covariance()
cov_sub = ds.covariance(columns=['sepal_length', 'petal_length'])
Resumen y RegresiΓ³n Lineal
.summary(columns, show_plot, plot_backend)
columns: List[str] | None  Β·  show_plot: bool = False  Β·  plot_backend: str = 'seaborn'
β†’ DescriptiveSummary

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Γ‘metroTipoDefaultDescripciΓ³n
columnsList[str] | NoneNoneColumnas a resumir. None para todas las numΓ©ricas.
show_plotboolFalseMostrar grΓ‘ficos de distribuciΓ³n
plot_backendstr'seaborn''seaborn', 'plotly' o 'matplotlib'
Python
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'])
.linear_regression(X, y, engine, ...)
X: str | List[str]  Β·  y: str  Β·  engine: 'statsmodels'|'scikit-learn'
β†’ LinearRegressionResult

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Γ‘metroTipoDefaultDescripciΓ³n
Xstr | List[str]β€”Variable(s) independiente(s)
ystrβ€”Variable dependiente
enginestr'statsmodels''statsmodels' o 'scikit-learn'
fit_interceptboolTrueIncluir intercepto en el modelo
show_plotboolFalseMostrar grΓ‘fico de regresiΓ³n
handle_missingstr'drop''drop', 'error' o 'warn'
Python
# 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
)
.help()
Sin parΓ‘metros
β†’ None (print)

Muestra la documentaciΓ³n completa de la clase en la consola, en el idioma configurado (lang).

Python
ds = DescriptiveStats(data, lang='en-US')
ds.help()   # Imprime guΓ­a completa en inglΓ©s