El síndrome de desgaste profesional (burnout) es un problema crítico de salud laboral. Tradicionalmente se estudió en salud y educación, pero hoy abarca contextos de alta exigencia cognitiva y administrativa (ingeniería, comercio, administración). Este trabajo analiza una muestra de 1.300 trabajadores de cinco áreas, con variables sociodemográficas, hábitos de vida (sueño, ejercicio, café, alcohol) e indicadores fisiológicos y psicológicos (colesterol, estrés, ansiedad, depresión y puntaje de burnout).
Analizar los factores sociodemográficos, laborales y de hábitos de vida asociados al nivel de Burnout en trabajadores de distintas áreas, mediante estadística descriptiva, inferencia paramétrica/no paramétrica y regresión lineal múltiple.
Los datos son observacionales y de corte transversal (una medición por persona). Todos los resultados se interpretan como asociaciones, no como efectos causales. Además, se asume que las 1.300 observaciones son independientes entre sí y que los puntajes (Estrés, Burnout, Ansiedad, Depresión) pueden tratarse como cuantitativos; ambos son supuestos del diseño que los datos no permiten verificar.
library(readxl) # lectura de Excel
library(dplyr) # manipulación de datos
library(tidyr) # formato largo para gráficos
library(ggplot2) # gráficos
library(car) # Levene, VIF
library(lmtest) # Breusch-Pagan, Durbin-Watson
library(gridExtra) # paneles de gráficos
library(knitr) # tablas
d <- as.data.frame(read_excel("modelamiento_estadistico_bournout.xlsx"))
# Nombres sin tildes ni eñes, para evitar problemas de codificación
stopifnot(ncol(d) == 15)
names(d) <- c("AREA", "Edad", "Sexo", "Horas_trabajo", "Horas_sueno",
"Ejercicio", "Estres", "Burnout", "Ansiedad", "Depresion",
"Cafe", "Alcohol", "N_hijos", "Prevision_salud", "Colesterol")
# Variables categóricas como factor
d <- d %>%
mutate(across(c(AREA, Sexo, Ejercicio, Alcohol, Prevision_salud), factor))
dim(d)
## [1] 1300 15
str(d)
## 'data.frame': 1300 obs. of 15 variables:
## $ AREA : Factor w/ 5 levels "Administración",..: 3 1 2 4 5 5 5 1 2 2 ...
## $ Edad : num 29 32 29 32 30 54 55 32 41 35 ...
## $ Sexo : Factor w/ 2 levels "Femenino","Masculino": 1 1 2 2 2 2 2 1 2 2 ...
## $ Horas_trabajo : num 41 48 42 49 42 45 42 51 53 46 ...
## $ Horas_sueno : num 5.98 5.75 6.3 6.15 6.04 ...
## $ Ejercicio : Factor w/ 2 levels "No","Sí": 2 1 1 2 1 1 2 2 1 1 ...
## $ Estres : num 4 2 2 4 1 3 1 2 3 3 ...
## $ Burnout : num 43 47 31 50 40 60 38 48 58 47 ...
## $ Ansiedad : num 8 5 6 8 4 7 5 13 3 7 ...
## $ Depresion : num 2 5 6 6 3 3 4 8 9 9 ...
## $ Cafe : num 1 3 3 0 2 2 3 2 3 3 ...
## $ Alcohol : Factor w/ 2 levels "No","Sí": 1 2 1 2 1 2 1 1 2 2 ...
## $ N_hijos : num 2 2 0 2 2 2 0 1 0 1 ...
## $ Prevision_salud: Factor w/ 3 levels "Fonasa","Isapre",..: 1 2 1 2 1 1 1 2 3 1 ...
## $ Colesterol : num 192 215 224 188 231 ...
# Calidad de datos
cat("Valores perdidos por variable:\n"); print(colSums(is.na(d)))
## Valores perdidos por variable:
## AREA Edad Sexo Horas_trabajo Horas_sueno
## 0 0 0 0 0
## Ejercicio Estres Burnout Ansiedad Depresion
## 0 0 0 0 0
## Cafe Alcohol N_hijos Prevision_salud Colesterol
## 0 0 0 0 0
cat("\nFilas duplicadas:", sum(duplicated(d)), "\n")
##
## Filas duplicadas: 0
Lectura. La base tiene 1.300 filas y 15 variables, sin valores perdidos ni filas duplicadas. No se imputó ni se eliminó ningún dato. Los máximos de Estrés (9), Ansiedad (17) y Colesterol (270) son valores extremos pero plausibles dentro de cada escala; se conservan.
| Variable | Tipo | Justificación |
|---|---|---|
| AREA | Cualitativa nominal | 5 categorías sin orden |
| Sexo | Cualitativa nominal (dicotómica) | Femenino / Masculino |
| Ejercicio | Cualitativa nominal (dicotómica) | Sí / No |
| Alcohol | Cualitativa nominal (dicotómica) | Sí / No |
| Previsión_salud | Cualitativa nominal | Fonasa / Isapre / Particular |
| Edad | Cuantitativa continua (medida en años enteros) | Se agrupa en intervalos |
| Horas_trabajo | Cuantitativa discreta (horas enteras semanales) | Muchos valores distintos: se agrupa en intervalos |
| Horas_sueno | Cuantitativa continua | Medida con decimales |
| Colesterol | Cuantitativa continua | mg/dL con decimales |
| Estrés | Cuantitativa discreta | Escala entera 1-9 |
| Burnout | Cuantitativa discreta (puntaje) | Puntaje entero 20-85; se analiza como cuantitativa |
| Ansiedad | Cuantitativa discreta (puntaje) | Puntaje entero 3-17 |
| Depresión | Cuantitativa discreta (puntaje) | Puntaje entero 2-13 |
| Café | Cuantitativa discreta (conteo) | Tazas diarias 0-7 |
| N_hijos | Cuantitativa discreta (conteo) | 0-4 |
Notación: \(n_i\) frecuencia absoluta, \(N_i\) absoluta acumulada, \(f_i\) relativa (%), \(F_i\) relativa acumulada (%).
# Variables cualitativas o cuantitativas discretas (una fila por valor)
tabla_frec <- function(x, nombre = "Valor") {
t <- table(x)
ni <- as.vector(t)
out <- data.frame(Valor = names(t), ni = ni, Ni = cumsum(ni),
fi = round(100 * ni / sum(ni), 2),
Fi = round(100 * cumsum(ni) / sum(ni), 2))
names(out)[1] <- nombre
out
}
# Variables cuantitativas continuas: intervalos por regla de Sturges
tabla_frec_int <- function(x, nombre = "Intervalo") {
br <- hist(x, breaks = "Sturges", plot = FALSE)$breaks
cl <- cut(x, breaks = br, include.lowest = TRUE, right = TRUE)
ni <- as.vector(table(cl))
out <- data.frame(Intervalo = levels(cl),
Marca = (br[-length(br)] + br[-1]) / 2,
ni = ni, Ni = cumsum(ni),
fi = round(100 * ni / sum(ni), 2),
Fi = round(100 * cumsum(ni) / sum(ni), 2))
names(out)[1] <- nombre
out
}
# Resumen numérico
resumen_num <- function(x) {
m <- mean(x); s <- sd(x)
c(n = length(x), Media = m, DE = s, CV_pct = 100 * s / m,
Min = min(x), Q1 = unname(quantile(x, .25)), Mediana = median(x),
Q3 = unname(quantile(x, .75)), Max = max(x),
Asimetria = mean((x - m)^3) / s^3)
}
kable(tabla_frec(d$AREA, "Área"), caption = "Tabla 1. Distribución por área")
| Área | ni | Ni | fi | Fi |
|---|---|---|---|---|
| Administración | 266 | 266 | 20.46 | 20.46 |
| Comercio | 258 | 524 | 19.85 | 40.31 |
| Educación | 257 | 781 | 19.77 | 60.08 |
| Ingeniería | 217 | 998 | 16.69 | 76.77 |
| Salud | 302 | 1300 | 23.23 | 100.00 |
kable(tabla_frec(d$Sexo, "Sexo"), caption = "Tabla 2. Distribución por sexo")
| Sexo | ni | Ni | fi | Fi |
|---|---|---|---|---|
| Femenino | 724 | 724 | 55.69 | 55.69 |
| Masculino | 576 | 1300 | 44.31 | 100.00 |
kable(tabla_frec(d$Ejercicio, "Ejercicio"), caption = "Tabla 3. Práctica de ejercicio")
| Ejercicio | ni | Ni | fi | Fi |
|---|---|---|---|---|
| No | 592 | 592 | 45.54 | 45.54 |
| Sí | 708 | 1300 | 54.46 | 100.00 |
kable(tabla_frec(d$Alcohol, "Alcohol"), caption = "Tabla 4. Consumo de alcohol")
| Alcohol | ni | Ni | fi | Fi |
|---|---|---|---|---|
| No | 755 | 755 | 58.08 | 58.08 |
| Sí | 545 | 1300 | 41.92 | 100.00 |
kable(tabla_frec(d$Prevision_salud, "Previsión"), caption = "Tabla 5. Previsión de salud")
| Previsión | ni | Ni | fi | Fi |
|---|---|---|---|---|
| Fonasa | 769 | 769 | 59.15 | 59.15 |
| Isapre | 386 | 1155 | 29.69 | 88.85 |
| Particular | 145 | 1300 | 11.15 | 100.00 |
kable(tabla_frec_int(d$Edad, "Edad (años)"), caption = "Tabla 6. Edad")
| Edad (años) | Marca | ni | Ni | fi | Fi |
|---|---|---|---|---|---|
| [24,26] | 25 | 123 | 123 | 9.46 | 9.46 |
| (26,28] | 27 | 93 | 216 | 7.15 | 16.62 |
| (28,30] | 29 | 74 | 290 | 5.69 | 22.31 |
| (30,32] | 31 | 86 | 376 | 6.62 | 28.92 |
| (32,34] | 33 | 75 | 451 | 5.77 | 34.69 |
| (34,36] | 35 | 87 | 538 | 6.69 | 41.38 |
| (36,38] | 37 | 85 | 623 | 6.54 | 47.92 |
| (38,40] | 39 | 70 | 693 | 5.38 | 53.31 |
| (40,42] | 41 | 83 | 776 | 6.38 | 59.69 |
| (42,44] | 43 | 91 | 867 | 7.00 | 66.69 |
| (44,46] | 45 | 93 | 960 | 7.15 | 73.85 |
| (46,48] | 47 | 73 | 1033 | 5.62 | 79.46 |
| (48,50] | 49 | 62 | 1095 | 4.77 | 84.23 |
| (50,52] | 51 | 86 | 1181 | 6.62 | 90.85 |
| (52,54] | 53 | 77 | 1258 | 5.92 | 96.77 |
| (54,56] | 55 | 42 | 1300 | 3.23 | 100.00 |
kable(tabla_frec_int(d$Horas_trabajo, "Horas de trabajo"), caption = "Tabla 7. Horas de trabajo semanales")
| Horas de trabajo | Marca | ni | Ni | fi | Fi |
|---|---|---|---|---|---|
| [34,36] | 35 | 50 | 50 | 3.85 | 3.85 |
| (36,38] | 37 | 41 | 91 | 3.15 | 7.00 |
| (38,40] | 39 | 71 | 162 | 5.46 | 12.46 |
| (40,42] | 41 | 117 | 279 | 9.00 | 21.46 |
| (42,44] | 43 | 137 | 416 | 10.54 | 32.00 |
| (44,46] | 45 | 154 | 570 | 11.85 | 43.85 |
| (46,48] | 47 | 155 | 725 | 11.92 | 55.77 |
| (48,50] | 49 | 187 | 912 | 14.38 | 70.15 |
| (50,52] | 51 | 118 | 1030 | 9.08 | 79.23 |
| (52,54] | 53 | 97 | 1127 | 7.46 | 86.69 |
| (54,56] | 55 | 83 | 1210 | 6.38 | 93.08 |
| (56,58] | 57 | 47 | 1257 | 3.62 | 96.69 |
| (58,60] | 59 | 27 | 1284 | 2.08 | 98.77 |
| (60,62] | 61 | 10 | 1294 | 0.77 | 99.54 |
| (62,64] | 63 | 3 | 1297 | 0.23 | 99.77 |
| (64,66] | 65 | 3 | 1300 | 0.23 | 100.00 |
kable(tabla_frec_int(d$Horas_sueno, "Horas de sueño"), caption = "Tabla 8. Horas de sueño")
| Horas de sueño | Marca | ni | Ni | fi | Fi |
|---|---|---|---|---|---|
| [4.5,5] | 4.75 | 53 | 53 | 4.08 | 4.08 |
| (5,5.5] | 5.25 | 114 | 167 | 8.77 | 12.85 |
| (5.5,6] | 5.75 | 272 | 439 | 20.92 | 33.77 |
| (6,6.5] | 6.25 | 360 | 799 | 27.69 | 61.46 |
| (6.5,7] | 6.75 | 318 | 1117 | 24.46 | 85.92 |
| (7,7.5] | 7.25 | 142 | 1259 | 10.92 | 96.85 |
| (7.5,8] | 7.75 | 33 | 1292 | 2.54 | 99.38 |
| (8,8.5] | 8.25 | 8 | 1300 | 0.62 | 100.00 |
kable(tabla_frec_int(d$Colesterol, "Colesterol (mg/dL)"), caption = "Tabla 9. Colesterol")
| Colesterol (mg/dL) | Marca | ni | Ni | fi | Fi |
|---|---|---|---|---|---|
| [160,170] | 165 | 4 | 4 | 0.31 | 0.31 |
| (170,180] | 175 | 18 | 22 | 1.38 | 1.69 |
| (180,190] | 185 | 99 | 121 | 7.62 | 9.31 |
| (190,200] | 195 | 224 | 345 | 17.23 | 26.54 |
| (200,210] | 205 | 312 | 657 | 24.00 | 50.54 |
| (210,220] | 215 | 299 | 956 | 23.00 | 73.54 |
| (220,230] | 225 | 202 | 1158 | 15.54 | 89.08 |
| (230,240] | 235 | 102 | 1260 | 7.85 | 96.92 |
| (240,250] | 245 | 32 | 1292 | 2.46 | 99.38 |
| (250,260] | 255 | 7 | 1299 | 0.54 | 99.92 |
| (260,270] | 265 | 1 | 1300 | 0.08 | 100.00 |
kable(tabla_frec_int(d$Burnout, "Burnout (puntaje)"), caption = "Tabla 10. Puntaje de Burnout")
| Burnout (puntaje) | Marca | ni | Ni | fi | Fi |
|---|---|---|---|---|---|
| [20,25] | 22.5 | 10 | 10 | 0.77 | 0.77 |
| (25,30] | 27.5 | 27 | 37 | 2.08 | 2.85 |
| (30,35] | 32.5 | 84 | 121 | 6.46 | 9.31 |
| (35,40] | 37.5 | 140 | 261 | 10.77 | 20.08 |
| (40,45] | 42.5 | 161 | 422 | 12.38 | 32.46 |
| (45,50] | 47.5 | 201 | 623 | 15.46 | 47.92 |
| (50,55] | 52.5 | 229 | 852 | 17.62 | 65.54 |
| (55,60] | 57.5 | 167 | 1019 | 12.85 | 78.38 |
| (60,65] | 62.5 | 157 | 1176 | 12.08 | 90.46 |
| (65,70] | 67.5 | 73 | 1249 | 5.62 | 96.08 |
| (70,75] | 72.5 | 31 | 1280 | 2.38 | 98.46 |
| (75,80] | 77.5 | 15 | 1295 | 1.15 | 99.62 |
| (80,85] | 82.5 | 5 | 1300 | 0.38 | 100.00 |
kable(tabla_frec(d$Estres, "Estrés"), caption = "Tabla 11. Estrés")
| Estrés | ni | Ni | fi | Fi |
|---|---|---|---|---|
| 1 | 263 | 263 | 20.23 | 20.23 |
| 2 | 269 | 532 | 20.69 | 40.92 |
| 3 | 313 | 845 | 24.08 | 65.00 |
| 4 | 224 | 1069 | 17.23 | 82.23 |
| 5 | 165 | 1234 | 12.69 | 94.92 |
| 6 | 53 | 1287 | 4.08 | 99.00 |
| 7 | 12 | 1299 | 0.92 | 99.92 |
| 9 | 1 | 1300 | 0.08 | 100.00 |
kable(tabla_frec(d$Ansiedad, "Ansiedad"), caption = "Tabla 12. Ansiedad")
| Ansiedad | ni | Ni | fi | Fi |
|---|---|---|---|---|
| 3 | 69 | 69 | 5.31 | 5.31 |
| 4 | 76 | 145 | 5.85 | 11.15 |
| 5 | 98 | 243 | 7.54 | 18.69 |
| 6 | 152 | 395 | 11.69 | 30.38 |
| 7 | 200 | 595 | 15.38 | 45.77 |
| 8 | 196 | 791 | 15.08 | 60.85 |
| 9 | 159 | 950 | 12.23 | 73.08 |
| 10 | 127 | 1077 | 9.77 | 82.85 |
| 11 | 95 | 1172 | 7.31 | 90.15 |
| 12 | 73 | 1245 | 5.62 | 95.77 |
| 13 | 27 | 1272 | 2.08 | 97.85 |
| 14 | 15 | 1287 | 1.15 | 99.00 |
| 15 | 9 | 1296 | 0.69 | 99.69 |
| 16 | 3 | 1299 | 0.23 | 99.92 |
| 17 | 1 | 1300 | 0.08 | 100.00 |
kable(tabla_frec(d$Depresion, "Depresión"), caption = "Tabla 13. Depresión")
| Depresión | ni | Ni | fi | Fi |
|---|---|---|---|---|
| 2 | 47 | 47 | 3.62 | 3.62 |
| 3 | 86 | 133 | 6.62 | 10.23 |
| 4 | 109 | 242 | 8.38 | 18.62 |
| 5 | 183 | 425 | 14.08 | 32.69 |
| 6 | 225 | 650 | 17.31 | 50.00 |
| 7 | 227 | 877 | 17.46 | 67.46 |
| 8 | 191 | 1068 | 14.69 | 82.15 |
| 9 | 132 | 1200 | 10.15 | 92.31 |
| 10 | 56 | 1256 | 4.31 | 96.62 |
| 11 | 35 | 1291 | 2.69 | 99.31 |
| 12 | 7 | 1298 | 0.54 | 99.85 |
| 13 | 2 | 1300 | 0.15 | 100.00 |
kable(tabla_frec(d$Cafe, "Tazas de café"), caption = "Tabla 14. Consumo de café")
| Tazas de café | ni | Ni | fi | Fi |
|---|---|---|---|---|
| 0 | 38 | 38 | 2.92 | 2.92 |
| 1 | 140 | 178 | 10.77 | 13.69 |
| 2 | 339 | 517 | 26.08 | 39.77 |
| 3 | 429 | 946 | 33.00 | 72.77 |
| 4 | 250 | 1196 | 19.23 | 92.00 |
| 5 | 86 | 1282 | 6.62 | 98.62 |
| 6 | 17 | 1299 | 1.31 | 99.92 |
| 7 | 1 | 1300 | 0.08 | 100.00 |
kable(tabla_frec(d$N_hijos, "N° de hijos"), caption = "Tabla 15. Número de hijos")
| N° de hijos | ni | Ni | fi | Fi |
|---|---|---|---|---|
| 0 | 420 | 420 | 32.31 | 32.31 |
| 1 | 408 | 828 | 31.38 | 63.69 |
| 2 | 302 | 1130 | 23.23 | 86.92 |
| 3 | 132 | 1262 | 10.15 | 97.08 |
| 4 | 38 | 1300 | 2.92 | 100.00 |
vars_num <- c("Edad", "Horas_trabajo", "Horas_sueno", "Estres", "Burnout",
"Ansiedad", "Depresion", "Cafe", "N_hijos", "Colesterol")
res_global <- t(sapply(d[vars_num], resumen_num))
kable(round(res_global, 2), caption = "Tabla 16. Medidas resumen de las variables cuantitativas")
| n | Media | DE | CV_pct | Min | Q1 | Mediana | Q3 | Max | Asimetria | |
|---|---|---|---|---|---|---|---|---|---|---|
| Edad | 1300 | 39.30 | 9.22 | 23.45 | 24.0 | 31.00 | 39.0 | 47.00 | 55.0 | 0.02 |
| Horas_trabajo | 1300 | 47.48 | 5.97 | 12.57 | 35.0 | 43.00 | 47.0 | 51.00 | 65.0 | 0.07 |
| Horas_sueno | 1300 | 6.28 | 0.69 | 11.02 | 4.5 | 5.82 | 6.3 | 6.75 | 8.5 | -0.05 |
| Estres | 1300 | 2.98 | 1.50 | 50.25 | 1.0 | 2.00 | 3.0 | 4.00 | 9.0 | 0.41 |
| Burnout | 1300 | 50.83 | 11.33 | 22.30 | 20.0 | 43.00 | 51.0 | 59.00 | 85.0 | 0.06 |
| Ansiedad | 1300 | 7.90 | 2.67 | 33.77 | 3.0 | 6.00 | 8.0 | 10.00 | 17.0 | 0.23 |
| Depresion | 1300 | 6.47 | 2.18 | 33.64 | 2.0 | 5.00 | 6.5 | 8.00 | 13.0 | 0.02 |
| Cafe | 1300 | 2.80 | 1.23 | 43.75 | 0.0 | 2.00 | 3.0 | 4.00 | 7.0 | 0.06 |
| N_hijos | 1300 | 1.20 | 1.09 | 90.73 | 0.0 | 0.00 | 1.0 | 2.00 | 4.0 | 0.61 |
| Colesterol | 1300 | 210.17 | 15.58 | 7.41 | 160.7 | 199.38 | 209.8 | 220.83 | 270.0 | 0.16 |
# Porcentaje por fila: dentro de cada área, qué proporción tiene cada categoría
pct_fila <- function(v) round(100 * prop.table(table(d$AREA, d[[v]]), 1), 1)
kable(pct_fila("Sexo"), caption = "Tabla 17. Sexo por área (% de cada área)")
| Femenino | Masculino | |
|---|---|---|
| Administración | 55.3 | 44.7 |
| Comercio | 54.3 | 45.7 |
| Educación | 58.0 | 42.0 |
| Ingeniería | 54.8 | 45.2 |
| Salud | 56.0 | 44.0 |
kable(pct_fila("Ejercicio"), caption = "Tabla 18. Ejercicio por área (% de cada área)")
| No | Sí | |
|---|---|---|
| Administración | 47.7 | 52.3 |
| Comercio | 42.6 | 57.4 |
| Educación | 44.7 | 55.3 |
| Ingeniería | 42.9 | 57.1 |
| Salud | 48.7 | 51.3 |
kable(pct_fila("Alcohol"), caption = "Tabla 19. Alcohol por área (% de cada área)")
| No | Sí | |
|---|---|---|
| Administración | 54.9 | 45.1 |
| Comercio | 57.0 | 43.0 |
| Educación | 58.0 | 42.0 |
| Ingeniería | 59.0 | 41.0 |
| Salud | 61.3 | 38.7 |
kable(pct_fila("Prevision_salud"), caption = "Tabla 20. Previsión de salud por área (% de cada área)")
| Fonasa | Isapre | Particular | |
|---|---|---|---|
| Administración | 60.5 | 25.9 | 13.5 |
| Comercio | 65.9 | 25.6 | 8.5 |
| Educación | 54.9 | 33.1 | 12.1 |
| Ingeniería | 60.4 | 28.6 | 11.1 |
| Salud | 55.0 | 34.4 | 10.6 |
perfil_num <- d %>%
group_by(AREA) %>%
summarise(n = n(),
Edad = mean(Edad), Hrs_trabajo = mean(Horas_trabajo),
Hrs_sueno = mean(Horas_sueno), Estres = mean(Estres),
Burnout_media = mean(Burnout), Burnout_DE = sd(Burnout),
Burnout_mediana = median(Burnout),
Ansiedad = mean(Ansiedad), Depresion = mean(Depresion),
Cafe = mean(Cafe), Colesterol = mean(Colesterol))
kable(perfil_num, digits = 2, caption = "Tabla 21. Perfil numérico por área (medias)")
| AREA | n | Edad | Hrs_trabajo | Hrs_sueno | Estres | Burnout_media | Burnout_DE | Burnout_mediana | Ansiedad | Depresion | Cafe | Colesterol |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Administración | 266 | 39.29 | 47.08 | 6.31 | 2.87 | 50.02 | 11.43 | 50 | 7.77 | 6.23 | 2.78 | 210.7 |
| Comercio | 258 | 38.95 | 47.84 | 6.26 | 2.95 | 50.74 | 11.23 | 51 | 7.80 | 6.79 | 2.88 | 209.8 |
| Educación | 257 | 39.58 | 47.58 | 6.31 | 2.99 | 50.49 | 11.50 | 51 | 8.19 | 6.28 | 2.67 | 211.6 |
| Ingeniería | 217 | 39.88 | 47.35 | 6.25 | 3.00 | 50.81 | 11.02 | 52 | 7.70 | 6.52 | 2.87 | 209.6 |
| Salud | 302 | 38.97 | 47.52 | 6.27 | 3.08 | 51.91 | 11.41 | 52 | 7.97 | 6.54 | 2.82 | 209.2 |
ggplot(d, aes(x = reorder(AREA, AREA, function(x) -length(x)))) +
geom_bar(fill = "#2C6E91") +
geom_text(stat = "count", aes(label = after_stat(count)), vjust = -0.4) +
labs(title = "Trabajadores por área de desempeño",
x = "Área", y = "Frecuencia absoluta") +
theme_minimal(base_size = 12)
Figura 1. Número de trabajadores por área
d_largo <- d %>%
select(AREA, Sexo, Ejercicio, Alcohol, Prevision_salud) %>%
pivot_longer(-AREA, names_to = "Variable", values_to = "Categoria")
ggplot(d_largo, aes(x = AREA, fill = Categoria)) +
geom_bar(position = "fill") +
facet_wrap(~ Variable, ncol = 2) +
scale_y_continuous(labels = scales::percent) +
scale_fill_brewer(palette = "Set2") +
labs(title = "Composición porcentual de cada área",
x = "Área", y = "Porcentaje", fill = "Categoría") +
theme_minimal(base_size = 11) +
theme(axis.text.x = element_text(angle = 30, hjust = 1))
Figura 2. Composición de cada área según variables categóricas
d %>%
select(Edad, Horas_trabajo, Horas_sueno, Colesterol, Burnout) %>%
pivot_longer(everything(), names_to = "Variable", values_to = "Valor") %>%
ggplot(aes(x = Valor)) +
geom_histogram(bins = 12, fill = "#2C6E91", color = "white") +
facet_wrap(~ Variable, scales = "free", ncol = 3) +
labs(title = "Distribución de variables cuantitativas",
x = "Valor", y = "Frecuencia") +
theme_minimal(base_size = 11)
Figura 3. Histogramas de variables continuas
d %>%
select(Estres, Ansiedad, Depresion, Cafe, N_hijos) %>%
pivot_longer(everything(), names_to = "Variable", values_to = "Valor") %>%
ggplot(aes(x = factor(Valor))) +
geom_bar(fill = "#E07A5F") +
facet_wrap(~ Variable, scales = "free", ncol = 3) +
labs(title = "Distribución de variables discretas",
x = "Valor", y = "Frecuencia") +
theme_minimal(base_size = 11)
Figura 4. Distribución de variables discretas
p1 <- ggplot(d, aes(x = AREA, y = Burnout, fill = AREA)) +
geom_boxplot(show.legend = FALSE) +
scale_fill_brewer(palette = "Set2") +
labs(title = "Burnout por área", x = "Área", y = "Puntaje de Burnout") +
theme_minimal(base_size = 11) + theme(axis.text.x = element_text(angle = 30, hjust = 1))
p2 <- ggplot(d, aes(x = AREA, y = Horas_sueno, fill = AREA)) +
geom_boxplot(show.legend = FALSE) +
scale_fill_brewer(palette = "Set2") +
labs(title = "Horas de sueño por área", x = "Área", y = "Horas de sueño") +
theme_minimal(base_size = 11) + theme(axis.text.x = element_text(angle = 30, hjust = 1))
grid.arrange(p1, p2, ncol = 2)
Figura 5. Burnout y horas de sueño por área
Para cada comparación se sigue el mismo protocolo:
Nivel de significancia: \(\alpha = 0{,}05\).
Nota sobre normalidad. Con n grande, Shapiro-Wilk rechaza por desviaciones mínimas sin importancia práctica. Por eso se complementa con los gráficos Q-Q, y se reportan ambas familias de pruebas; si concuerdan, la conclusión es robusta.
qq_plot <- function(y, g, titulo) {
ggplot(d, aes(sample = .data[[y]])) +
stat_qq(size = 0.7, alpha = 0.5, color = "#2C6E91") + stat_qq_line(color = "#E07A5F") +
facet_wrap(as.formula(paste("~", g))) +
labs(title = titulo, x = "Cuantiles teóricos", y = "Cuantiles muestrales") +
theme_minimal(base_size = 10)
}
grid.arrange(
qq_plot("Burnout", "Sexo", "Burnout por sexo"),
qq_plot("Burnout", "Ejercicio", "Burnout por ejercicio"),
qq_plot("Horas_sueno", "Sexo", "Sueño por sexo"),
qq_plot("Horas_sueno", "Ejercicio", "Sueño por ejercicio"),
ncol = 2)
Figura 6. Gráficos Q-Q de Burnout y horas de sueño por sexo y ejercicio
# Compara una variable numérica (y) entre 2 grupos (g, factor)
comparar_2g <- function(dat, y, g) {
f <- as.formula(paste(y, "~", g))
grupos <- split(dat[[y]], dat[[g]])
niv <- names(grupos)
sw <- sapply(grupos, function(x) shapiro.test(x)$p.value)
lev_p <- leveneTest(f, data = dat)[1, "Pr(>F)"]
tt <- t.test(f, data = dat, var.equal = lev_p > 0.05)
mw <- wilcox.test(f, data = dat, exact = FALSE)
n1 <- length(grupos[[1]]); n2 <- length(grupos[[2]])
sp <- sqrt(((n1 - 1) * var(grupos[[1]]) + (n2 - 1) * var(grupos[[2]])) / (n1 + n2 - 2))
data.frame(
Variable = y, Factor = g,
Grupo1 = niv[1], Media1 = mean(grupos[[1]]),
Grupo2 = niv[2], Media2 = mean(grupos[[2]]),
p_Shapiro_1 = sw[1], p_Shapiro_2 = sw[2], p_Levene = lev_p,
Prueba_t = ifelse(lev_p > 0.05, "Student", "Welch"),
p_t = tt$p.value, p_MannWhitney = mw$p.value,
d_Cohen = (mean(grupos[[1]]) - mean(grupos[[2]])) / sp,
row.names = NULL)
}
# Formato de p-valores: evita mostrar "0.0000"
fp <- function(p) ifelse(p < 0.0001, "< 0.0001", sprintf("%.4f", p))
comp2 <- bind_rows(
comparar_2g(d, "Burnout", "Sexo"),
comparar_2g(d, "Burnout", "Ejercicio"),
comparar_2g(d, "Horas_sueno", "Sexo"),
comparar_2g(d, "Horas_sueno", "Ejercicio"))
kable(comp2[, c("Variable", "Factor", "Grupo1", "Media1", "Grupo2", "Media2", "d_Cohen")],
digits = 3, caption = "Tabla 22. Medias por grupo y tamaño del efecto")
| Variable | Factor | Grupo1 | Media1 | Grupo2 | Media2 | d_Cohen |
|---|---|---|---|---|---|---|
| Burnout | Sexo | Femenino | 50.994 | Masculino | 50.615 | 0.034 |
| Burnout | Ejercicio | No | 55.066 | Sí | 47.281 | 0.731 |
| Horas_sueno | Sexo | Femenino | 6.303 | Masculino | 6.253 | 0.072 |
| Horas_sueno | Ejercicio | No | 6.265 | Sí | 6.293 | -0.041 |
kable(comp2[, c("Variable", "Factor", "p_Shapiro_1", "p_Shapiro_2", "p_Levene")],
digits = 4, caption = "Tabla 23. Supuestos: normalidad (Shapiro-Wilk por grupo) y homocedasticidad (Levene)")
| Variable | Factor | p_Shapiro_1 | p_Shapiro_2 | p_Levene |
|---|---|---|---|---|
| Burnout | Sexo | 0.0132 | 0.0838 | 0.8964 |
| Burnout | Ejercicio | 0.1730 | 0.0032 | 0.8474 |
| Horas_sueno | Sexo | 0.0254 | 0.6561 | 0.1948 |
| Horas_sueno | Ejercicio | 0.2987 | 0.1562 | 0.0555 |
tab24 <- comp2[, c("Variable", "Factor", "Prueba_t", "p_t", "p_MannWhitney")]
tab24$p_t <- fp(tab24$p_t); tab24$p_MannWhitney <- fp(tab24$p_MannWhitney)
kable(tab24, caption = "Tabla 24. Pruebas de hipótesis (2 grupos)")
| Variable | Factor | Prueba_t | p_t | p_MannWhitney |
|---|---|---|---|---|
| Burnout | Sexo | Student | 0.5485 | 0.5727 |
| Burnout | Ejercicio | Student | < 0.0001 | < 0.0001 |
| Horas_sueno | Sexo | Student | 0.2002 | 0.1049 |
| Horas_sueno | Ejercicio | Student | 0.4659 | 0.5307 |
bx <- function(y, g, tit, ylab) {
ggplot(d, aes(x = .data[[g]], y = .data[[y]], fill = .data[[g]])) +
geom_boxplot(show.legend = FALSE, width = 0.55) +
stat_summary(fun = mean, geom = "point", shape = 18, size = 3, color = "black") +
scale_fill_brewer(palette = "Set2") +
labs(title = tit, x = g, y = ylab) + theme_minimal(base_size = 11)
}
grid.arrange(
bx("Burnout", "Sexo", "Burnout según sexo", "Puntaje de Burnout"),
bx("Burnout", "Ejercicio", "Burnout según ejercicio", "Puntaje de Burnout"),
bx("Horas_sueno", "Sexo", "Sueño según sexo", "Horas de sueño"),
bx("Horas_sueno", "Ejercicio", "Sueño según ejercicio", "Horas de sueño"),
ncol = 2)
Figura 7. Burnout y horas de sueño según sexo y ejercicio
Para cada variable \(Y\) (Burnout, Horas de sueño) y cada factor (sexo, ejercicio): \(H_0: \mu_1 = \mu_2\) frente a \(H_1: \mu_1 \neq \mu_2\) (para Mann-Whitney, \(H_0\): misma distribución).
\(H_0: \mu_{Admin} = \mu_{Comercio} = \mu_{Educación} = \mu_{Ingeniería} = \mu_{Salud}\) frente a \(H_1\): al menos una media difiere. Se aplica a Burnout y a Horas de sueño.
comparar_kg <- function(dat, y, g) {
f <- as.formula(paste(y, "~", g))
sw <- tapply(dat[[y]], dat[[g]], function(x) shapiro.test(x)$p.value)
lev <- leveneTest(f, data = dat)[1, "Pr(>F)"]
av <- aov(f, data = dat)
tab <- summary(av)[[1]]
kw <- kruskal.test(f, data = dat)
list(shapiro = sw, levene = lev, anova = av, F = tab[1, "F value"],
p_anova = tab[1, "Pr(>F)"],
eta2 = tab[1, "Sum Sq"] / sum(tab[, "Sum Sq"]),
kw = kw)
}
res_b <- comparar_kg(d, "Burnout", "AREA")
res_s <- comparar_kg(d, "Horas_sueno", "AREA")
kable(data.frame(
Variable = c("Burnout", "Horas_sueno"),
p_Levene = c(res_b$levene, res_s$levene),
F_ANOVA = c(res_b$F, res_s$F),
p_ANOVA = c(res_b$p_anova, res_s$p_anova),
eta2 = c(res_b$eta2, res_s$eta2),
chi2_KW = c(res_b$kw$statistic, res_s$kw$statistic),
p_KW = c(res_b$kw$p.value, res_s$kw$p.value)),
digits = 4, caption = "Tabla 25. Levene, ANOVA y Kruskal-Wallis por área")
| Variable | p_Levene | F_ANOVA | p_ANOVA | eta2 | chi2_KW | p_KW |
|---|---|---|---|---|---|---|
| Burnout | 0.9151 | 1.0810 | 0.3644 | 0.0033 | 3.0495 | 0.5496 |
| Horas_sueno | 0.2583 | 0.3997 | 0.8090 | 0.0012 | 0.9277 | 0.9206 |
kable(data.frame(Area = names(res_b$shapiro),
p_Shapiro_Burnout = as.numeric(res_b$shapiro),
p_Shapiro_Sueno = as.numeric(res_s$shapiro)),
digits = 4, caption = "Tabla 26. Normalidad (Shapiro-Wilk) por área")
| Area | p_Shapiro_Burnout | p_Shapiro_Sueno |
|---|---|---|
| Administración | 0.2592 | 0.1813 |
| Comercio | 0.2109 | 0.0434 |
| Educación | 0.2861 | 0.3796 |
| Ingeniería | 0.3619 | 0.0940 |
| Salud | 0.0152 | 0.3312 |
# Comparaciones múltiples (confirmatorias: el omnibus no fue significativo)
TukeyHSD(res_b$anova)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = f, data = dat)
##
## $AREA
## diff lwr upr p adj
## Comercio-Administración 0.71388 -1.9909 3.419 0.9517
## Educación-Administración 0.47161 -2.2359 3.179 0.9895
## Ingeniería-Administración 0.78390 -2.0477 3.615 0.9429
## Salud-Administración 1.88473 -0.7181 4.488 0.2773
## Educación-Comercio -0.24227 -2.9703 2.486 0.9992
## Ingeniería-Comercio 0.07002 -2.7812 2.921 1.0000
## Salud-Comercio 1.17085 -1.4534 3.795 0.7405
## Ingeniería-Educación 0.31229 -2.5415 3.166 0.9983
## Salud-Educación 1.41312 -1.2139 4.040 0.5826
## Salud-Ingeniería 1.10083 -1.6539 3.856 0.8109
pairwise.wilcox.test(d$Burnout, d$AREA, p.adjust.method = "bonferroni", exact = FALSE)
##
## Pairwise comparisons using Wilcoxon rank sum test with continuity correction
##
## data: d$Burnout and d$AREA
##
## Administración Comercio Educación Ingeniería
## Comercio 1.0 - - -
## Educación 1.0 1.0 - -
## Ingeniería 1.0 1.0 1.0 -
## Salud 0.9 1.0 1.0 1.0
##
## P value adjustment method: bonferroni
\[\text{Burnout}_i = \beta_0 + \beta_1\,\text{Horas\_trabajo}_i + \beta_2\,\text{Horas\_sueño}_i + \beta_3\,\text{Estrés}_i + \beta_4\,\text{Ansiedad}_i + \varepsilon_i,\qquad \varepsilon_i \sim N(0,\sigma^2)\]
vars_reg <- c("Burnout", "Horas_trabajo", "Horas_sueno", "Estres", "Ansiedad")
kable(round(cor(d[vars_reg]), 3), caption = "Tabla 27. Matriz de correlaciones de Pearson")
| Burnout | Horas_trabajo | Horas_sueno | Estres | Ansiedad | |
|---|---|---|---|---|---|
| Burnout | 1.000 | 0.709 | -0.162 | 0.604 | 0.196 |
| Horas_trabajo | 0.709 | 1.000 | -0.035 | 0.159 | 0.066 |
| Horas_sueno | -0.162 | -0.035 | 1.000 | 0.026 | -0.003 |
| Estres | 0.604 | 0.159 | 0.026 | 1.000 | 0.336 |
| Ansiedad | 0.196 | 0.066 | -0.003 | 0.336 | 1.000 |
d %>%
select(all_of(vars_reg)) %>%
pivot_longer(-Burnout, names_to = "Predictor", values_to = "Valor") %>%
ggplot(aes(x = Valor, y = Burnout)) +
geom_point(alpha = 0.25, color = "#2C6E91") +
geom_smooth(method = "lm", color = "#E07A5F", se = TRUE) +
facet_wrap(~ Predictor, scales = "free_x") +
labs(title = "Relación entre Burnout y cada predictor",
x = "Valor del predictor", y = "Puntaje de Burnout") +
theme_minimal(base_size = 11)
Figura 8. Burnout frente a cada predictor
m <- lm(Burnout ~ Horas_trabajo + Horas_sueno + Estres + Ansiedad, data = d)
summary(m)
##
## Call:
## lm(formula = Burnout ~ Horas_trabajo + Horas_sueno + Estres +
## Ansiedad, data = d)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18.510 -3.831 -0.115 3.588 16.065
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.5553 1.8811 -0.30 0.77
## Horas_trabajo 1.1833 0.0254 46.53 <0.0000000000000002 ***
## Horas_sueno -2.5136 0.2164 -11.61 <0.0000000000000002 ***
## Estres 3.9067 0.1074 36.39 <0.0000000000000002 ***
## Ansiedad -0.0819 0.0596 -1.37 0.17
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.39 on 1295 degrees of freedom
## Multiple R-squared: 0.774, Adjusted R-squared: 0.773
## F-statistic: 1.11e+03 on 4 and 1295 DF, p-value: <0.0000000000000002
ic <- confint(m)
# Coeficientes estandarizados (comparar la importancia relativa de los predictores)
m_z <- lm(scale(Burnout) ~ scale(Horas_trabajo) + scale(Horas_sueno) +
scale(Estres) + scale(Ansiedad), data = d)
tab_coef <- data.frame(
Coeficiente = names(coef(m)),
Estimado = coef(m), EE = summary(m)$coefficients[, 2],
IC_inf = ic[, 1], IC_sup = ic[, 2],
p_valor = summary(m)$coefficients[, 4],
Beta_estandarizado = c(NA, coef(m_z)[-1]), row.names = NULL)
tab_coef$p_valor <- fp(tab_coef$p_valor)
kable(tab_coef, digits = 4, caption = "Tabla 28. Coeficientes del modelo, IC 95% y betas estandarizados")
| Coeficiente | Estimado | EE | IC_inf | IC_sup | p_valor | Beta_estandarizado |
|---|---|---|---|---|---|---|
| (Intercept) | -0.5553 | 1.8811 | -4.2458 | 3.135 | 0.7679 | NA |
| Horas_trabajo | 1.1833 | 0.0254 | 1.1334 | 1.233 | < 0.0001 | 0.6229 |
| Horas_sueno | -2.5136 | 0.2164 | -2.9382 | -2.089 | < 0.0001 | -0.1535 |
| Estres | 3.9067 | 0.1074 | 3.6961 | 4.117 | < 0.0001 | 0.5159 |
| Ansiedad | -0.0819 | 0.0596 | -0.1988 | 0.035 | 0.1696 | -0.0193 |
# Aporte de Ansiedad una vez controlado el resto (modelos anidados)
m_sin_ans <- update(m, . ~ . - Ansiedad)
anova(m_sin_ans, m)
cat("R2 ajustado con Ansiedad:", round(summary(m)$adj.r.squared, 4),
"| sin Ansiedad:", round(summary(m_sin_ans)$adj.r.squared, 4), "\n")
## R2 ajustado con Ansiedad: 0.7735 | sin Ansiedad: 0.7733
d_diag <- data.frame(ajustado = fitted(m), residuo = resid(m),
est = rstandard(m), cook = cooks.distance(m))
g1 <- ggplot(d_diag, aes(ajustado, residuo)) +
geom_point(alpha = 0.3, color = "#2C6E91") + geom_hline(yintercept = 0, color = "#E07A5F") +
geom_smooth(se = FALSE, color = "black", linewidth = 0.6) +
labs(title = "Residuos vs ajustados", x = "Valores ajustados", y = "Residuos") + theme_minimal(base_size = 10)
g2 <- ggplot(d_diag, aes(sample = est)) + stat_qq(alpha = 0.4, color = "#2C6E91") +
stat_qq_line(color = "#E07A5F") +
labs(title = "Q-Q de residuos estandarizados", x = "Cuantiles teóricos", y = "Cuantiles muestrales") + theme_minimal(base_size = 10)
g3 <- ggplot(d_diag, aes(ajustado, sqrt(abs(est)))) +
geom_point(alpha = 0.3, color = "#2C6E91") + geom_smooth(se = FALSE, color = "black", linewidth = 0.6) +
labs(title = "Escala-ubicación", x = "Valores ajustados", y = "raíz |residuo estandarizado|") + theme_minimal(base_size = 10)
g4 <- ggplot(d_diag, aes(seq_along(cook), cook)) + geom_col(fill = "#2C6E91") +
geom_hline(yintercept = 4 / nrow(d), linetype = 2, color = "#E07A5F") +
labs(title = "Distancia de Cook (línea: 4/n)", x = "Observación", y = "Cook") + theme_minimal(base_size = 10)
grid.arrange(g1, g2, g3, g4, ncol = 2)
Figura 9. Diagnóstico gráfico de residuos
cat("--- Normalidad de residuos (Shapiro-Wilk) ---\n"); print(shapiro.test(resid(m)))
## --- Normalidad de residuos (Shapiro-Wilk) ---
##
## Shapiro-Wilk normality test
##
## data: resid(m)
## W = 1, p-value = 0.7
cat("--- Homocedasticidad (Breusch-Pagan) ---\n"); print(bptest(m))
## --- Homocedasticidad (Breusch-Pagan) ---
##
## studentized Breusch-Pagan test
##
## data: m
## BP = 2, df = 4, p-value = 0.7
cat("--- Autocorrelación (Durbin-Watson) ---\n"); print(dwtest(m))
## --- Autocorrelación (Durbin-Watson) ---
##
## Durbin-Watson test
##
## data: m
## DW = 2, p-value = 0.5
## alternative hypothesis: true autocorrelation is greater than 0
cat("--- Multicolinealidad (VIF) ---\n"); print(vif(m))
## --- Multicolinealidad (VIF) ---
## Horas_trabajo Horas_sueno Estres Ansiedad
## 1.028 1.002 1.153 1.128
cat("--- Observaciones con Cook > 4/n:", sum(d_diag$cook > 4 / nrow(d)),
"| Cook máximo:", round(max(d_diag$cook), 4), "---\n")
## --- Observaciones con Cook > 4/n: 55 | Cook máximo: 0.0089 ---
# 80% entrenamiento / 20% prueba; semilla fija para reproducibilidad
set.seed(2026)
idx <- sample(nrow(d), size = round(0.8 * nrow(d)))
m_tr <- lm(formula(m), data = d[idx, ])
pred <- predict(m_tr, newdata = d[-idx, ])
obs <- d$Burnout[-idx]
rmse <- sqrt(mean((obs - pred)^2))
mae <- mean(abs(obs - pred))
r2_te <- 1 - sum((obs - pred)^2) / sum((obs - mean(obs))^2)
kable(data.frame(RMSE = rmse, MAE = mae, R2_prueba = r2_te,
DE_Burnout = sd(d$Burnout)), digits = 3,
caption = "Tabla 29. Desempeño en el 20% de prueba")
| RMSE | MAE | R2_prueba | DE_Burnout |
|---|---|---|---|
| 5.613 | 4.511 | 0.76 | 11.33 |
La comparación del Objetivo 2 mostró que el ejercicio se asocia fuertemente a Burnout. Se verifica si agrega información al modelo.
m_ext <- update(m, . ~ . + Ejercicio)
anova(m, m_ext)
cat("R2 ajustado base:", round(summary(m)$adj.r.squared, 4),
"| con Ejercicio:", round(summary(m_ext)$adj.r.squared, 4), "\n")
## R2 ajustado base: 0.7735 | con Ejercicio: 0.8156
round(summary(m_ext)$coefficients, 4)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.4582 1.7064 1.441 0.1499
## Horas_trabajo 1.1870 0.0229 51.730 0.0000
## Horas_sueno -2.4207 0.1954 -12.390 0.0000
## Estres 3.5228 0.0994 35.435 0.0000
## Ansiedad -0.0833 0.0538 -1.549 0.1215
## EjercicioSí -4.8081 0.2792 -17.221 0.0000
Lectura. Al incluir Ejercicio, su coeficiente es -4,81 puntos (p < 0,0001) y el R² ajustado sube de 0,774 a 0,816. Los demás coeficientes casi no cambian y Ansiedad sigue sin ser significativa (p = 0,12). Es decir, el ejercicio se asocia a menos Burnout incluso comparando personas con igual carga horaria, sueño y estrés. Esta extensión no forma parte de los objetivos; se incluye como hallazgo exploratorio.
sessionInfo()
## R version 4.6.1 (2026-06-24 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26200)
##
## Matrix products: default
## LAPACK version 3.12.1
##
## locale:
## [1] LC_COLLATE=Spanish_Chile.utf8 LC_CTYPE=Spanish_Chile.utf8
## [3] LC_MONETARY=Spanish_Chile.utf8 LC_NUMERIC=C
## [5] LC_TIME=Spanish_Chile.utf8
##
## time zone: America/Santiago
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] knitr_1.51 gridExtra_2.3.1 lmtest_0.9-40 zoo_1.9-1
## [5] car_3.1-5 carData_3.0-6 ggplot2_4.0.3 tidyr_1.3.2
## [9] dplyr_1.2.1 readxl_1.5.0
##
## loaded via a namespace (and not attached):
## [1] Matrix_1.7-5 gtable_0.3.6 jsonlite_2.0.0 compiler_4.6.1
## [5] tidyselect_1.2.1 jquerylib_0.1.4 splines_4.6.1 scales_1.4.0
## [9] yaml_2.3.12 fastmap_1.2.0 lattice_0.22-9 R6_2.6.1
## [13] labeling_0.4.3 generics_0.1.4 Formula_1.2-6 tibble_3.3.1
## [17] bslib_0.12.0 pillar_1.11.1 RColorBrewer_1.1-3 rlang_1.3.0
## [21] cachem_1.1.0 xfun_0.60 sass_0.4.10 S7_0.2.2
## [25] otel_0.2.0 cli_3.6.6 mgcv_1.9-4 withr_3.0.3
## [29] magrittr_2.0.5 digest_0.6.39 grid_4.6.1 rstudioapi_0.19.0
## [33] nlme_3.1-169 lifecycle_1.0.5 vctrs_0.7.3 evaluate_1.0.5
## [37] glue_1.8.1 farver_2.1.2 cellranger_1.1.0 abind_1.4-8
## [41] rmarkdown_2.31 purrr_1.2.2 tools_4.6.1 pkgconfig_2.0.3
## [45] htmltools_0.5.9