Encuestas y datos categóricos
Descriptivos multivariante + correlaciones, clustering no supervisado (KMeans + PCA) para descubrir perfiles latentes, y clasificación supervisada (Random Forest) para predicción de categorías objetivo.
Descargar informe PDFDataset cargado
1800 registros de 180 sujetos. Fuente ejemplo: Work-From-Home Employee Burnout Dataset (público, Kaggle). Los pipelines aceptan cualquier CSV con features numéricas + variable objetivo categórica.
Método aplicado — descriptivos + correlaciones
Ver código del pipeline
desc = {
"n": len(df),
"burnout_media": df["burnout_score"].mean(),
"burnout_std": df["burnout_score"].std(),
"burnout_p50": df["burnout_score"].median(),
"burnout_p90": df["burnout_score"].quantile(0.9),
"correlacion_workhours": df["work_hours"].corr(df["burnout_score"]),
"correlacion_sleep": df["sleep_hours"].corr(df["burnout_score"]),
}
Resultado — descriptivos
44.0
burnout medio
SD 23.9
6.5
horas trabajo/día
7.0h
sueño/día
0.12
r horas ↔ burnout
-0.01
r sueño ↔ burnout
Distribución de la variable objetivo
| Categoría | N |
|---|---|
| Low | 1527 |
| Medium | 253 |
| High | 20 |
Método aplicado — clustering no supervisado
Algoritmo
KMeans (scikit-learn 1.9.1) + PCA para proyección 2D.
n_clusters = 3n_init = 10inicializaciones distintasrandom_state = 42- Preprocesado:
StandardScaler(z-score) - PCA
n_components = 2solo para visualización
Features usadas
work_hoursscreen_time_hoursmeetings_countbreaks_takensleep_hourstask_completion_rate
Ver código del pipeline
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
X = df[features].values
X_scaled = StandardScaler().fit_transform(X)
km = KMeans(n_clusters=3, n_init=10, random_state=42)
labels = km.fit_predict(X_scaled)
# Perfil medio por cluster (características diferenciadoras)
perfil = df.assign(cluster=labels).groupby("cluster")[features + ["burnout_score"]].mean()
# Proyección 2D para visualización
pca = PCA(n_components=2, random_state=42)
coords = pca.fit_transform(X_scaled)
Resultado — perfiles descubiertos
Varianza explicada: PC1 39.4%, PC2 17.0%.
Perfil medio por cluster
| Cluster | work_hours | screen_time_hours | meetings_count | breaks_taken | sleep_hours | task_completion_rate | burnout_score |
|---|---|---|---|---|---|---|---|
| 0 | 8.72 | 11.54 | 3.12 | 3.08 | 6.99 | 69.6 | 48.18 |
| 1 | 4.72 | 7.37 | 1.04 | 4.17 | 7.08 | 77.18 | 36.61 |
| 2 | 4.83 | 7.61 | 0.98 | 1.67 | 6.92 | 71.44 | 45.24 |
Método aplicado — clasificación supervisada
Algoritmo
Random Forest Classifier
n_estimators = 300random_state = 42- Etiqueta codificada con
LabelEncoder
Evaluación
Cross-validation 5-fold, métrica accuracy.
- Clases: High, Low, Medium
- Features: 7 numéricas
Resultado — clasificación
0.957
Accuracy (CV)
±0.006
7
Features
Feature importance
| Feature | Importancia |
|---|---|
task_completion_rate | 0.7700 |
work_hours | 0.0606 |
screen_time_hours | 0.0601 |
sleep_hours | 0.0582 |
meetings_count | 0.0228 |
breaks_taken | 0.0205 |
after_hours_work | 0.0078 |
Dataset completo — navegable
Total: 1800 filas · 11 columnas.
| user_id | day_type | work_hours | screen_time_hours | meetings_count | breaks_taken | after_hours_work | sleep_hours | task_completion_rate | burnout_score | burnout_risk |
|---|