1. Pregunta de Investigación:

¿Cómo difiere el tiempo que hombres y mujeres dedican, entre 18 a 80 años, residentes en cabeceras municipales de la región Pacífica, a los oficios del hogar, al traslado para compras y diligencias, al viaje hacia/desde el trabajo y al acompañamiento de niños menores de 12 años a instituciones educativas en comparación a Bogotá y total nacional?

1.1 Justificación:

La pregunta de investigación se centra en identificar cómo difiere el tiempo que hombres y mujeres de entre 18 y 80 años, residentes en cabeceras municipales de la región Pacífica, dedican a oficios del hogar, traslados por compras y diligencias, viajes hacia o desde el trabajo y acompañamiento de niños menores de 12 años. No obstante, para fortalecer la interpretación, se incorporaron dos niveles de contraste: Bogotá y el total nacional. Bogotá, como capital del país y ciudad con dinámicas urbanas particulares, ofrece un escenario de comparación relevante para explorar si las diferencias de género en el uso del tiempo se intensifican o reducen en contextos altamente urbanizados. El total nacional, por su parte, funciona como marco de referencia general que permite ubicar al Pacífico en el conjunto de las regiones colombianas. Esta estrategia metodológica aporta un análisis más robusto, pues no solo describe el caso del Pacífico en abstracto, sino que lo contextualiza frente a un centro urbano clave y frente al promedio del país, enriqueciendo la comprensión de las desigualdades de género en la organización del tiempo cotidiano.

2. Selección de variables

  1. p6020 - Sexo

  2. p6040 - Edad

  3. p1099s1 - (HORAS) Tiempo viaje al trabajo p1099s1 - (MIN) Tiempo viaje al trabajo

  4. p1140s7a1 - (HORAS) Trasladarse para efectuar alguna de las anteriores actividades (compras, pago facturas, etc)

p1140s7a2 - (MIN) Trasladarse para efectuar alguna de las anteriores actividades (compras, pago facturas, etc)

  1. p1114s2a1 - (HORAS) Llevar o traer a alguna persona de 12 años o menos al sitio de estudio.

p1114s2a2 - (MIN) Llevar o traer a alguna persona de 12 años o menos al sitio de estudio.

  1. p1128s1a1 - (HORAS) Oficios del hogar (cocinar,limpiar la casa)

p1128s1a2 - (MIN) Oficios del hogar (cocinar,limpiar la casa)

2.1 Cargar librerías

library(haven)
## Warning: package 'haven' was built under R version 4.4.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(summarytools)
## Warning: package 'summarytools' was built under R version 4.4.3

2.2 Cargar base de datos

data_base <- read_dta("C:/Users/Mariana Villegas/OneDrive - Universidad Icesi/Escritorio/ENUT2020.dta")

2.3 Rectificar nombres de las constantes en la base de datos

# Buscar dentro de los nombres algo que contenga "clase" o "region"
grep("clase", names(data_base), value = TRUE)
## [1] "clase"
grep("reg", names(data_base), value = TRUE)
## [1] "region"

2.4 Confirmar la presencia de las variables necesarias en la base original

"p6020"   %in% names(data_base)   # 1. Sexo
## [1] TRUE
"p6040"   %in% names(data_base)   # 2. Edad
## [1] TRUE
"p1099s1" %in% names(data_base)   # 3. Tiempo viaje al trabajo (HORAS)
## [1] TRUE
"p1099s2" %in% names(data_base)   # 3.1 Tiempo viaje al trabajo (MINUTOS)
## [1] TRUE
"p1140s7a1" %in% names(data_base) # 4. Traslado compras/diligencias (HORAS)
## [1] TRUE
"p1140s7a2" %in% names(data_base) # 4.1 Traslado compras/diligencias (MINUTOS)
## [1] TRUE
"p1114s2a1" %in% names(data_base) # 5. Traslado niños <12 a estudio (HORAS)
## [1] TRUE
"p1114s2a2" %in% names(data_base) # 5.1 Traslado niños <12 a estudio (MINUTOS)
## [1] TRUE
"p1128s1a1" %in% names(data_base) # 6. Oficios del hogar (HORAS)
## [1] TRUE
"p1128s1a2" %in% names(data_base) # 6.1 Oficios del hogar (MINUTOS)
## [1] TRUE

2.5 Filtrar solo cabeceras y edades entre 18 y 80

data_filtrada <- data_base %>%
  filter(clase == 1, p6040 >= 18, p6040 <= 80) %>%
  mutate(
    region_label = case_when(
      region == 4 ~ "Pacífico",
      region == 5 ~ "Bogotá",
      TRUE        ~ "Nacional"
    ),
    sexo = p6020,
    edad = p6040,
    horas_viajetrabajo = p1099s1,
    min_viajetrabajo   = p1099s2,
    horas_traslado_compras = p1140s7a1,
    min_traslado_compras   = p1140s7a2,
    horas_traslado_nino = p1114s2a1,
    min_traslado_nino   = p1114s2a2,
    horas_oficios = p1128s1a1,
    min_oficios   = p1128s1a2
  )

2.6 Unificación de tiempos en minutos totales

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.4.3
## Warning: package 'ggplot2' was built under R version 4.4.3
## Warning: package 'tidyr' was built under R version 4.4.3
## Warning: package 'readr' was built under R version 4.4.3
## Warning: package 'purrr' was built under R version 4.4.3
## Warning: package 'stringr' was built under R version 4.4.2
## Warning: package 'forcats' was built under R version 4.4.3
## Warning: package 'lubridate' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ readr     2.1.5
## ✔ ggplot2   3.5.2     ✔ stringr   1.5.1
## ✔ lubridate 1.9.4     ✔ tibble    3.2.1
## ✔ purrr     1.0.4     ✔ tidyr     1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ tibble::view()  masks summarytools::view()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# Función para limpiar valores de no respuesta (99, 999, etc.)
limpiar_valores <- function(x) {
  x_num <- suppressWarnings(as.numeric(x))  # convierte labelled a numérico
  x_num[x_num %in% c(99, 999, 998, 9999)] <- NA
  x_num
}

# Función para calcular minutos totales
calc_minutos <- function(h, m) {
  h_num <- limpiar_valores(h)
  m_num <- limpiar_valores(m)
  is_both_na <- is.na(h_num) & is.na(m_num)
  minutos <- (ifelse(is.na(h_num), 0, h_num) * 60) + ifelse(is.na(m_num), 0, m_num)
  minutos[is_both_na] <- NA
  minutos
}


# 2. Aplicar a la base
data_filtrada <- data_filtrada %>%
  mutate(
    across(
      c(horas_viajetrabajo, min_viajetrabajo, 
        horas_traslado_compras, min_traslado_compras,
        horas_traslado_nino, min_traslado_nino,
        horas_oficios, min_oficios),
      limpiar_valores
    ),
    tiempo_viajetrabajo_min = calc_minutos(horas_viajetrabajo, min_viajetrabajo),
    tiempo_traslado_compras_min = calc_minutos(horas_traslado_compras, min_traslado_compras),
    tiempo_traslado_nino_min = calc_minutos(horas_traslado_nino, min_traslado_nino),
    tiempo_oficios_min = calc_minutos(horas_oficios, min_oficios)
  )

#¿Cuál es el sentido detrás de lo anterior?

El procesamiento de la base de datos siguió una lógica directamente vinculada con la pregunta de investigación. Primero se cargaron las librerías y la base original de la ENUT, verificando la existencia de las variables clave (sexo, edad y tiempos de viaje, traslado y oficios del hogar). Posteriormente, se filtró la población de interés: residentes en cabeceras municipales entre 18 y 80 años, lo cual permite centrar el análisis en contextos urbanos y en edades en las que se expresan con mayor claridad las dinámicas de organización del tiempo. Con el fin de establecer comparaciones, se creó una variable de etiquetado de región que distingue entre Pacífico, Bogotá y el total nacional. Seguidamente, se renombraron las variables con nombres más intuitivos, lo que facilita la interpretación de los resultados. Finalmente, los tiempos originalmente medidos en horas y minutos fueron unificados en minutos totales, previa limpieza de valores de no respuesta, garantizando así consistencia y comparabilidad en el análisis estadístico posterior.

2.7 Identificación de NA’s

# Identificación de NA por variable, desagregado por región
na_por_region <- data_filtrada %>%
  group_by(region_label) %>%
  summarise(
    across(
      c(horas_viajetrabajo, min_viajetrabajo, 
        horas_traslado_compras, min_traslado_compras,
        horas_traslado_nino, min_traslado_nino,
        horas_oficios, min_oficios),
      ~ sum(is.na(.)),
      .names = "na_{col}"
    )
  )

na_por_region
## # A tibble: 3 × 9
##   region_label na_horas_viajetrabajo na_min_viajetrabajo na_horas_traslado_com…¹
##   <chr>                        <int>               <int>                   <int>
## 1 Bogotá                        9862                9862                   16867
## 2 Nacional                     32645               32645                   51894
## 3 Pacífico                      7067                7067                   10885
## # ℹ abbreviated name: ¹​na_horas_traslado_compras
## # ℹ 5 more variables: na_min_traslado_compras <int>,
## #   na_horas_traslado_nino <int>, na_min_traslado_nino <int>,
## #   na_horas_oficios <int>, na_min_oficios <int>

Interpretación

Los resultados muestran que la magnitud de valores perdidos varía según la región y la actividad medida. En la región Pacífica, las mayores ausencias se concentran en el traslado de niños (12.375 casos sin información) y en los oficios del hogar, mientras que los tiempos de viaje al trabajo presentan alrededor de 7.000 valores faltantes. En Bogotá, el volumen de datos perdidos es más alto en todas las variables, alcanzando 17.355 casos sin información en traslado de niños y más de 17.000 en oficios del hogar. A nivel nacional, las cifras son considerablemente mayores —con más de 55.000 casos sin dato en traslado de niños y cerca de 52.000 en traslados por compras—, lo cual era esperable por el tamaño de la muestra. En conjunto, estos patrones evidencian que las actividades de cuidado y del hogar son las que presentan más omisiones en el reporte, mientras que los tiempos de viaje al trabajo tienden a tener una cobertura relativamente más completa.

3. Análisis descriptivo

3.1 Medidas de tendencia central

3.1.1 Media

mean(data_filtrada$edad, na.rm = TRUE)
## [1] 42.72885
mean(data_filtrada$tiempo_viajetrabajo_min, na.rm = TRUE)
## [1] 29.96743
mean(data_filtrada$tiempo_traslado_compras_min, na.rm = TRUE)
## [1] 30.67358
mean(data_filtrada$tiempo_traslado_nino_min, na.rm = TRUE)
## [1] 39.24242
mean(data_filtrada$tiempo_oficios_min, na.rm = TRUE)
## [1] 129.5732

3.1.2 Mediana

median(data_filtrada$edad, na.rm = TRUE)
## [1] 41
median(data_filtrada$tiempo_viajetrabajo_min, na.rm = TRUE)
## [1] 20
median(data_filtrada$tiempo_traslado_compras_min, na.rm = TRUE)
## [1] 20
median(data_filtrada$tiempo_traslado_nino_min, na.rm = TRUE)
## [1] 30
median(data_filtrada$tiempo_oficios_min, na.rm = TRUE)
## [1] 120

3.1.3 Moda

# Moda de Edad
tabla_edad <- table(data_filtrada$edad)
moda_edad <- as.numeric(names(tabla_edad)[which.max(tabla_edad)])
moda_edad
## [1] 30
# Moda de Tiempo viaje al trabajo (min)
tabla_viajetrabajo <- table(data_filtrada$tiempo_viajetrabajo_min)
moda_viajetrabajo <- as.numeric(names(tabla_viajetrabajo)[which.max(tabla_viajetrabajo)])
moda_viajetrabajo
## [1] 0
# Moda de Traslado compras (min)
tabla_compras <- table(data_filtrada$tiempo_traslado_compras_min)
moda_compras <- as.numeric(names(tabla_compras)[which.max(tabla_compras)])
moda_compras
## [1] 30
# Moda de Traslado niños (min)
tabla_nino <- table(data_filtrada$tiempo_traslado_nino_min)
moda_nino <- as.numeric(names(tabla_nino)[which.max(tabla_nino)])
moda_nino
## [1] 30
# Moda de Oficios del hogar (min)
tabla_oficios <- table(data_filtrada$tiempo_oficios_min)
moda_oficios <- as.numeric(names(tabla_oficios)[which.max(tabla_oficios)])
moda_oficios
## [1] 120
# Moda de Sexo (1 = Hombre, 2 = Mujer)
tabla_sexo <- table(data_filtrada$sexo)
moda_sexo <- as.numeric(names(tabla_sexo)[which.max(tabla_sexo)])
moda_sexo
## [1] 2

3.2 Medidas de dispersión

3.2.1 Desviación estándar

sd(data_filtrada$edad, na.rm = TRUE)
## [1] 16.29797
sd(data_filtrada$tiempo_viajetrabajo_min, na.rm = TRUE)
## [1] 38.84142
sd(data_filtrada$tiempo_traslado_compras_min, na.rm = TRUE)
## [1] 32.99889
sd(data_filtrada$tiempo_traslado_nino_min, na.rm = TRUE)
## [1] 28.69257
sd(data_filtrada$tiempo_oficios_min, na.rm = TRUE)
## [1] 99.95048

3.2.2 Asimetrías

library(e1071)
## Warning: package 'e1071' was built under R version 4.4.3
skewness(data_filtrada$edad, na.rm = TRUE)
## [1] 0.3559487
skewness(data_filtrada$tiempo_viajetrabajo_min, na.rm = TRUE)
## [1] 5.186037
skewness(data_filtrada$tiempo_traslado_compras_min, na.rm = TRUE)
## [1] 3.417411
skewness(data_filtrada$tiempo_traslado_nino_min, na.rm = TRUE)
## [1] 2.229056
skewness(data_filtrada$tiempo_oficios_min, na.rm = TRUE)
## [1] 1.877098

3.2.3 Curtosis

library(e1071)
kurtosis(data_filtrada$edad, na.rm = TRUE)
## [1] -0.9026495
kurtosis(data_filtrada$tiempo_viajetrabajo_min, na.rm = TRUE)
## [1] 56.1864
kurtosis(data_filtrada$tiempo_traslado_compras_min, na.rm = TRUE)
## [1] 18.65915
kurtosis(data_filtrada$tiempo_traslado_nino_min, na.rm = TRUE)
## [1] 7.31117
kurtosis(data_filtrada$tiempo_oficios_min, na.rm = TRUE)
## [1] 5.159919

#Gráficos

#Histograma de edad

ggplot(data_filtrada, aes(x = edad)) +
  geom_histogram(binwidth = 5, fill = "steelblue", color = "white") +
  labs(title = "Distribución de Edad",
       x = "Edad (años)",
       y = "Número de personas") +
  theme_minimal()

#Gráfico de barras de Sexo

ggplot(data_filtrada, aes(x = factor(sexo, labels = c("Hombre", "Mujer")))) +
  geom_bar(fill = "coral") +
  labs(title = "Distribución por Sexo",
       x = "Sexo",
       y = "Número de personas") +
  theme_minimal()

Interpretación:

El análisis descriptivo muestra que la edad promedio de la población es de 42,7 años, con una mediana de 41 y una moda de 30. Esto indica que la mayoría de los encuestados son adultos relativamente jóvenes, aunque la presencia de personas de mayor edad eleva el promedio. La dispersión es moderada y la distribución tiende a ser más aplanada que la normal, lo que refleja diversidad en la composición etaria de la muestra.

En cuanto a los tiempos de traslado, el viaje al trabajo presenta una media de 30 minutos, pero la moda es 0. Esto sugiere que una parte importante de la población no reporta este tipo de trayecto, posiblemente porque no realiza trabajo remunerado fuera del hogar. Sin embargo, existen casos con recorridos muy prolongados que elevan la media y generan una distribución altamente sesgada. Algo similar ocurre con los traslados para compras y diligencias: la mayoría dedica alrededor de 30 minutos, pero se observan valores atípicos de gran duración que explican la fuerte asimetría y curtosis.

El traslado de niños a instituciones educativas muestra un promedio de 39 minutos, con mediana y moda en 30. Esto revela que la mayoría de los hogares se concentran en ese rango, aunque también hay casos que implican tiempos considerablemente más largos. En los oficios del hogar, la media asciende a 129 minutos diarios (poco más de dos horas), con una moda de 120 minutos. Si bien este tiempo se repite con frecuencia, la amplia dispersión indica que algunos hogares destinan jornadas mucho más extensas a estas actividades.

Respecto al sexo, la moda corresponde a las mujeres, lo que refleja su predominancia en la muestra. Este hallazgo es consistente con la literatura sobre el trabajo doméstico y de cuidado, donde las mujeres suelen asumir una mayor proporción de estas responsabilidades.

4. Correlaciones

# Seleccionamos solo las variables continuas
vars_continuas <- data_filtrada %>%
  select(edad, tiempo_viajetrabajo_min, tiempo_traslado_compras_min,
         tiempo_traslado_nino_min, tiempo_oficios_min)

# Calculamos la matriz de correlaciones
correlaciones <- cor(vars_continuas, use = "pairwise.complete.obs")
correlaciones
##                                    edad tiempo_viajetrabajo_min
## edad                         1.00000000             -0.05089594
## tiempo_viajetrabajo_min     -0.05089594              1.00000000
## tiempo_traslado_compras_min  0.04596562              0.02731714
## tiempo_traslado_nino_min     0.15219999              0.02818059
## tiempo_oficios_min           0.01523377             -0.15611717
##                             tiempo_traslado_compras_min
## edad                                        0.045965625
## tiempo_viajetrabajo_min                     0.027317139
## tiempo_traslado_compras_min                 1.000000000
## tiempo_traslado_nino_min                    0.205109670
## tiempo_oficios_min                          0.006204299
##                             tiempo_traslado_nino_min tiempo_oficios_min
## edad                                      0.15219999        0.015233772
## tiempo_viajetrabajo_min                   0.02818059       -0.156117168
## tiempo_traslado_compras_min               0.20510967        0.006204299
## tiempo_traslado_nino_min                  1.00000000                 NA
## tiempo_oficios_min                                NA        1.000000000

#Interpretación: Los resultados de las correlaciones muestran que, en general, las relaciones lineales entre edad y los diferentes tiempos de actividad son débiles. La edad no parece determinar significativamente cuánto tiempo dedican las personas a los oficios del hogar, traslados por compras o cuidado de niños, lo que indica que estas actividades están distribuidas de manera relativamente homogénea entre los adultos de 18 a 80 años. Entre los tiempos de actividad, se observa una correlación positiva leve entre el traslado de niños y los traslados por compras o diligencias, lo que sugiere que quienes invierten más tiempo en el cuidado de menores también tienden a pasar más tiempo en desplazamientos relacionados con la gestión del hogar. Por otro lado, existe una correlación negativa ligera entre el tiempo de viaje al trabajo y los oficios del hogar, lo que refleja que quienes tienen jornadas más largas fuera del hogar dedican algo menos de tiempo a tareas domésticas, evidenciando la competencia por el tiempo disponible y reforzando la idea de la doble jornada, particularmente para las mujeres. En conjunto, estos patrones son consistentes con la literatura sobre organización del tiempo y desigualdad de género en actividades remuneradas y domésticas.

5. Análisis por sexo

library(ggplot2)

# Boxplot: Oficios del hogar
ggplot(data_filtrada, aes(x = factor(sexo, labels = c("Hombre", "Mujer")), 
                          y = tiempo_oficios_min, fill = factor(sexo))) +
  geom_boxplot() +
  labs(title = "Tiempo en oficios del hogar por sexo",
       x = "Sexo", y = "Minutos diarios") +
  theme_minimal() +
  scale_fill_manual(values=c("steelblue","coral"))
## Warning: Removed 85213 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

# Boxplot: Traslado niños <12
ggplot(data_filtrada, aes(x = factor(sexo, labels = c("Hombre", "Mujer")), 
                          y = tiempo_traslado_nino_min, fill = factor(sexo))) +
  geom_boxplot() +
  labs(title = "Tiempo en traslado de niños <12 años por sexo",
       x = "Sexo", y = "Minutos diarios") +
  theme_minimal() +
  scale_fill_manual(values=c("steelblue","coral"))
## Warning: Removed 85557 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

# Boxplot: Traslados por compras/diligencias
ggplot(data_filtrada, aes(x = factor(sexo, labels = c("Hombre", "Mujer")), 
                          y = tiempo_traslado_compras_min, fill = factor(sexo))) +
  geom_boxplot() +
  labs(title = "Tiempo en traslados por compras/diligencias por sexo",
       x = "Sexo", y = "Minutos diarios") +
  theme_minimal() +
  scale_fill_manual(values=c("steelblue","coral"))
## Warning: Removed 79646 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

# Boxplot: Viaje al trabajo
ggplot(data_filtrada, aes(x = factor(sexo, labels = c("Hombre", "Mujer")), 
                          y = tiempo_viajetrabajo_min, fill = factor(sexo))) +
  geom_boxplot() +
  labs(title = "Tiempo de viaje al trabajo por sexo",
       x = "Sexo", y = "Minutos diarios") +
  theme_minimal() +
  scale_fill_manual(values=c("steelblue","coral"))
## Warning: Removed 49574 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

Interpretación:

En esta sección se presentan boxplots de las principales actividades medidas (oficios del hogar, traslado de niños menores de 12 años, traslados por compras o diligencias y viaje al trabajo) desagregados por sexo, lo que permite visualizar la mediana, el rango intercuartílico, la dispersión y la presencia de valores atípicos. Los resultados muestran que las mujeres dedican sistemáticamente más tiempo que los hombres a los oficios del hogar y al cuidado de niños, con medianas claramente superiores y rangos más amplios, lo que evidencia una mayor carga y variabilidad en sus responsabilidades domésticas y de cuidado. En contraste, los tiempos de viaje hacia o desde el trabajo presentan diferencias menores, aunque los hombres muestran mayor dispersión en ciertos casos, posiblemente reflejando diversidad en la ubicación y tipo de empleo. Los traslados por compras o diligencias también revelan una ligera superioridad en el tiempo invertido por mujeres, sugiriendo que la organización de actividades domésticas y logísticas sigue recayendo principalmente sobre ellas. Este análisis permite interpretar que persiste la doble jornada de trabajo para las mujeres, quienes combinan empleo remunerado con una carga doméstica y de cuidado mayor, mientras que los hombres distribuyen su tiempo de manera más uniforme entre estas actividades. Los boxplots, por tanto, no solo describen la magnitud de las diferencias de género, sino que también permiten analizar patrones de desigualdad y complementar las medidas descriptivas previas, ofreciendo evidencia visual y cuantitativa sobre cómo se organiza el tiempo según el sexo.