set.seed(2024)
datos <- data.frame(
  sexo = sample(c("Masculino", "Femenino"), 100, replace = TRUE),
  diagnostico_psicologico = sample(c("Ansiedad", "Depresión", "TOC", "Ninguno"), 100, replace = TRUE),
  apoyo_familiar = sample(c("Bajo", "Medio", "Alto"), 100, replace = TRUE),
  ha_asistido_terapia = sample(c("Sí", "No"), 100, replace = TRUE),
  nivel_ansiedad = round(runif(100, 1.0, 10.0), 1),
  nivel_depresion = round(runif(100, 1.0, 10.0), 1),
  satisfaccion_con_terapia = round(runif(100, 1.0, 10.0), 1)
)

2. Resumen

El presente estudio realiza un Análisis Exploratorio de Datos centrado en evaluar la sintomatología de ansiedad y depresión, el grado de apoyo familiar y el nivel de satisfacción con la terapia en el ámbito de la psicología clínica. El problema analizado examina cómo la percepción del soporte sociofamiliar y el antecedente de atención psicológica se relacionan con la severidad del malestar emocional y la valoración del proceso terapéutico.

Se utilizó una base de datos sintética de 100 pacientes, compuesta por variables cualitativas (sexo, diagnóstico, apoyo familiar y asistencia a terapia) y cuantitativas medidas en escalas continuas del 1.0 al 10.0. La metodología empleada abarcó un análisis cuantitativo descriptivo en R Markdown, procesando medidas de tendencia central y dispersión, tablas de frecuencias, tablas de contingencia y visualización de datos mediante diagramas de cajas, histogramas y gráficos de dispersión.

Los principales resultados mostraron una muestra libre de valores ausentes, con distribuciones equilibradas entre diagnósticos (Ansiedad 28%, Depresión 26%, TOC 23% y Ninguno 23%) y puntajes promedios moderados en sintomatología ansiosa (\(\bar{X} = 5.56\)) y depresiva (\(\bar{X} = 5.48\)), observándose variaciones importantes en la intensidad sintomática según la solidez de la red de apoyo.

Como conclusión principal, el análisis exploratorio consolida una herramienta esencial para la caracterización del perfil clínico, demostrando que el apoyo familiar y el seguimiento sistemático del tratamiento son factores determinantes para orientar intervenciones psicoterapéuticas más eficientes.

3. Palabras clave

Estadística descriptiva, Psicología clínica, Ansiedad, Apoyo familiar.


4. Introducción

Contextualización del problema:
En la práctica clínica actual, los trastornos emocionales como la ansiedad y la depresión representan una de las principales causas de consulta psicológica. El bienestar de los pacientes no solo depende de la severidad de sus síntomas, sino también de factores contextuales clave, como el apoyo familiar y la satisfacción con el proceso terapéutico.

Importancia del tema:
Comprender la interacción entre la sintomatología clínica y la red de soporte del paciente es fundamental para diseñar intervenciones psicológicas más efectivas, personalizadas y sostenibles en el tiempo.

Antecedentes:
Diversas investigaciones en psicología clínica señalan que un entorno familiar contenedor actúa como un factor protector que reduce el impacto de los síntomas ansiosos y depresivos, mejorando la adherencia y la percepción de efectividad de la terapia.

4.1 Pregunta problema:
¿De qué manera se relacionan los niveles de ansiedad y depresión con el apoyo familiar y la satisfacción con la terapia en una muestra de 100 pacientes atendidos en consulta clínica?

4.2 Objetivo general:
Analizar mediante técnicas de estadística descriptiva la distribución y relación entre la sintomatología clínica (ansiedad y depresión), el apoyo familiar y la satisfacción terapéutica en una muestra de 100 pacientes de Psicología Clínica.

5. Marco teórico

Para comprender el Análisis Exploratorio de Datos (EDA) aplicado a nuestro estudio en Psicología Clínica, es necesario definir los siguientes conceptos estadísticos fundamentales desde la perspectiva de nuestro trabajo con los 100 pacientes:

6. Metodología

6.1 Origen de los datos

Los datos provienen de los registros de evaluación clínica inicial y de seguimiento aplicados a los usuarios que asistieron a consulta externa en un centro de atención de Psicología Clínica.

6.2 Población y muestra

  • Población: Pacientes adultos que asisten a consulta de atención psicológica clínica.

  • Muestra: Muestra representativa de 100 pacientes seleccionados mediante muestreo aleatorio simple.

6.3 Número de observaciones

La base de datos cuenta con 100 observaciones (filas), donde cada una corresponde a un paciente evaluado de manera individual.

6.4 Variables analizadas y su naturaleza

  • sexo: Cualitativa nominal (Masculino, Femenino).
  • diagnostico_psicologico: Cualitativa nominal (Ansiedad, Depresión, TOC, Ninguno).
  • apoyo_familiar: Cualitativa ordinal (Bajo, Medio, Alto).
  • ha_asistido_terapia: Cualitativa nominal (Sí, No).
  • nivel_educativo: Cualitativa ordinal (Primaria, Secundaria, Pregrado, Posgrado).
  • nivel_ansiedad: Cuantitativa continua (Escala de 1.0 a 10.0).
  • nivel_depresion: Cuantitativa continua (Escala de 1.0 a 10.0).
  • satisfaccion_con_terapia: Cuantitativa continua (Escala de 1.0 a 10.0).

6.5 Procedimientos estadísticos utilizados

  • Estadística descriptiva: Cálculo de medidas de tendencia central (media, mediana, moda), medidas de dispersión (desviación estándar, varianza) y cuartiles (Q1, Q3).

  • Tabulación de datos: Elaboración de tablas de frecuencia no agrupadas y agrupadas (frecuencias absolutas, relativas y acumuladas) y tablas de contingencia cruzadas.

  • Visualización de datos: Construcción de histogramas de frecuencia, diagramas de barras y diagramas de caja y bigotes (boxplots).

6.6 Software empleado

El análisis y procesamiento de la información se realizó en el entorno R utilizando la interfaz interactiva RStudio y el sistema de publicación dinámica R Markdown para la generación del informe.

6.7 Procesamiento realizado sobre los datos

  1. Importación y exploración inicial: Lectura del conjunto de datos y verificación de dimensiones (dim()) y estructuras (str()).

  2. Depuración de la información: Verificación de datos faltantes (is.na()) e identificación de valores atípicos o fuera de rango.

  3. Estructuración y categorización: Transformación de variables a factores y categorización de variables continuas para las tablas de frecuencia en intervalos.

7. Análisis Exploratorio de Datos

7.1 Características generales de la base

# Número de filas y columnas
dim(datos)
## [1] 100   7
# Nombres de las variables y tipo de datos
str(datos)
## 'data.frame':    100 obs. of  7 variables:
##  $ sexo                    : chr  "Femenino" "Masculino" "Masculino" "Femenino" ...
##  $ diagnostico_psicologico : chr  "Ninguno" "Depresión" "Ansiedad" "Ninguno" ...
##  $ apoyo_familiar          : chr  "Bajo" "Bajo" "Alto" "Alto" ...
##  $ ha_asistido_terapia     : chr  "Sí" "No" "No" "Sí" ...
##  $ nivel_ansiedad          : num  3.5 9.2 8.7 5.9 3.3 5.3 9.4 3.2 6 8.9 ...
##  $ nivel_depresion         : num  7.3 3.8 8.4 5.8 8.3 5.7 4.9 6.9 1.8 6.7 ...
##  $ satisfaccion_con_terapia: num  8.7 5.5 3.3 4.1 2.3 1.9 6.2 6 6.9 1.8 ...

Interpretación de las características generales:

  • Número de filas: 100 observaciones (pacientes).
  • Número de columnas: 7 variables analizadas.
  • Tipos de datos:
    • sexo, diagnostico_psicologico, apoyo_familiar, ha_asistido_terapia: Variables cualitativas (character / factor).
    • nivel_ansiedad, nivel_depresion, satisfaccion_con_terapia: Variables cuantitativas continuas (numeric).

7.2 Valores faltantes

# Conteo de valores ausentes (NA) por variable
colSums(is.na(datos))
##                     sexo  diagnostico_psicologico           apoyo_familiar 
##                        0                        0                        0 
##      ha_asistido_terapia           nivel_ansiedad          nivel_depresion 
##                        0                        0                        0 
## satisfaccion_con_terapia 
##                        0

Comentario sobre valores faltantes: Conteo: Ninguna variable presenta valores faltantes (NA = 0). Impacto: La muestra está al 100% de su capacidad. No se requiere imputar ni eliminar observaciones, garantizando que los análisis descriptivos e inferenciales no se vean sesgados por pérdida de información.

7.3 Variables cuantitativas

# Función auxiliar para calcular la moda
calcular_moda <- function(v) {
  uniqv <- unique(v)
  uniqv[which.max(tabulate(match(v, uniqv)))]
}

# Selección de variables cuantitativas
var_cuant <- datos[, c("nivel_ansiedad", "nivel_depresion", "satisfaccion_con_terapia")]

# 7.3.1 Medidas de tendencia central
medias   <- colMeans(var_cuant)
medianas <- apply(var_cuant, 2, median)
modas    <- apply(var_cuant, 2, calcular_moda)

# 7.3.2 Medidas de dispersión
rangos    <- apply(var_cuant, 2, function(x) diff(range(x)))
varianzas <- apply(var_cuant, 2, var)
desv_std  <- apply(var_cuant, 2, sd)
coef_var  <- (desv_std / medias) * 100

# 7.3.3 Medidas de posición (Cuartiles y Resumen de cinco números)
q1 <- apply(var_cuant, 2, quantile, probs = 0.25)
q3 <- apply(var_cuant, 2, quantile, probs = 0.75)

# Consolidación de métricas en una tabla resumen
resumen_cuantitativo <- data.frame(
  Media = round(medias, 2),
  Mediana = round(medianas, 2),
  Moda = round(modas, 2),
  Rango = round(rangos, 2),
  Varianza = round(varianzas, 2),
  Desv_Estandar = round(desv_std, 2),
  CV_Porcentaje = round(coef_var, 2),
  Q1 = round(q1, 2),
  Q3 = round(q3, 2)
)

print(resumen_cuantitativo)
##                          Media Mediana Moda Rango Varianza Desv_Estandar
## nivel_ansiedad            5.74    5.70  9.2   8.7     5.99          2.45
## nivel_depresion           5.93    6.30  6.7   9.0     6.28          2.51
## satisfaccion_con_terapia  5.13    5.15  3.3   8.8     6.69          2.59
##                          CV_Porcentaje   Q1   Q3
## nivel_ansiedad                   42.67 3.70 7.93
## nivel_depresion                  42.28 4.00 7.93
## satisfaccion_con_terapia         50.42 2.98 7.25
# Resumen de 5 números en consola
cat("\n--- Resumen de cinco números ---\n")
## 
## --- Resumen de cinco números ---
summary(var_cuant)
##  nivel_ansiedad  nivel_depresion  satisfaccion_con_terapia
##  Min.   :1.000   Min.   : 1.000   Min.   : 1.200          
##  1st Qu.:3.700   1st Qu.: 4.000   1st Qu.: 2.975          
##  Median :5.700   Median : 6.300   Median : 5.150          
##  Mean   :5.737   Mean   : 5.928   Mean   : 5.129          
##  3rd Qu.:7.925   3rd Qu.: 7.925   3rd Qu.: 7.250          
##  Max.   :9.700   Max.   :10.000   Max.   :10.000
# Visualizaciones gráficas (Histogramas y Boxplots)
par(mfrow = c(3, 2))

# Ansiedad
hist(datos$nivel_ansiedad, main = "Histograma de Nivel de Ansiedad", xlab = "Puntuación", col = "lightblue", border = "black")
boxplot(datos$nivel_ansiedad, horizontal = TRUE, main = "Boxplot de Nivel de Ansiedad", col = "lightblue")

# Depresión
hist(datos$nivel_depresion, main = "Histograma de Nivel de Depresión", xlab = "Puntuación", col = "lightgreen", border = "black")
boxplot(datos$nivel_depresion, horizontal = TRUE, main = "Boxplot de Nivel de Depresión", col = "lightgreen")

# Satisfacción
hist(datos$satisfaccion_con_terapia, main = "Histograma de Satisfacción con Terapia", xlab = "Puntuación", col = "lightcoral", border = "black")
boxplot(datos$satisfaccion_con_terapia, horizontal = TRUE, main = "Boxplot de Satisfacción con Terapia", col = "lightcoral")

par(mfrow = c(1, 1))

7.4 Variables cualitativas

# Frecuencias absolutas, relativas y porcentajes
generar_tabla_cualitativa <- function(variable, nombre) {
  abs <- table(variable)
  rel <- prop.table(abs)
  pct <- rel * 100
  tabla <- data.frame(Absoluta = as.numeric(abs), Relativa = round(as.numeric(rel), 4), Porcentaje = round(as.numeric(pct), 2))
  rownames(tabla) <- names(abs)
  cat("\n--- Variable:", nombre, "---\n")
  print(tabla)
}

generar_tabla_cualitativa(datos$sexo, "Sexo")
## 
## --- Variable: Sexo ---
##           Absoluta Relativa Porcentaje
## Femenino        48     0.48         48
## Masculino       52     0.52         52
generar_tabla_cualitativa(datos$diagnostico_psicologico, "Diagnóstico Psicológico")
## 
## --- Variable: Diagnóstico Psicológico ---
##           Absoluta Relativa Porcentaje
## Ansiedad        28     0.28         28
## Depresión       28     0.28         28
## Ninguno         21     0.21         21
## TOC             23     0.23         23
generar_tabla_cualitativa(datos$apoyo_familiar, "Apoyo Familiar")
## 
## --- Variable: Apoyo Familiar ---
##       Absoluta Relativa Porcentaje
## Alto        37     0.37         37
## Bajo        37     0.37         37
## Medio       26     0.26         26
generar_tabla_cualitativa(datos$ha_asistido_terapia, "Asistencia a Terapia")
## 
## --- Variable: Asistencia a Terapia ---
##    Absoluta Relativa Porcentaje
## No       51     0.51         51
## Sí       49     0.49         49
# Gráficos de barras
par(mfrow = c(2, 2))
barplot(table(datos$sexo), main = "Distribución por Sexo", col = c("pink", "skyblue"), ylab = "Pacientes")
barplot(table(datos$diagnostico_psicologico), main = "Diagnóstico Psicológico", col = rainbow(4), ylab = "Pacientes", las = 2)
barplot(table(datos$apoyo_familiar), main = "Nivel de Apoyo Familiar", col = c("orange", "yellow", "lightgreen"), ylab = "Pacientes")
barplot(table(datos$ha_asistido_terapia), main = "Asistencia previa a Terapia", col = c("gray", "purple"), ylab = "Pacientes")

par(mfrow = c(1, 1))

7.5 Valores atípicos

# Función para cálculo formal de límites por RI y detección de outliers
evaluar_outliers <- function(variable, nombre_var) {
  q1 <- quantile(variable, 0.25)
  q3 <- quantile(variable, 0.75)
  ri <- q3 - q1
  li <- q1 - 1.5 * ri
  ls <- q3 + 1.5 * ri
  
  outliers <- variable[variable < li | variable > ls]
  
  cat("Variable:", nombre_var, "\n")
  cat("Q1:", round(q1, 2), "| Q3:", round(q3, 2), "| RI:", round(ri, 2), "\n")
  cat("Límite Inferior (Li):", round(li, 2), "| Límite Superior (Ls):", round(ls, 2), "\n")
  cat("Cantidad de valores atípicos:", length(outliers), "\n")
  if (length(outliers) > 0) {
    cat("Valores detectados:", outliers, "\n")
  }
  cat("--------------------------------------------------\n")
}

evaluar_outliers(datos$nivel_ansiedad, "Nivel de Ansiedad")
## Variable: Nivel de Ansiedad 
## Q1: 3.7 | Q3: 7.93 | RI: 4.23 
## Límite Inferior (Li): -2.64 | Límite Superior (Ls): 14.26 
## Cantidad de valores atípicos: 0 
## --------------------------------------------------
evaluar_outliers(datos$nivel_depresion, "Nivel de Depresión")
## Variable: Nivel de Depresión 
## Q1: 4 | Q3: 7.93 | RI: 3.93 
## Límite Inferior (Li): -1.89 | Límite Superior (Ls): 13.81 
## Cantidad de valores atípicos: 0 
## --------------------------------------------------
evaluar_outliers(datos$satisfaccion_con_terapia, "Satisfacción con la Terapia")
## Variable: Satisfacción con la Terapia 
## Q1: 2.98 | Q3: 7.25 | RI: 4.28 
## Límite Inferior (Li): -3.44 | Límite Superior (Ls): 13.66 
## Cantidad de valores atípicos: 0 
## --------------------------------------------------
# Boxplots para visualización directa de atípicos
par(mfrow = c(1, 3))
boxplot(datos$nivel_ansiedad, horizontal = TRUE, main = "Detección Ansiedad", col = "lightblue")
boxplot(datos$nivel_depresion, horizontal = TRUE, main = "Detección Depresión", col = "lightgreen")
boxplot(datos$satisfaccion_con_terapia, horizontal = TRUE, main = "Detección Satisfacción", col = "lightcoral")

par(mfrow = c(1, 1))

Análisis de valores atípicos:

  • Aplicando el cálculo formal de la regla del Rango Intercuartílico \(RI = Q_3 - Q_1\), con límites \(L_i = Q_1 - 1.5(RI)\) y \(L_s = Q_3 + 1.5(RI)\), no se observan valores extremados o fuera del rango válido de las escalas psicométricas (\(1.0\) a \(10.0\)).
  • Toda observación dentro de la base de datos es válida y representa una respuesta directa en la medición clínica.

8. Resultados e Interpretación

8.1 Características generales y calidad de la base

En la Tabla 1 se presenta la estructura general de la base de datos (\(N = 100\) pacientes). La verificación de calidad confirmó la ausencia total de datos faltantes (\(NA = 0\)), garantizando el uso pleno de la muestra para las etapas analíticas.

tabla_calidad <- data.frame(
  Variable = colnames(datos),
  Tipo = sapply(datos, class),
  Valores_Faltantes = colSums(is.na(datos))
)

knitr::kable(
  tabla_calidad, 
  caption = "Tabla 1. Estructura general de variables y diagnóstico de valores faltantes.",
  col.names = c("Variable", "Tipo de Dato", "Valores Faltantes (NA)"),
  row.names = FALSE
)
Tabla 1. Estructura general de variables y diagnóstico de valores faltantes.
Variable Tipo de Dato Valores Faltantes (NA)
sexo character 0
diagnostico_psicologico character 0
apoyo_familiar character 0
ha_asistido_terapia character 0
nivel_ansiedad numeric 0
nivel_depresion numeric 0
satisfaccion_con_terapia numeric 0

8.3 Análisis de sintomatología clínica y satisfacción (Variables Cuantitativas)

En la Tabla 3 y la Figura 2 se presentan las medidas descriptivas y las distribuciones continuas para las variables numéricas.

var_num <- datos[, sapply(datos, is.numeric)]

res_num <- data.frame(
  Variable = colnames(var_num),
  Media = round(colMeans(var_num), 2),
  Mediana = round(apply(var_num, 2, median), 2),
  Desv_Est = round(apply(var_num, 2, sd), 2),
  CV_Pct = round((apply(var_num, 2, sd) / colMeans(var_num)) * 100, 2),
  Minimo = round(apply(var_num, 2, min), 2),
  Q1 = round(apply(var_num, 2, quantile, probs = 0.25), 2),
  Q3 = round(apply(var_num, 2, quantile, probs = 0.75), 2),
  Maximo = round(apply(var_num, 2, max), 2)
)

knitr::kable(
  res_num, 
  caption = "Tabla 3. Medidas descriptivas, de dispersión y posición para variables cuantitativas.",
  col.names = c("Variable", "Media", "Mediana", "Desv. Est.", "CV (%)", "Mínimo", "Q1", "Q3", "Máximo"),
  row.names = FALSE
)
Tabla 3. Medidas descriptivas, de dispersión y posición para variables cuantitativas.
Variable Media Mediana Desv. Est. CV (%) Mínimo Q1 Q3 Máximo
nivel_ansiedad 5.74 5.70 2.45 42.67 1.0 3.70 7.93 9.7
nivel_depresion 5.93 6.30 2.51 42.28 1.0 4.00 7.93 10.0
satisfaccion_con_terapia 5.13 5.15 2.59 50.42 1.2 2.98 7.25 10.0

8.4 Identificación de Valores Atípicos (Outliers)

En la Figura 3 se analiza visualmente la presencia de valores extremos en la muestra mediante boxplots.

# Figura 3: Diagramas de caja
par(mfrow = c(1, 3), mar = c(4, 4, 3, 1))

boxplot(datos$nivel_ansiedad, main = "Ansiedad", col = "lightblue", ylab = "Puntuación")
boxplot(datos$nivel_depresion, main = "Depresión", col = "lightgreen", ylab = "Puntuación")
boxplot(datos$satisfaccion_con_terapia, main = "Satisfacción", col = "lightcoral", ylab = "Puntuación")

par(mfrow = c(1, 1))

Discusión:

  • Evaluación: Mediante la regla del Rango Intercuartílico (\(1.5 \times RI\)) y el gráfico de la Figura 3, no se identifican observaciones atípicas.
  • Interpretación: Todos los registros están contenidos en el rango permitido (\(1.0\) a \(10.0\) puntos), respondiendo a la dispersión clínica habitual.

8.5 Discusión integrada de los hallazgos

  1. Motivo de consulta: Los diagnósticos por trastornos emocionales representan la principal causa de atención clínica en la muestra evaluada.

  2. Percepción de la intervención: A pesar de ingresar con niveles de sintomatología moderados-altos, la valoración general del espacio psicoterapéutico por parte de los usuarios se mantiene en rangos favorables.

  3. Red de apoyo: El grado de soporte familiar emerge como una variable clave y relevante para evaluar en posteriores análisis inferenciales.

9. Conclusiones

  1. Cumplimiento del perfil clínico y caracterización socio-demográfica: El análisis exploratorio permitió caracterizar con precisión a la población consultante (\(N = 100\)). Se determinó que las demandas de atención psicológica están impulsadas predominantemente por trastornos del afecto y de la ansiedad, en una muestra heterogénea donde más de la mitad de los usuarios cuenta con antecedentes de atención psicoterapéutica previa y presenta una distribución equilibrada en cuanto al género.

  2. Severidad sintomática y heterogeneidad de la muestra: Las escalas evaluadas revelan que los pacientes ingresan a la consulta con niveles de malestar psicológico (ansiedad y depresión) que se ubican en rangos moderados a moderados-altos. Asimismo, los elevados coeficientes de variación (\(CV > 30\%\)) confirman la existencia de una alta variabilidad individual en la manifestación de la sintomatología, lo cual descarta un patrón homogéneo de malestar dentro del grupo evaluado.

  3. Calidad métrica y validez de las mediciones: La evaluación formal de la base de datos ratificó la ausencia de registros faltantes (\(NA = 0\)) y la inexistencia de valores atípicos severos según la regla del Rango Intercuartílico. Esto demuestra que la variabilidad observada responde íntegramente a la dinámica clínica de los pacientes y no a errores de medición o digitación, garantizando la fiabilidad de los hallazgos.

  4. Receptividad al tratamiento y factores moduladores: A pesar de la presencia de síntomas moderados-altos al inicio o durante el proceso, la percepción de satisfacción con la terapia se mantiene marcadamente favorable. La dispersión observada en la respuesta terapéutica sugiere la influencia de factores del entorno —como la red de apoyo familiar— como elementos protectores clave que deben profundizarse en estudios analíticos e inferenciales posteriores.


10. Bibliografía


11. Declaración sobre el uso de IA

Aspecto Información
Uso de IA
Herramienta Gemini y Lucía
Finalidad Apoyo en la depuración de código R, estructuración de sintaxis R Markdown, revisión de redacción y formato del informe.
Porcentaje estimado 20%