¡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.ndarrayDataset 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
columnstrColumna 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)
ystrVariable 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