library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(summarytools)
## Warning in fun(libname, pkgname): couldn't connect to display ":0"
## system might not have X11 capabilities; in case of errors when using dfSummary(), set st_options(use.x11 = FALSE)
## 
## Attaching package: 'summarytools'
## 
## The following object is masked from 'package:tibble':
## 
##     view
library(janitor)
## 
## Attaching package: 'janitor'
## 
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
library(skimr)

Título principal

Factores personales, laborales y de estilo de vida que explican el bienestar subjetivo: un análisis inferencial del nivel de satisfacción con la vida

Planteamiento del problema

Objetivo general

Analizar qué factores personales, laborales y de estilo de vida explican el nivel de bienestar subjetivo en una muestra poblacional.

Objetivos específicos

  • Comparar el nivel de bienestar entre personas con y sin hijos.
  • Evaluar la relación entre el tiempo libre semanal y el bienestar subjetivo.
  • Determinar si la percepción de una vida simple se asocia con el bienestar.
datos <- read_csv("base_bienestar_subjetivo(in).csv")
## Rows: 400 Columns: 14
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (8): sexo, nivel_educativo, estado_civil, hijos, trabaja_jornada_complet...
## dbl (6): edad, ingreso_mensual, horas_semana_responsabilidades, tiempo_libre...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
datos$bienestar_subjetivo_num <- as.numeric(datos$bienestar_subjetivo)

Justificación

El bienestar subjetivo es un concepto fundamental en la psicología positiva que mide cómo las personas evalúan sus propias vidas en términos de satisfacción y emociones positivas. Según Diener et al. (1999), este enfoque es crucial porque reconoce que el bienestar no depende únicamente de factores externos como los ingresos o el estatus social, sino también de aspectos internos como las relaciones personales, el sentido de propósito y la percepción subjetiva de la calidad de vida. En su estudio, Diener y colaboradores utilizaron técnicas estadísticas inferenciales, como análisis de regresión y correlación, para analizar grandes muestras poblacionales e identificar variables que influyen significativamente en la felicidad y satisfacción personal. Los resultados evidenciaron que factores sociales y psicológicos tienen un impacto mayor en el bienestar que indicadores económicos. Además, observaron que la adaptación hedonista juega un papel importante en la evaluación del bienestar subjetivo.

Este enfoque integral fundamenta nuestro análisis, donde exploramos cómo variables personales, laborales y de estilo de vida se relacionan con el bienestar subjetivo en una muestra local. Utilizamos pruebas estadísticas como t-test, ANOVA, chi-cuadrado y correlaciones para validar estas asociaciones y aportar evidencia empírica que pueda apoyar políticas públicas orientadas a mejorar el bienestar de la población.

Referencia:
Diener, E., Suh, E. M., Lucas, R. E., & Smith, H. L. (1999). Subjective well-being: Three decades of progress. Psychological Bulletin, 125(2), 276–302.
https://doi.org/10.1037/0033-2909.125.2.276

Análisis exploratorio (EDA)

Datos faltantes

datos %>% summarise_all(~sum(is.na(.)))
## # A tibble: 1 × 15
##    edad  sexo nivel_educativo estado_civil hijos trabaja_jornada_completa
##   <int> <int>           <int>        <int> <int>                    <int>
## 1     0     0               0            0     0                        0
## # ℹ 9 more variables: cargo_alto <int>, ingreso_mensual <int>,
## #   horas_semana_responsabilidades <int>, tiempo_libre_semanal <int>,
## #   autopercibe_vida_simple <int>, usa_tecnologia_fuera_trabajo <int>,
## #   bienestar_subjetivo <int>, bienestar_alto <int>,
## #   bienestar_subjetivo_num <int>

Tabla resumen variables numéricas

datos %>%
  select(where(is.numeric)) %>%
  summary()
##       edad      ingreso_mensual   horas_semana_responsabilidades
##  Min.   :22.0   Min.   : 500000   Min.   :21.00                 
##  1st Qu.:33.0   1st Qu.:1531514   1st Qu.:45.00                 
##  Median :45.0   Median :2090394   Median :52.00                 
##  Mean   :43.6   Mean   :2054758   Mean   :51.33                 
##  3rd Qu.:54.0   3rd Qu.:2537939   3rd Qu.:58.00                 
##  Max.   :64.0   Max.   :4338684   Max.   :80.00                 
##                 NA's   :10        NA's   :10                    
##  tiempo_libre_semanal usa_tecnologia_fuera_trabajo bienestar_subjetivo
##  Min.   : 0.00        Min.   :1.000                Min.   : 0.000     
##  1st Qu.:14.75        1st Qu.:3.000                1st Qu.: 2.950     
##  Median :20.00        Median :3.000                Median : 4.132     
##  Mean   :19.80        Mean   :3.245                Mean   : 4.802     
##  3rd Qu.:25.00        3rd Qu.:4.000                3rd Qu.: 6.526     
##  Max.   :40.00        Max.   :5.000                Max.   :10.000     
##                                                    NA's   :10         
##  bienestar_subjetivo_num
##  Min.   : 0.000         
##  1st Qu.: 2.950         
##  Median : 4.132         
##  Mean   : 4.802         
##  3rd Qu.: 6.526         
##  Max.   :10.000         
##  NA's   :10

Tabla resumen variables categóricas

datos %>%
  select(where(is.character)) %>%
  map(~tabyl(.) %>% adorn_percentages("col") %>% adorn_pct_formatting())
## $sexo
##          .   n percent
##   Femenino 0.5   48.8%
##  Masculino 0.5   51.2%
## 
## $nivel_educativo
##              .   n percent
##       Primaria 0.1    9.2%
##     Secundaria 0.4   37.0%
##        Tecnico 0.3   35.0%
##  Universitario 0.2   18.8%
## 
## $estado_civil
##            .   n percent
##       Casado 0.3   30.0%
##   Divorciado 0.1   10.2%
##      Soltero 0.3   32.2%
##  Union libre 0.2   20.5%
##        Viudo 0.1    7.0%
## 
## $hijos
##   .   n percent
##  No 0.4   36.2%
##  Si 0.6   63.7%
## 
## $trabaja_jornada_completa
##   .   n percent
##  No 0.3   29.0%
##  Si 0.7   71.0%
## 
## $cargo_alto
##   .   n percent
##  No 0.8   79.5%
##  Si 0.2   20.5%
## 
## $autopercibe_vida_simple
##   .   n percent
##  No 0.7   73.5%
##  Si 0.3   26.5%
## 
## $bienestar_alto
##     .   n percent
##  Alto 0.2   17.5%
##  Bajo 0.8   82.5%

Datos atípicos

datos %>%
  select(edad, ingreso_mensual, horas_semana_responsabilidades, tiempo_libre_semanal) %>%
  pivot_longer(everything(), names_to="variable", values_to="valor") %>%
  ggplot(aes(x=variable, y=valor)) +
  geom_boxplot() +
  facet_wrap(~variable, scales="free") +
  theme_minimal()
## Warning: Removed 20 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

Gráficos descriptivos

# Hijos y bienestar
datos %>%
  group_by(hijos) %>%
  summarise(prom_bienestar = mean(bienestar_subjetivo_num, na.rm = TRUE)) %>%
  ggplot(aes(x = hijos, y = prom_bienestar, fill = hijos)) +
  geom_col() +
  labs(title = "Bienestar subjetivo según hijos", y = "Promedio de bienestar") +
  theme_minimal()

# Estado civil
ggplot(datos, aes(x = estado_civil, y = bienestar_subjetivo_num)) +
  geom_boxplot(fill = "lightblue") +
  labs(title = "Bienestar por estado civil", x = "Estado civil", y = "Bienestar") +
  theme_minimal()
## Warning: Removed 10 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

# Tiempo libre
ggplot(datos, aes(x = tiempo_libre_semanal, y = bienestar_subjetivo_num)) +
  geom_point(alpha = 0.4) +
  geom_smooth(method = "lm", se = TRUE, color = "darkgreen") +
  labs(title = "Tiempo libre y bienestar", x = "Horas libres", y = "Bienestar") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 10 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 10 rows containing missing values or values outside the scale range
## (`geom_point()`).

ggplot(datos, aes(x = horas_semana_responsabilidades, y = bienestar_subjetivo_num)) +
  geom_point(alpha = 0.4) +
  geom_smooth(method = "lm", se = TRUE, color = "red") +
  labs(title = "Relación entre responsabilidades semanales y bienestar",
       x = "Horas de responsabilidades", y = "Bienestar subjetivo") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 20 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 20 rows containing missing values or values outside the scale range
## (`geom_point()`).

Gráfico : Histograma de la variable edad

# Histograma de edad
ggplot(datos, aes(x = edad)) +
  geom_histogram(binwidth = 5, fill = "steelblue", color = "black", alpha = 0.7) +
  labs(title = "Distribución de edad en la muestra", x = "Edad", y = "Frecuencia") +
  theme_minimal()

Gráfico : Barras para la variable nivel_educativo

# Barras para nivel educativo
ggplot(datos, aes(x = nivel_educativo)) +
  geom_bar(fill = "coral") +
  labs(title = "Nivel educativo de los participantes", x = "Nivel educativo", y = "Cantidad") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Boxplot de ingreso mensual por estado civil

# Boxplot ingreso mensual por estado civil
ggplot(datos, aes(x = estado_civil, y = ingreso_mensual)) +
  geom_boxplot(fill = "lightgreen") +
  labs(title = "Ingreso mensual según estado civil", x = "Estado civil", y = "Ingreso mensual") +
  theme_minimal()
## Warning: Removed 10 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

Planteamiento de hipótesis

Hipótesis 1: Hijos y bienestar (t-test)

  • H₀: No hay diferencia en el bienestar subjetivo entre personas con y sin hijos.
  • H₁: Sí hay diferencia en el bienestar subjetivo entre personas con y sin hijos.
  • Técnica: t-test para muestras independientes
  • Justificación: Compara dos grupos categóricos sobre una variable continua
t.test(bienestar_subjetivo_num ~ hijos, data = datos)
## 
##  Welch Two Sample t-test
## 
## data:  bienestar_subjetivo_num by hijos
## t = 0.55842, df = 285.98, p-value = 0.577
## alternative hypothesis: true difference in means between group No and group Si is not equal to 0
## 95 percent confidence interval:
##  -0.3564032  0.6387315
## sample estimates:
## mean in group No mean in group Si 
##         4.891961         4.750797
# Interpretación
ifelse(t.test(bienestar_subjetivo_num ~ hijos, data = datos)$p.value < 0.05,
       "El valor p es < 0.05 → se rechaza H₀. Hay diferencia significativa.",
       "El valor p es > 0.05 → no se rechaza H₀. No hay diferencia significativa.")
## [1] "El valor p es > 0.05 → no se rechaza H₀. No hay diferencia significativa."

Hipótesis 2: Estado civil y bienestar (ANOVA)

  • H₀: No hay diferencias de bienestar según estado civil.
  • H₁: Al menos un grupo presenta bienestar distinto.
  • Técnica: ANOVA de un factor
  • Justificación: Compara más de dos grupos sobre una variable continua
anova_estado <- aov(bienestar_subjetivo_num ~ estado_civil, data = datos)
summary(anova_estado)
##               Df Sum Sq Mean Sq F value Pr(>F)
## estado_civil   4   10.9   2.736   0.479  0.751
## Residuals    385 2198.3   5.710               
## 10 observations deleted due to missingness
# Interpretación
ifelse(summary(anova_estado)[[1]]$`Pr(>F)`[1] < 0.05,
       "El valor p < 0.05 → se rechaza H₀. Hay diferencias significativas.",
       "El valor p > 0.05 → no se rechaza H₀. No hay diferencias significativas.")
## [1] "El valor p > 0.05 → no se rechaza H₀. No hay diferencias significativas."

Hipótesis 3: Vida simple y uso de tecnología (Chi-cuadrado)

  • H₀: No hay asociación entre percepción de vida simple y uso de tecnología.
  • H₁: Sí hay asociación entre estas variables.
  • Técnica: Chi-cuadrado
  • Justificación: Ambas variables son categóricas
tabla_chi <- table(datos$autopercibe_vida_simple, datos$usa_tecnologia_fuera_trabajo)
prueba_chi <- chisq.test(tabla_chi)
prueba_chi
## 
##  Pearson's Chi-squared test
## 
## data:  tabla_chi
## X-squared = 1.3841, df = 4, p-value = 0.847
ifelse(prueba_chi$p.value < 0.05,
       "El valor p < 0.05 → se rechaza H₀. Hay asociación significativa.",
       "El valor p > 0.05 → no se rechaza H₀. No hay evidencia de asociación.")
## [1] "El valor p > 0.05 → no se rechaza H₀. No hay evidencia de asociación."

Hipótesis 4: Tiempo libre y bienestar (correlación)

  • H₀: No hay correlación entre tiempo libre y bienestar.
  • H₁: Sí hay correlación entre tiempo libre y bienestar.
  • Técnica: Correlación de Pearson
  • Justificación: Relación entre dos variables numéricas
cor.test(datos$tiempo_libre_semanal, datos$bienestar_subjetivo_num)
## 
##  Pearson's product-moment correlation
## 
## data:  datos$tiempo_libre_semanal and datos$bienestar_subjetivo_num
## t = 4.1599, df = 388, p-value = 3.922e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.1095779 0.2997827
## sample estimates:
##       cor 
## 0.2066317
cor_result <- cor.test(datos$tiempo_libre_semanal, datos$bienestar_subjetivo_num)
ifelse(cor_result$p.value < 0.05,
       "El valor p < 0.05 → se rechaza H₀. Existe correlación significativa.",
       "El valor p > 0.05 → no se rechaza H₀. No hay correlación significativa.")
## [1] "El valor p < 0.05 → se rechaza H₀. Existe correlación significativa."

Resultados

  • Hijos y bienestar (t-test):
    No se encontró una diferencia estadísticamente significativa en el bienestar subjetivo entre personas con y sin hijos (t = 0.558, p = 0.577). Esto indica que, en esta muestra, la presencia de hijos no afecta el nivel de satisfacción con la vida.

  • Estado civil y bienestar (ANOVA):
    No se identificaron diferencias significativas en el bienestar subjetivo según el estado civil (F = 0.479, p = 0.751). Por lo tanto, no hay evidencia suficiente para afirmar que el estado civil influya en la percepción del bienestar en esta población.

  • Vida simple y uso de tecnología (Chi-cuadrado):
    No se encontró asociación significativa entre la percepción de llevar una vida simple y el uso de tecnología fuera del trabajo (χ² = 1.384, df = 4, p = 0.847). Esto sugiere que estas variables no están relacionadas en esta muestra.

  • Tiempo libre y bienestar (Correlación de Pearson):
    Se observó una correlación positiva y significativa entre el tiempo libre semanal y el bienestar subjetivo (r = 0.207, p < 0.001), indicando que un mayor tiempo libre se asocia con un mayor nivel de satisfacción con la vida.

Conclusiones

Este estudio permitió identificar algunos factores personales y de estilo de vida que explican el bienestar subjetivo en la muestra analizada. Los resultados muestran que:

  • El tiempo libre semanal tiene una correlación positiva y significativa con el bienestar subjetivo, indicando que dedicar más tiempo a actividades personales contribuye a una mayor satisfacción con la vida.

  • No se encontraron diferencias significativas en el bienestar subjetivo entre personas con y sin hijos, ni tampoco según el estado civil o la percepción de vida simple y uso de tecnología, lo que sugiere que estos factores no influyen directamente en el bienestar para esta población específica.

Con base en estos hallazgos, se recomienda:

  • Fomentar programas y políticas que promuevan un mejor aprovechamiento del tiempo libre como estrategia para mejorar el bienestar general.

  • Continuar investigando otros factores personales, sociales o ambientales que puedan influir en la percepción subjetiva de bienestar.

Recomendaciones

  • Diseñar campañas que incentiven un estilo de vida que permita un equilibrio adecuado entre responsabilidades y tiempo libre.

  • Evaluar y adaptar intervenciones específicas según características particulares de cada grupo poblacional, ya que factores como el estado civil o tener hijos no mostraron efecto significativo en este estudio.