Título del trabajo: Actividad física, estrés y apoyo emocional: factores del bienestar psicológico bajo la lupa de la inferencia estadística
Curso: Estadística Inferencial
Actividad: Taller #1 - Análisis Exploratorio de Datos
Integrante(s): María Álvarez, Emily Castro, Paula De La Hoz
Profesor(a): Keyla Vanessa Alba Molina
Universidad del Norte, Barranquilla, Colombia
Fecha de entrega: 26 de August de 2026
El bienestar psicológico depende de múltiples factores biológicos, sociales y conductuales, entre ellos el estrés, la calidad del sueño, la actividad física y el apoyo emocional percibido. Este trabajo presenta un análisis exploratorio de datos (EDA) realizado sobre una base de 100 personas encuestadas, que incluye variables sociodemográficas (edad, sexo, nivel educativo) y variables psicológicas y conductuales (nivel de estrés, calidad del sueño, actividad física, asistencia a terapia, uso de redes sociales, satisfacción con la vida, red de apoyo emocional y antecedentes de ansiedad). La pregunta que guía el estudio es si existe relación entre el estrés, la calidad del sueño, la actividad física y el apoyo emocional con la satisfacción con la vida y la presencia de ansiedad. Se aplicaron medidas de tendencia central, dispersión y posición, tablas de frecuencia, gráficos (histogramas, boxplots, diagramas de dispersión) y un análisis de valores atípicos y datos faltantes, utilizando el software R y el entorno RStudio con documentos R Markdown. Los resultados muestran niveles moderados de estrés y satisfacción con la vida, variabilidad relevante en calidad del sueño, y patrones visuales que sugieren una posible asociación entre la red de apoyo emocional, la actividad física y el bienestar psicológico. Se concluye que existen indicios exploratorios suficientes para justificar un análisis inferencial formal (pruebas de hipótesis, correlaciones e intervalos de confianza) en una etapa posterior del curso.
Bienestar psicológico, estrés, ansiedad, análisis exploratorio de datos, apoyo emocional.
El bienestar psicológico es un constructo multidimensional influenciado por factores biológicos, sociales y conductuales como la calidad del sueño, el nivel de estrés percibido, la actividad física, el uso de redes sociales y el apoyo emocional percibido. Comprender cómo se relacionan estas variables con la satisfacción con la vida y la presencia de síntomas de ansiedad es de gran interés tanto para la psicología clínica como para la gestión del talento humano y la ciencia de datos aplicada a la salud mental.
En un contexto donde los trastornos relacionados con el estrés y la ansiedad han aumentado de forma sostenida, identificar los factores conductuales asociados al bienestar (como la actividad física regular y una red de apoyo emocional sólida) permite orientar intervenciones preventivas en el ámbito clínico, organizacional y educativo. Desde la ciencia de datos, este tipo de análisis además sienta las bases para construir modelos predictivos de riesgo psicológico a partir de variables conductuales fácilmente medibles.
La literatura en psicología de la salud ha documentado consistentemente la relación entre estilo de vida y bienestar subjetivo:
¿Existe una relación significativa entre el nivel de estrés, la calidad del sueño, la actividad física y la red de apoyo emocional con la satisfacción con la vida y la presencia de ansiedad en los participantes encuestados?
Realizar un análisis exploratorio de datos (EDA) sobre la base
Base_Psicologia_Bienestar.xlsx, describiendo la
distribución de las variables sociodemográficas, psicológicas y
conductuales de los participantes, con el fin de identificar patrones,
posibles relaciones y preparar el terreno para un análisis inferencial
posterior (pruebas de hipótesis, correlaciones, comparación de medias,
entre otras).
Para interpretar correctamente los resultados de este trabajo es necesario comprender algunos conceptos estadísticos básicos:
Análisis Exploratorio de Datos (EDA): conjunto de técnicas descriptivas y gráficas que permiten conocer la estructura, calidad y comportamiento de un conjunto de datos antes de aplicar modelos o pruebas inferenciales más complejas. Su objetivo es “dejar hablar a los datos” sin imponer supuestos previos.
Variables cualitativas y cuantitativas: las variables cualitativas (o categóricas) representan cualidades o categorías, por ejemplo el sexo o el nivel educativo. Las variables cuantitativas representan cantidades numéricas, como la edad o el nivel de estrés, y pueden ser discretas (valores enteros contables) o continuas.
Medidas de tendencia central: resumen el valor “típico” de una variable.
\[\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i \qquad \text{(media)}\]
La mediana es el valor que divide a los datos ordenados en dos mitades iguales, y la moda es el valor que ocurre con mayor frecuencia.
Medidas de dispersión: indican qué tan dispersos o concentrados están los datos alrededor de la media.
\[s^2 = \frac{\sum_{i=1}^{n}(x_i - \bar{x})^2}{n-1} \qquad \text{(varianza muestral)}\]
\[s = \sqrt{s^2} \qquad \text{(desviación estándar)}\]
\[CV = \frac{s}{\bar{x}} \times 100\% \qquad \text{(coeficiente de variación)}\]
El rango es la diferencia entre el valor máximo y el mínimo de la variable.
Cuartiles y resumen de cinco números: los cuartiles (\(Q_1\), \(Q_2\), \(Q_3\)) dividen los datos ordenados en cuatro partes iguales. El resumen de cinco números (mínimo, \(Q_1\), mediana, \(Q_3\), máximo) junto con el rango intercuartílico permiten describir la posición y dispersión de una variable sin verse afectados fuertemente por valores extremos.
Valores atípicos (outliers): observaciones que se alejan de forma inusual del resto de los datos. Se detectan comúnmente mediante el rango intercuartílico:
\[RI = Q_3 - Q_1\]
\[L_i = Q_1 - 1.5 \times RI \qquad \text{(límite inferior)}\]
\[L_s = Q_3 + 1.5 \times RI \qquad \text{(límite superior)}\]
Todo valor por debajo de \(L_i\) o por encima de \(L_s\) se considera un posible valor atípico y debe analizarse con criterio antes de eliminarlo.
Tablas de frecuencia: organizan los datos categóricos mostrando el número de observaciones (frecuencia absoluta) y el porcentaje (frecuencia relativa) que corresponde a cada categoría.
Gráficos estadísticos: el histograma muestra la forma de la distribución de una variable cuantitativa; el boxplot (diagrama de caja y bigotes) resume la posición, dispersión y valores atípicos de una variable; el gráfico de barras representa frecuencias de variables categóricas; y el diagrama de dispersión permite observar la relación entre dos variables cuantitativas.
Origen de los datos: la información proviene de la
base Base_Psicologia_Bienestar.xlsx, una encuesta simulada
con fines académicos que recoge información sociodemográfica,
psicológica y conductual de un grupo de personas.
Población y muestra: la muestra está conformada por 100 participantes adultos, con edades comprendidas entre 18 y 60 años.
Número de observaciones: 100 filas (una por participante).
Variables analizadas y su naturaleza:
| Variable | Tipo | Descripción |
|---|---|---|
| edad | Cuantitativa discreta | Edad del participante en años |
| sexo | Cualitativa nominal | Sexo del participante |
| nivel_educativo | Cualitativa ordinal | Nivel educativo alcanzado |
| nivel_estres | Cuantitativa discreta | Nivel de estrés autopercibido (1-10) |
| calidad_sueno | Cuantitativa discreta | Calidad de sueño autopercibida (1-10) |
| realiza_actividad_fisica | Cualitativa nominal | Si practica actividad física (Sí/No) |
| acude_terapia | Cualitativa nominal | Si asiste a terapia psicológica (Sí/No) |
| uso_redes_sociales_diario | Cuantitativa continua | Horas diarias en redes sociales |
| satisfaccion_vida | Cuantitativa discreta | Satisfacción con la vida (1-10) |
| red_apoyo_emocional | Cualitativa ordinal | Nivel de apoyo emocional percibido |
| ha_sufrido_ansiedad | Cualitativa nominal | Antecedentes de ansiedad (Sí/No) |
Procedimientos estadísticos utilizados: estadística descriptiva (medidas de tendencia central, dispersión y posición), tablas de frecuencia, identificación de valores faltantes y valores atípicos, y visualización gráfica (histogramas, boxplots, gráficos de barras, diagramas de dispersión y matriz de correlación).
Software empleado: R (versión 4.x) y RStudio,
mediante documentos R Markdown, con los paquetes readxl,
dplyr, ggplot2, psych,
skimr, janitor, gtsummary,
corrplot y scales.
Procesamiento realizado sobre los datos: se importó la base desde Excel, se verificó la ausencia de valores faltantes, se convirtieron las variables de texto relevantes en factores (variables categóricas ordenadas) y se generaron estadísticos y gráficos exploratorios para cada tipo de variable.
# Si no tienes instalados estos paquetes, ejecuta una sola vez (sin el #):
# install.packages(c("readxl", "dplyr", "ggplot2", "DT", "psych", "skimr",
# "corrplot", "janitor", "gtsummary", "scales", "moments"))
library(readxl) # Para leer archivos .xlsx
library(dplyr) # Manipulación de datos
library(ggplot2) # Gráficos
library(DT) # Tablas interactivas
library(psych) # Estadísticos descriptivos completos
library(skimr) # Resumen exploratorio rápido
library(janitor) # Tablas cruzadas con formato limpio (tabyl)
library(gtsummary) # Tablas resumen tipo publicación científica
library(scales) # Formato de porcentajes en gráficos
library(corrplot) # Matriz de correlación gráfica
library(moments) # Moda y medidas adicionales
# IMPORTANTE: coloca el archivo .xlsx en la misma carpeta que este .Rmd,
# o cambia la ruta según donde lo hayas guardado.
datos <- read_excel("Base_Psicologia_Bienestar.xlsx", sheet = "Sheet1")
# Ver las primeras filas para confirmar que cargó bien
head(datos)
# Convertimos las variables de texto en factores para que R las trate
# correctamente como variables categóricas (con sus niveles/categorías)
datos <- datos %>%
mutate(
sexo = factor(sexo),
nivel_educativo = factor(nivel_educativo,
levels = c("Bachillerato", "Técnico",
"Universitario", "Postgrado")),
realiza_actividad_fisica = factor(realiza_actividad_fisica,
levels = c("No", "Sí")),
acude_terapia = factor(acude_terapia, levels = c("No", "Sí")),
red_apoyo_emocional = factor(red_apoyo_emocional,
levels = c("Baja", "Media", "Alta")),
ha_sufrido_ansiedad = factor(ha_sufrido_ansiedad, levels = c("No", "Sí"))
)
# Número de filas (observaciones) y columnas (variables)
dim(datos)
## [1] 100 11
# Nombres de las variables
names(datos)
## [1] "edad" "sexo"
## [3] "nivel_educativo" "nivel_estres"
## [5] "calidad_sueno" "realiza_actividad_fisica"
## [7] "acude_terapia" "uso_redes_sociales_diario"
## [9] "satisfaccion_vida" "red_apoyo_emocional"
## [11] "ha_sufrido_ansiedad"
# Tipo de dato de cada variable
str(datos)
## tibble [100 × 11] (S3: tbl_df/tbl/data.frame)
## $ edad : num [1:100] 32 48 36 19 30 44 53 38 45 35 ...
## $ sexo : Factor w/ 3 levels "Femenino","Masculino",..: 2 1 1 3 1 1 2 1 2 3 ...
## $ nivel_educativo : Factor w/ 4 levels "Bachillerato",..: 2 4 2 2 4 4 2 4 1 1 ...
## $ nivel_estres : num [1:100] 3 4 2 1 9 4 10 4 4 10 ...
## $ calidad_sueno : num [1:100] 6 6 8 9 2 5 5 9 6 1 ...
## $ realiza_actividad_fisica : Factor w/ 2 levels "No","Sí": 2 2 2 2 1 1 1 1 1 2 ...
## $ acude_terapia : Factor w/ 2 levels "No","Sí": 1 1 1 1 2 2 1 1 1 1 ...
## $ uso_redes_sociales_diario: num [1:100] 2 0 5 5 5 5 4 5 3 0 ...
## $ satisfaccion_vida : num [1:100] 4 7 7 3 6 6 1 10 3 3 ...
## $ red_apoyo_emocional : Factor w/ 3 levels "Baja","Media",..: 2 3 2 1 3 1 3 2 3 3 ...
## $ ha_sufrido_ansiedad : Factor w/ 2 levels "No","Sí": 1 2 2 2 2 2 2 2 1 1 ...
La base contiene 100 observaciones (participantes) y 11 variables. De estas, 5 son numéricas (cuantitativas) y 6 son categóricas (cualitativas), ya convertidas a tipo factor en el paso anterior. Esta distinción es clave porque determina qué tipo de estadísticos y gráficos son apropiados para cada variable.
# Contamos valores faltantes (NA) por columna
colSums(is.na(datos))
## edad sexo nivel_educativo
## 0 0 0
## nivel_estres calidad_sueno realiza_actividad_fisica
## 0 0 0
## acude_terapia uso_redes_sociales_diario satisfaccion_vida
## 0 0 0
## red_apoyo_emocional ha_sufrido_ansiedad
## 0 0
Comentario: la tabla anterior muestra el número de valores ausentes (NA) por cada variable. En este conjunto de datos no se detectan valores faltantes en ninguna de las 11 variables, por lo que no es necesario aplicar ninguna técnica de imputación ni eliminación de filas. Esta ausencia de datos faltantes permite trabajar con el 100% de la muestra (100 participantes) en todos los análisis siguientes, sin necesidad de justificar decisiones adicionales sobre datos incompletos.
Se seleccionan las variables numéricas de interés para el estudio: edad, nivel de estrés, calidad del sueño, uso diario de redes sociales y satisfacción con la vida.
variables_numericas <- datos %>%
select(edad, nivel_estres, calidad_sueno,
uso_redes_sociales_diario, satisfaccion_vida)
# Función para calcular la moda (R no la trae incluida por defecto)
moda <- function(x) {
ux <- unique(x)
ux[which.max(tabulate(match(x, ux)))]
}
resumen_tendencia <- data.frame(
Variable = names(variables_numericas),
Media = sapply(variables_numericas, mean, na.rm = TRUE),
Mediana = sapply(variables_numericas, median, na.rm = TRUE),
Moda = sapply(variables_numericas, moda),
Desv_Estandar = sapply(variables_numericas, sd, na.rm = TRUE),
Varianza = sapply(variables_numericas, var, na.rm = TRUE),
Rango = sapply(variables_numericas, function(x) diff(range(x, na.rm = TRUE))),
CoefVariacion_pct = sapply(variables_numericas, function(x) round(100*sd(x)/mean(x), 1))
)
rownames(resumen_tendencia) <- NULL
datatable(resumen_tendencia, caption = "Tabla 1. Medidas de tendencia central y dispersión") %>%
formatRound(columns = c("Media","Mediana","Desv_Estandar","Varianza","Rango"), digits = 2)
Interpretación (Tabla 1): en promedio, los participantes tienen 40.2 años, un nivel de estrés medio de 5.6 sobre 10 y una satisfacción con la vida de 5.7 sobre 10. El coeficiente de variación de la edad es el más alto del grupo, lo que indica mayor heterogeneidad relativa en esta variable comparada con las escalas de estrés, sueño y satisfacción, que al estar acotadas entre 1 y 10 muestran una dispersión relativa menor.
resumen_posicion <- sapply(variables_numericas, function(x) {
q <- quantile(x, probs = c(0, 0.25, 0.5, 0.75, 1))
c(Minimo = q[1], Q1 = q[2], Mediana = q[3], Q3 = q[4], Maximo = q[5])
})
resumen_posicion <- round(t(resumen_posicion), 2)
datatable(as.data.frame(resumen_posicion),
caption = "Tabla 2. Resumen de cinco números por variable")
Interpretación (Tabla 2): el resumen de cinco números confirma que las variables tipo escala (estrés, sueño, satisfacción) se distribuyen a lo largo de casi todo su rango posible (1 a 10), mientras que la edad se concentra principalmente en la adultez temprana y media, sin alcanzar los extremos del rango permitido (18-60).
Interpretación (Figuras 1 y 2): la satisfacción con la vida (Figura 1) muestra una distribución relativamente simétrica, concentrada en valores medios-altos, mientras que el nivel de estrés (Figura 2) presenta mayor dispersión, con una proporción considerable de participantes en niveles medios y altos de estrés. Esto sugiere heterogeneidad en el bienestar psicológico del grupo estudiado.
tabla_sexo <- datos %>%
count(sexo) %>%
mutate(Frec_relativa = round(n/sum(n), 3),
Porcentaje = paste0(round(100*n/sum(n),1), "%"))
tabla_educ <- datos %>%
count(nivel_educativo) %>%
mutate(Frec_relativa = round(n/sum(n), 3),
Porcentaje = paste0(round(100*n/sum(n),1), "%"))
tabla_ansiedad <- datos %>%
count(ha_sufrido_ansiedad) %>%
mutate(Frec_relativa = round(n/sum(n), 3),
Porcentaje = paste0(round(100*n/sum(n),1), "%"))
tabla_apoyo <- datos %>%
count(red_apoyo_emocional) %>%
mutate(Frec_relativa = round(n/sum(n), 3),
Porcentaje = paste0(round(100*n/sum(n),1), "%"))
datatable(tabla_sexo, caption = "Tabla 3. Frecuencia absoluta y relativa por sexo")
datatable(tabla_educ, caption = "Tabla 4. Frecuencia absoluta y relativa por nivel educativo")
datatable(tabla_ansiedad, caption = "Tabla 5. Frecuencia absoluta y relativa de antecedentes de ansiedad")
datatable(tabla_apoyo, caption = "Tabla 6. Frecuencia absoluta y relativa de la red de apoyo emocional")
Interpretación (Tablas 3 a 6): estas tablas muestran cuántas personas (frecuencia absoluta) y qué porcentaje (frecuencia relativa) corresponde a cada categoría. Por ejemplo, permiten identificar si predomina algún sexo, qué proporción de participantes tiene antecedentes de ansiedad, y cómo se distribuye la muestra según su red de apoyo emocional (Baja, Media, Alta).
Interpretación (Figuras 3 y 4): la Figura 3 evidencia cómo se reparte la muestra según el nivel de apoyo emocional percibido, mientras que la Figura 4 muestra la proporción de participantes con y sin antecedentes de ansiedad, información clave para contextualizar los análisis posteriores de comparación de grupos.
Para identificar posibles valores atípicos se aplica la regla del rango intercuartílico (\(RI = Q_3 - Q_1\)), calculando los límites inferior y superior:
\[L_i = Q_1 - 1.5 \times RI \qquad L_s = Q_3 + 1.5 \times RI\]
detectar_outliers <- function(x, nombre) {
q1 <- quantile(x, 0.25); q3 <- quantile(x, 0.75)
ri <- q3 - q1
li <- q1 - 1.5*ri; ls <- q3 + 1.5*ri
n_atipicos <- sum(x < li | x > ls)
data.frame(Variable = nombre, Q1 = round(q1,2), Q3 = round(q3,2),
RI = round(ri,2), Limite_inf = round(li,2),
Limite_sup = round(ls,2), N_atipicos = n_atipicos)
}
tabla_outliers <- do.call(rbind, lapply(names(variables_numericas), function(v) {
detectar_outliers(variables_numericas[[v]], v)
}))
rownames(tabla_outliers) <- NULL
datatable(tabla_outliers, caption = "Tabla 7. Límites y número de valores atípicos por variable")
Interpretación (Tabla 7 y Figura 5): según la regla del rango intercuartílico, 0 observaciones en total se ubican fuera de los límites esperados en el conjunto de variables numéricas analizadas. Es importante resaltar que un valor atípico no debe eliminarse automáticamente: antes de tomar cualquier decisión, debe evaluarse si corresponde a un error de digitación/captura o si, por el contrario, refleja una observación válida (por ejemplo, una persona con un nivel de estrés genuinamente muy alto). En este análisis, dado que las variables están acotadas por diseño (escalas de 1 a 10) o representan edades plausibles, se recomienda conservar estas observaciones, ya que aportan variabilidad real y no evidencian errores de registro.
Discusión: la matriz de correlación permite identificar qué pares de variables numéricas muestran una asociación lineal más fuerte (valores cercanos a 1 o -1) y cuáles muestran poca o ninguna relación (valores cercanos a 0). Se observa una asociación visualmente relevante entre la calidad del sueño y la satisfacción con la vida, lo cual es consistente con la literatura revisada en el marco teórico. Estos hallazgos exploratorios orientarán las pruebas de hipótesis o modelos de regresión que se plantearán en etapas posteriores del curso.
Discusión: el gráfico permite observar que las personas que reportan antecedentes de ansiedad tienden a mostrar una mediana de satisfacción con la vida más baja que quienes no reportan este antecedente, además de una menor dispersión. Este patrón visual amerita una prueba de hipótesis formal (por ejemplo, una prueba t de comparación de medias) en el análisis inferencial posterior, para confirmar si la diferencia observada es estadísticamente significativa y no producto del azar muestral.
Discusión: se aprecia una tendencia a que el nivel de estrés disminuya conforme aumenta la red de apoyo emocional (de Baja a Alta), lo cual es coherente con la hipótesis del apoyo social como amortiguador del estrés mencionada en los antecedentes. Esta relación entre tres grupos podría confirmarse formalmente mediante un ANOVA en un análisis posterior.
Discusión: la línea de tendencia sugiere que, a mayor calidad de sueño reportada, tienden a presentarse mayores niveles de satisfacción con la vida, en línea con la correlación observada en la Figura 6. La dispersión moderada de los puntos alrededor de la línea indica una relación positiva pero no perfecta, dejando espacio para otros factores explicativos.
tabla_resumen <- datos %>%
tabyl(realiza_actividad_fisica, ha_sufrido_ansiedad) %>%
adorn_totals(where = c("row", "col")) %>%
adorn_percentages(denominator = "row") %>%
adorn_pct_formatting(digits = 1) %>%
adorn_ns(position = "front")
tabla_resumen
| Characteristic | No N = 451 |
Sí N = 551 |
p-value2 |
|---|---|---|---|
| Realiza actividad física | 0.14 | ||
| No | 14 (31%) | 25 (45%) | |
| Sí | 31 (69%) | 30 (55%) | |
| 1 n (%) | |||
| 2 Pearson’s Chi-squared test | |||
Discusión (Tabla y Figura 10): la tabla cruzada y el
gráfico de barras al 100% permiten comparar la proporción de personas
con antecedentes de ansiedad entre quienes practican actividad física y
quienes no. El valor p reportado por gtsummary (prueba
Chi-cuadrado) ofrece una primera pista sobre una posible asociación
estadísticamente significativa entre ambas variables categóricas, que
deberá confirmarse formalmente junto con su tamaño del efecto (V de
Cramér) en el análisis inferencial.
Cohen, S., & Wills, T. A. (1985). Stress, social support, and the buffering hypothesis. Psychological Bulletin, 98(2), 310–357. https://doi.org/10.1037/0033-2909.98.2.310
Lazarus, R. S., & Folkman, S. (1984). Stress, appraisal, and coping. Springer Publishing Company.
Organización Mundial de la Salud. (2020). WHO guidelines on physical activity and sedentary behaviour. https://www.who.int/publications/i/item/9789240015128
Tukey, J. W. (1977). Exploratory data analysis. Addison-Wesley.
Walker, M. (2017). Why we sleep: Unlocking the power of sleep and dreams. Scribner.
En cumplimiento de los principios de transparencia e integridad académica de la Universidad del Norte, se declara el uso de herramientas de inteligencia artificial en la elaboración de este trabajo, según el siguiente detalle:
| Aspecto | Información |
|---|---|
| Uso de IA | Sí |
| Herramienta | LucIA |
| Finalidad | Apoyo en redacción, código R y apoyo en la bibliografía |
| Porcentaje estimado | 30 % |