¿En qué medida los niveles de estrés, la calidad del sueño, la actividad física, el uso de redes sociales y el acceso a terapia y apoyo emocional predicen la satisfacción con la vida y la presencia de ansiedad en adultos colombianos?
Determinar la relación entre los niveles de estrés, calidad del sueño, actividad física, uso de redes sociales, red de apoyo emocional y terapia psicológica con la satisfacción con la vida y la presencia de ansiedad en una muestra de adultos colombianos.
Análisis basado en una base de datos anónima con 100 registros (N=100), recolectados en contexto colombiano.
# Install if not already
install.packages("gt")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.5'
## (as 'lib' is unspecified)
install.packages("readxl")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.5'
## (as 'lib' is unspecified)
# Load libraries
library(readxl)
library(gt)
# Read your Excel file
data <- read_excel("Base_Psicologia_Bienestar.xlsx")
# Create a clean GT table
gt_table <- data %>%
gt() %>%
tab_header(
title = "Base de Psicología y Bienestar",
subtitle = "Vista general de los datos"
) %>%
fmt_number(
decimals = 2
) %>%
opt_table_font(
font = list(google_font("Roboto"))
)
gt_table
| Base de Psicología y Bienestar | ||||||||||
| Vista general de los datos | ||||||||||
| edad | sexo | nivel_educativo | nivel_estres | calidad_sueno | realiza_actividad_fisica | acude_terapia | uso_redes_sociales_diario | satisfaccion_vida | red_apoyo_emocional | ha_sufrido_ansiedad |
|---|---|---|---|---|---|---|---|---|---|---|
| 32.00 | Masculino | Técnico | 3.00 | 6.00 | Sí | No | 2.00 | 4.00 | Media | No |
| 48.00 | Femenino | Postgrado | 4.00 | 6.00 | Sí | No | 0.00 | 7.00 | Alta | Sí |
| 36.00 | Femenino | Técnico | 2.00 | 8.00 | Sí | No | 5.00 | 7.00 | Media | Sí |
| 19.00 | Otro | Técnico | 1.00 | 9.00 | Sí | No | 5.00 | 3.00 | Baja | Sí |
| 30.00 | Femenino | Postgrado | 9.00 | 2.00 | No | Sí | 5.00 | 6.00 | Alta | Sí |
| 44.00 | Femenino | Postgrado | 4.00 | 5.00 | No | Sí | 5.00 | 6.00 | Baja | Sí |
| 53.00 | Masculino | Técnico | 10.00 | 5.00 | No | No | 4.00 | 1.00 | Alta | Sí |
| 38.00 | Femenino | Postgrado | 4.00 | 9.00 | No | No | 5.00 | 10.00 | Media | Sí |
| 45.00 | Masculino | Bachillerato | 4.00 | 6.00 | No | No | 3.00 | 3.00 | Alta | No |
| 35.00 | Otro | Bachillerato | 10.00 | 1.00 | Sí | No | 0.00 | 3.00 | Alta | No |
| 26.00 | Masculino | Bachillerato | 10.00 | 8.00 | No | Sí | 2.00 | 7.00 | Alta | Sí |
| 34.00 | Femenino | Postgrado | 10.00 | 8.00 | Sí | No | 3.00 | 5.00 | Media | No |
| 51.00 | Femenino | Postgrado | 1.00 | 7.00 | Sí | No | 1.00 | 8.00 | Alta | Sí |
| 19.00 | Femenino | Universitario | 4.00 | 5.00 | No | Sí | 1.00 | 3.00 | Alta | Sí |
| 42.00 | Masculino | Bachillerato | 6.00 | 10.00 | Sí | No | 3.00 | 3.00 | Alta | No |
| 33.00 | Femenino | Bachillerato | 5.00 | 10.00 | Sí | No | 0.00 | 4.00 | Alta | No |
| 22.00 | Masculino | Técnico | 2.00 | 5.00 | Sí | No | 2.00 | 2.00 | Alta | Sí |
| 51.00 | Femenino | Bachillerato | 6.00 | 5.00 | Sí | No | 3.00 | 2.00 | Baja | Sí |
| 22.00 | Masculino | Técnico | 9.00 | 8.00 | No | No | 4.00 | 4.00 | Alta | Sí |
| 35.00 | Masculino | Universitario | 9.00 | 10.00 | Sí | Sí | 4.00 | 5.00 | Media | No |
| 21.00 | Masculino | Técnico | 7.00 | 6.00 | No | Sí | 3.00 | 10.00 | Media | Sí |
| 19.00 | Femenino | Postgrado | 6.00 | 8.00 | No | Sí | 3.00 | 2.00 | Alta | Sí |
| 43.00 | Otro | Bachillerato | 3.00 | 10.00 | Sí | Sí | 3.00 | 5.00 | Media | Sí |
| 56.00 | Femenino | Bachillerato | 2.00 | 5.00 | Sí | No | 2.00 | 7.00 | Media | No |
| 47.00 | Femenino | Universitario | 1.00 | 1.00 | No | Sí | 0.00 | 8.00 | Baja | No |
| 23.00 | Masculino | Universitario | 4.00 | 10.00 | Sí | No | 3.00 | 1.00 | Baja | Sí |
| 49.00 | Otro | Postgrado | 10.00 | 1.00 | Sí | No | 5.00 | 5.00 | Alta | Sí |
| 22.00 | Femenino | Postgrado | 3.00 | 6.00 | No | No | 4.00 | 9.00 | Media | No |
| 33.00 | Masculino | Técnico | 7.00 | 2.00 | Sí | No | 5.00 | 10.00 | Alta | No |
| 43.00 | Femenino | Universitario | 1.00 | 10.00 | Sí | No | 5.00 | 3.00 | Baja | Sí |
| 60.00 | Masculino | Técnico | 9.00 | 2.00 | No | No | 3.00 | 3.00 | Media | No |
| 45.00 | Masculino | Bachillerato | 3.00 | 5.00 | Sí | Sí | 1.00 | 6.00 | Alta | Sí |
| 40.00 | Femenino | Bachillerato | 6.00 | 4.00 | Sí | Sí | 4.00 | 10.00 | Media | No |
| 58.00 | Otro | Postgrado | 8.00 | 1.00 | No | No | 1.00 | 9.00 | Media | Sí |
| 55.00 | Masculino | Postgrado | 5.00 | 7.00 | Sí | No | 3.00 | 10.00 | Media | No |
| 38.00 | Femenino | Universitario | 4.00 | 5.00 | No | No | 5.00 | 3.00 | Baja | Sí |
| 26.00 | Femenino | Postgrado | 4.00 | 5.00 | No | No | 4.00 | 10.00 | Baja | Sí |
| 51.00 | Femenino | Técnico | 7.00 | 6.00 | Sí | Sí | 4.00 | 7.00 | Baja | Sí |
| 49.00 | Masculino | Postgrado | 3.00 | 2.00 | Sí | Sí | 4.00 | 7.00 | Media | Sí |
| 22.00 | Femenino | Técnico | 9.00 | 10.00 | No | No | 1.00 | 2.00 | Baja | No |
| 20.00 | Femenino | Universitario | 5.00 | 7.00 | Sí | Sí | 4.00 | 8.00 | Media | No |
| 56.00 | Femenino | Bachillerato | 10.00 | 5.00 | Sí | No | 2.00 | 2.00 | Alta | Sí |
| 59.00 | Masculino | Bachillerato | 8.00 | 7.00 | Sí | No | 4.00 | 8.00 | Baja | Sí |
| 60.00 | Masculino | Técnico | 6.00 | 4.00 | Sí | No | 2.00 | 10.00 | Alta | No |
| 56.00 | Masculino | Técnico | 6.00 | 9.00 | No | No | 1.00 | 3.00 | Baja | No |
| 20.00 | Femenino | Bachillerato | 9.00 | 1.00 | Sí | No | 2.00 | 8.00 | Baja | No |
| 28.00 | Masculino | Universitario | 7.00 | 9.00 | No | No | 1.00 | 6.00 | Media | Sí |
| 43.00 | Femenino | Técnico | 10.00 | 9.00 | Sí | Sí | 3.00 | 9.00 | Media | Sí |
| 51.00 | Masculino | Postgrado | 4.00 | 5.00 | No | No | 5.00 | 9.00 | Baja | No |
| 45.00 | Femenino | Universitario | 9.00 | 7.00 | Sí | No | 2.00 | 9.00 | Alta | No |
| 36.00 | Masculino | Universitario | 1.00 | 8.00 | Sí | Sí | 2.00 | 4.00 | Baja | No |
| 51.00 | Femenino | Técnico | 6.00 | 2.00 | No | Sí | 1.00 | 5.00 | Alta | No |
| 23.00 | Masculino | Universitario | 8.00 | 9.00 | Sí | No | 3.00 | 2.00 | Baja | No |
| 39.00 | Femenino | Universitario | 8.00 | 10.00 | Sí | No | 4.00 | 9.00 | Baja | No |
| 59.00 | Otro | Técnico | 3.00 | 3.00 | No | Sí | 1.00 | 8.00 | Baja | No |
| 50.00 | Masculino | Técnico | 8.00 | 5.00 | No | No | 0.00 | 1.00 | Alta | Sí |
| 27.00 | Masculino | Universitario | 5.00 | 1.00 | No | No | 1.00 | 6.00 | Alta | Sí |
| 58.00 | Masculino | Postgrado | 5.00 | 2.00 | Sí | No | 4.00 | 8.00 | Baja | No |
| 18.00 | Femenino | Postgrado | 4.00 | 7.00 | Sí | No | 4.00 | 5.00 | Baja | No |
| 26.00 | Masculino | Bachillerato | 9.00 | 5.00 | No | Sí | 0.00 | 2.00 | Baja | Sí |
| 22.00 | Femenino | Bachillerato | 4.00 | 9.00 | Sí | No | 5.00 | 4.00 | Alta | No |
| 29.00 | Femenino | Postgrado | 6.00 | 3.00 | No | Sí | 2.00 | 10.00 | Alta | No |
| 20.00 | Masculino | Bachillerato | 3.00 | 1.00 | No | No | 4.00 | 3.00 | Baja | Sí |
| 24.00 | Masculino | Universitario | 3.00 | 5.00 | Sí | No | 0.00 | 2.00 | Baja | Sí |
| 37.00 | Femenino | Técnico | 5.00 | 10.00 | No | Sí | 1.00 | 6.00 | Baja | Sí |
| 50.00 | Femenino | Técnico | 8.00 | 9.00 | Sí | No | 2.00 | 5.00 | Media | No |
| 52.00 | Femenino | Técnico | 8.00 | 9.00 | Sí | No | 4.00 | 2.00 | Baja | Sí |
| 43.00 | Masculino | Postgrado | 1.00 | 6.00 | Sí | No | 5.00 | 7.00 | Alta | No |
| 60.00 | Femenino | Universitario | 8.00 | 6.00 | Sí | No | 1.00 | 4.00 | Alta | Sí |
| 59.00 | Masculino | Bachillerato | 10.00 | 10.00 | Sí | Sí | 0.00 | 9.00 | Media | Sí |
| 19.00 | Femenino | Postgrado | 7.00 | 4.00 | No | Sí | 3.00 | 3.00 | Media | No |
| 22.00 | Otro | Universitario | 10.00 | 7.00 | Sí | No | 0.00 | 5.00 | Baja | No |
| 52.00 | Masculino | Universitario | 3.00 | 2.00 | Sí | Sí | 5.00 | 6.00 | Baja | Sí |
| 45.00 | Masculino | Técnico | 3.00 | 1.00 | Sí | Sí | 1.00 | 8.00 | Media | Sí |
| 21.00 | Masculino | Universitario | 5.00 | 1.00 | Sí | No | 1.00 | 5.00 | Alta | No |
| 58.00 | Femenino | Técnico | 9.00 | 7.00 | Sí | No | 4.00 | 6.00 | Media | No |
| 56.00 | Masculino | Universitario | 3.00 | 1.00 | Sí | No | 0.00 | 9.00 | Baja | Sí |
| 60.00 | Masculino | Bachillerato | 2.00 | 4.00 | No | No | 3.00 | 1.00 | Baja | Sí |
| 43.00 | Femenino | Bachillerato | 1.00 | 1.00 | Sí | No | 2.00 | 3.00 | Alta | No |
| 52.00 | Masculino | Postgrado | 6.00 | 7.00 | No | No | 0.00 | 8.00 | Baja | No |
| 49.00 | Masculino | Bachillerato | 10.00 | 8.00 | No | No | 5.00 | 9.00 | Alta | No |
| 27.00 | Femenino | Postgrado | 1.00 | 9.00 | No | Sí | 3.00 | 5.00 | Baja | No |
| 52.00 | Femenino | Técnico | 1.00 | 1.00 | Sí | No | 1.00 | 6.00 | Media | No |
| 55.00 | Masculino | Bachillerato | 5.00 | 9.00 | Sí | No | 2.00 | 7.00 | Alta | Sí |
| 26.00 | Femenino | Técnico | 10.00 | 10.00 | Sí | No | 2.00 | 6.00 | Media | Sí |
| 33.00 | Masculino | Postgrado | 8.00 | 5.00 | Sí | No | 3.00 | 1.00 | Baja | No |
| 43.00 | Femenino | Bachillerato | 2.00 | 6.00 | No | No | 3.00 | 8.00 | Baja | Sí |
| 57.00 | Femenino | Postgrado | 7.00 | 4.00 | Sí | Sí | 1.00 | 7.00 | Media | No |
| 23.00 | Femenino | Técnico | 8.00 | 2.00 | Sí | Sí | 4.00 | 5.00 | Media | Sí |
| 46.00 | Femenino | Universitario | 1.00 | 8.00 | No | No | 1.00 | 4.00 | Media | Sí |
| 52.00 | Masculino | Técnico | 7.00 | 1.00 | Sí | No | 1.00 | 2.00 | Baja | Sí |
| 29.00 | Masculino | Bachillerato | 9.00 | 4.00 | No | Sí | 2.00 | 8.00 | Baja | Sí |
| 49.00 | Femenino | Bachillerato | 5.00 | 4.00 | No | No | 5.00 | 8.00 | Media | Sí |
| 30.00 | Femenino | Técnico | 4.00 | 5.00 | Sí | No | 0.00 | 10.00 | Baja | No |
| 52.00 | Masculino | Bachillerato | 6.00 | 7.00 | Sí | No | 0.00 | 2.00 | Baja | Sí |
| 45.00 | Masculino | Universitario | 6.00 | 9.00 | No | Sí | 0.00 | 6.00 | Alta | Sí |
| 57.00 | Masculino | Postgrado | 3.00 | 5.00 | No | No | 5.00 | 7.00 | Alta | Sí |
| 55.00 | Masculino | Bachillerato | 3.00 | 4.00 | Sí | No | 1.00 | 9.00 | Baja | No |
| 29.00 | Femenino | Universitario | 4.00 | 5.00 | Sí | No | 5.00 | 8.00 | Alta | Sí |
| 52.00 | Masculino | Universitario | 8.00 | 10.00 | Sí | Sí | 3.00 | 6.00 | Baja | Sí |
library(readxl)
library(ggplot2)
# Cargar tu base
datos <- read_excel("Base_Psicologia_Bienestar.xlsx")
ggplot(datos, aes(x = sexo, fill = sexo)) +
geom_bar() +
labs(title = "Distribución por Sexo", x = "Sexo", y = "Frecuencia") +
theme(legend.position = "none")
ggplot(datos, aes(x = edad)) +
geom_histogram(binwidth = 5, fill = "skyblue", color = "black") +
labs(title = "Distribución de la Edad", x = "Edad", y = "Frecuencia")
ggplot(datos, aes(x = uso_redes_sociales_diario)) +
geom_histogram(binwidth = 1, fill = "coral", color = "black") +
labs(title = "Uso diario de redes sociales", x = "Horas al día", y = "Frecuencia")
ggplot(datos, aes(x = nivel_educativo, fill = nivel_educativo)) +
geom_bar() +
labs(title = "Nivel educativo de los participantes", x = "Nivel educativo", y = "Frecuencia") +
theme(axis.text.x = element_text(angle = 45, hjust = 1), legend.position = "none")
ggplot(datos, aes(x = sexo, y = nivel_estres, fill = sexo)) +
geom_boxplot() +
labs(title = "Nivel de estrés según el sexo", x = "Sexo", y = "Nivel de estrés") +
theme(legend.position = "none")
📊 Análisis del Nivel de Estrés por Sexo Este gráfico compara la distribución del nivel de estrés para tres categorías de sexo: Femenino, Masculino y Otro.
Rango Intercuartílico (Altura de la caja): La mayoría de las personas (el 50% central) tiene un nivel de estrés que va desde aproximadamente 4.0 (Q1) hasta 8.0 (Q3). El rango es relativamente amplio.
Rango Total (Bigotes): El nivel mínimo observado está alrededor de 1.0 y el nivel máximo es de 10.0.
Rango Intercuartílico (Altura de la caja): El 50% central de los hombres tiene un nivel de estrés que va desde aproximadamente 3.0 (Q1) hasta 8.0 (Q3). Esto sugiere una mayor dispersión en los niveles más bajos de estrés en comparación con la categoría Femenino.
Rango Total (Bigotes): El nivel mínimo observado está alrededor de 1.0 y el nivel máximo es de 10.0.
Rango Intercuartílico (Altura de la caja): El 50% central de las personas en esta categoría tiene un nivel de estrés que va desde aproximadamente 3.0 (Q1) hasta 10.0 (Q3). La caja es la más ancha, indicando la mayor dispersión en los datos entre las tres categorías.
Rango Total (Bigotes): El nivel mínimo observado está alrededor de 3.0 y el nivel máximo es de 10.0. El valor mínimo es notablemente más alto que en las otras dos categorías.
💡 Conclusiones Clave Mediana del Estrés: La categoría “Otro” tiene el nivel de estrés mediano más alto (8.0), seguida por “Masculino” (6.0) y, finalmente, “Femenino” (5.0).
Dispersión: La categoría “Otro” muestra la mayor variabilidad en el nivel de estrés dentro del 50% central (el rango intercuartílico de 3.0 a 10.0).
Extremos Superiores: Las tres categorías tienen un nivel máximo de estrés de 10.0.
Extremos Inferiores: La categoría “Otro” tiene el nivel de estrés mínimo más alto (3.0), mientras que “Femenino” y “Masculino” tienen niveles mínimos de alrededor de 1.0.
A continuación se presentan cinco pruebas de hipótesis orientadas a analizar factores asociados al bienestar psicológico.
Hipótesis nula (H₀): No existe relación entre el
sexo y haber sufrido ansiedad.
Hipótesis alternativa (H₁): Existe una relación
significativa entre el sexo y haber sufrido ansiedad.
Técnica: Prueba Chi-cuadrado de independencia.
Justificación: Ambas variables (sexo y
ha_sufrido_ansiedad) son categóricas, por lo que la prueba
Chi-cuadrado permite determinar si existe una asociación
estadísticamente significativa entre ellas.
# Verificar los valores únicos para evitar errores
table(datos$sexo)
##
## Femenino Masculino Otro
## 47 46 7
table(datos$ha_sufrido_ansiedad)
##
## No Sí
## 45 55
# Crear tabla de contingencia
tabla_ansiedad_sexo <- table(datos$sexo, datos$ha_sufrido_ansiedad)
tabla_ansiedad_sexo
##
## No Sí
## Femenino 23 24
## Masculino 19 27
## Otro 3 4
# Aplicar prueba Chi-cuadrado
chisq_ansiedad_sexo <- chisq.test(tabla_ansiedad_sexo)
## Warning in chisq.test(tabla_ansiedad_sexo): Chi-squared approximation may be
## incorrect
chisq_ansiedad_sexo
##
## Pearson's Chi-squared test
##
## data: tabla_ansiedad_sexo
## X-squared = 0.56105, df = 2, p-value = 0.7554
Resultado estadístico: El valor del estadístico Chi-cuadrado (X²) y su valor p (p-value) aparecen en el resultado anterior.
Interpretación:
Si p < 0.05, se rechaza la hipótesis nula, indicando que existe una relación significativa entre el sexo y haber sufrido ansiedad.
Si p > 0.05, no se rechaza la hipótesis nula, lo que sugiere que el sexo no influye significativamente en la probabilidad de haber sufrido ansiedad.
En otras palabras, esta prueba permite evaluar si las diferencias observadas en las proporciones de ansiedad entre hombres y mujeres son estadísticamente relevantes o solo producto del azar.
El test arrojó X^2 = 0.56 y p = 0.755, por lo que no existe una asociación significativa entre el sexo y haber sufrido ansiedad. Las diferencias entre grupos parecen explicarse por el azar, y el grupo “Otro” es muy pequeño para detectar efectos claros.
# Preparación
datos$acude_terapia <- as.factor(datos$acude_terapia) # sí/no o 1/0
datos$satisfaccion_vida <- as.numeric(datos$satisfaccion_vida)
# Revisar conteos por grupo
table(datos$acude_terapia)
##
## No Sí
## 69 31
# Comprobar normalidad rápida por grupo (Shapiro) - opcional
by(datos$satisfaccion_vida, datos$acude_terapia, function(x) if(sum(!is.na(x))>=3) shapiro.test(x)$p.value else NA)
## datos$acude_terapia: No
## [1] 0.0003763074
## ------------------------------------------------------------
## datos$acude_terapia: Sí
## [1] 0.2508497
# T-test (Welch)
t_res_terapia <- t.test(satisfaccion_vida ~ acude_terapia, data = datos)
t_res_terapia
##
## Welch Two Sample t-test
##
## data: satisfaccion_vida by acude_terapia
## t = -1.7446, df = 75.055, p-value = 0.08515
## alternative hypothesis: true difference in means between group No and group Sí is not equal to 0
## 95 percent confidence interval:
## -1.9706419 0.1305297
## sample estimates:
## mean in group No mean in group Sí
## 5.434783 6.354839
# Extraer estadístico y p-value para reportar
t_stat <- t_res_terapia$statistic
p_val <- t_res_terapia$p.value
cat("t =", round(t_stat,3), ", p =", signif(p_val,4), "\n")
## t = -1.745 , p = 0.08515
Interpretación:
Si p < 0.05 → rechazamos H₀: la satisfacción media difiere entre quienes acuden a terapia y quienes no.
Si p ≥ 0.05 → no hay evidencia de diferencia en medias. Mira también la dirección de la diferencia en las medias (t_res_terapia$estimate).
La satisfacción media fue mayor en quienes van a terapia (6.35 vs 5.43), pero la prueba t (p = 0.085) mostró que la diferencia no es estadísticamente significativa. Hay una tendencia, pero no suficiente evidencia al 5%.
H₀: Las medias de nivel_estres son iguales en todos los niveles educativos. H₁: Al menos un grupo difiere.
Técnica: ANOVA de una vía + Tukey HSD si es significativo. Justificación: Comparar medias de una variable numérica entre 3+ grupos (nivel educativo).
# Preparación
datos$nivel_educativo <- as.factor(datos$nivel_educativo)
datos$nivel_estres <- as.numeric(datos$nivel_estres)
# Revisar tamaños por grupo
table(datos$nivel_educativo)
##
## Bachillerato Postgrado Técnico Universitario
## 26 24 27 23
# ANOVA clásico
anova_educ <- aov(nivel_estres ~ nivel_educativo, data = datos)
summary(anova_educ)
## Df Sum Sq Mean Sq F value Pr(>F)
## nivel_educativo 3 23.0 7.678 0.939 0.425
## Residuals 96 785.2 8.179
# Si p < 0.05, Tukey HSD
if(summary(anova_educ)[[1]]$`Pr(>F)`[1] < 0.05){
tukey_educ <- TukeyHSD(anova_educ)
print(tukey_educ)
} else {
cat("ANOVA no significativo: no se ejecuta Tukey.\n")
}
## ANOVA no significativo: no se ejecuta Tukey.
# Visualización
library(ggplot2)
ggplot(datos, aes(x = nivel_educativo, y = nivel_estres, fill = nivel_educativo)) +
geom_boxplot() +
labs(title = "Nivel de estrés por nivel educativo", x = "Nivel educativo", y = "Nivel de estrés") +
theme(axis.text.x = element_text(angle = 35, hjust = 1), legend.position = "none")
Interpretación:
ANOVA → mira el F y p. Si p < 0.05, hay diferencias; el test Tukey te dirá qué pares difieren (p adj < 0.05).
Si los supuestos no se cumplen (normalidad/homocedasticidad muy rotos), considerar Kruskal-Wallis (no paramétrica).
El ANOVA obtuvo p = 0.425, indicando que no hay diferencias significativas en el nivel de estrés entre los cuatro niveles educativos. Las variaciones observadas entre grupos no son estadísticamente confiables.
H₀: Ninguno de los predictores afecta la probabilidad de acudir a terapia H₁: Al menos uno de ellos sí influye significativamente
# --- Preparación de variables ---
if(!is.numeric(datos$acude_terapia)){
datos$acude_terapia <- as.factor(datos$acude_terapia)
if(all(levels(datos$acude_terapia) %in% c("no","si","No","Si","NO","SI","Sí","sí"))){
datos$acude_terapia_num <- ifelse(tolower(as.character(datos$acude_terapia)) %in% c("si","sí"), 1, 0)
} else {
datos$acude_terapia_num <- as.numeric(as.character(datos$acude_terapia))
}
} else {
datos$acude_terapia_num <- datos$acude_terapia
}
# Convertir predictores
datos$nivel_estres <- as.numeric(datos$nivel_estres)
datos$uso_redes_sociales_diario <- as.numeric(datos$uso_redes_sociales_diario)
datos$realiza_actividad_fisica <- as.factor(datos$realiza_actividad_fisica)
# Verificar niveles
print(unique(datos$realiza_actividad_fisica))
## [1] Sí No
## Levels: No Sí
# Ajustar modelo logístico
mod_terapia <- glm(acude_terapia_num ~ nivel_estres + uso_redes_sociales_diario + realiza_actividad_fisica,
data = datos, family = binomial(link = "logit"))
summary(mod_terapia)
##
## Call:
## glm(formula = acude_terapia_num ~ nivel_estres + uso_redes_sociales_diario +
## realiza_actividad_fisica, family = binomial(link = "logit"),
## data = datos)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.35728 0.65007 -0.550 0.5826
## nivel_estres 0.03153 0.07798 0.404 0.6859
## uso_redes_sociales_diario -0.07210 0.13094 -0.551 0.5819
## realiza_actividad_fisicaSí -0.76061 0.44213 -1.720 0.0854 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 123.82 on 99 degrees of freedom
## Residual deviance: 120.36 on 96 degrees of freedom
## AIC: 128.36
##
## Number of Fisher Scoring iterations: 4
# Calcular odds ratios (OR) y intervalos de confianza
coef_est <- coef(mod_terapia)
or <- exp(coef_est)
ci <- tryCatch(exp(confint(mod_terapia)), error = function(e) NA)
## Waiting for profiling to be done...
if(!is.na(ci)[1]){
result_table <- data.frame(
Predictor = names(coef_est),
Estimate = round(coef_est, 3),
OR = round(or, 3),
CI_lower = round(ci[,1], 3),
CI_upper = round(ci[,2], 3),
p_value = round(summary(mod_terapia)$coefficients[,4], 4)
)
} else {
result_table <- data.frame(
Predictor = names(coef_est),
Estimate = round(coef_est, 3),
OR = round(or, 3),
p_value = round(summary(mod_terapia)$coefficients[,4], 4)
)
}
print(result_table)
## Predictor Estimate OR CI_lower
## (Intercept) (Intercept) -0.357 0.700 0.190
## nivel_estres nivel_estres 0.032 1.032 0.885
## uso_redes_sociales_diario uso_redes_sociales_diario -0.072 0.930 0.717
## realiza_actividad_fisicaSí realiza_actividad_fisicaSí -0.761 0.467 0.194
## CI_upper p_value
## (Intercept) 2.490 0.5826
## nivel_estres 1.205 0.6859
## uso_redes_sociales_diario 1.203 0.5819
## realiza_actividad_fisicaSí 1.110 0.0854
# --- Interpretación automática ---
cat("\n### Interpretación automática\n")
##
## ### Interpretación automática
for(i in 2:nrow(result_table)){
pval <- result_table$p_value[i]
or_val <- result_table$OR[i]
varname <- result_table$Predictor[i]
if(pval < 0.05){
cat(varname, "→ efecto significativo (p =", pval, "), OR =", or_val,
ifelse(or_val > 1, "(mayor probabilidad de acudir a terapia)\n", "(menor probabilidad de acudir a terapia)\n"))
} else {
cat(varname, "→ no significativo (p =", pval, ")\n")
}
}
## nivel_estres → no significativo (p = 0.6859 )
## uso_redes_sociales_diario → no significativo (p = 0.5819 )
## realiza_actividad_fisicaSí → no significativo (p = 0.0854 )
Interpretación: Si nivel_estres tiene un OR > 1 y p < 0.05, significa que el estrés alto aumenta la probabilidad de acudir a terapia.
Si realiza_actividad_fisica (sí) tiene un OR < 1, podría interpretarse como un factor protector.
Si uso_redes_sociales_diario muestra significancia, indicaría una relación directa o inversa según su dirección.
Ninguno de los predictores (estrés, uso de redes, actividad física) fue significativo al 5%. La actividad física mostró una leve tendencia (p = 0.085), pero en general el modelo no identifica factores que predigan acudir a terapia.
El grupo muestra un patrón de agotamiento emocional generalizado. Los factores que más favorecen el bienestar son la práctica de actividad física, el descanso adecuado y contar con una red de apoyo emocional. La gestión preventiva del estrés y un uso más equilibrado de las redes sociales son aspectos clave para mejorar la salud mental y la calidad de vida.