library(readxl)
library(glue)
library(dplyr)
library(janitor)
library(knitr)
library(kableExtra)
library(ggplot2)
library(ggraph)
library(igraph)
library(treemapify)
library(tidyverse)
library(knitr)
library(flextable)
library(apaTables)
datos_cuanti <- read_excel("/Users/adrianaholguin/Desktop/Copia de Tabla analisis tesis R.xlsx")
datos_cuali <- read_excel("//Users/adrianaholguin/Desktop/Categorías entrevistas 1 triangulacion.xlsx")
¿Qué relación existe entre la participación en un voluntariado curricular y el desarrollo de conductas prosociales en estudiantes universitarios?
¿Existe una diferencia significativa en los niveles de prosocialidad de los estudiantes universitarios antes y después de participar en un voluntariado curricular, medida con la escala de prosocialidad para adultos de Caprara?
¿Qué cambios en la prosocialidad son reportados por los estudiantes universitarios después de su participación en el voluntariado curricular?
base_tablas <- triangulacion_apa %>%
transmute(
Sexo = `X2..Sexo`,
Estado_civil = `X3..Estado.civil`,
Trabaja = `X4..Trabaja`,
Residente = `X5..Residente`,
Vive_con = `X6..Vive.con`,
Grupo_vulnerabilidad = `X7..Grupo.de.vulnerabilidad`,
Tipo_familia = `X8..Tipo.de.familia`,
Nivel_socioeconomico = `X10..Nivel.socioeconomico.percibido`,
Puntaje_total = as.numeric(`X48..A Total`)
)
# Función ajustada para incluir desviación estándar
tabla_por_variable <- function(variable, nombre_variable) {
base_tablas %>%
filter(!is.na(.data[[variable]]), !is.na(Puntaje_total)) %>%
group_by(.data[[variable]]) %>%
summarise(
n = n(),
`Promedio prosocialidad` = round(mean(Puntaje_total), 2),
`Desviación estándar` = round(sd(Puntaje_total), 2)
) %>%
rename(Categoría = 1) %>%
flextable() %>%
autofit() %>%
bold(part = "header") %>%
align(align = "center", part = "all") %>%
set_caption(paste("Promedio prosocialidad según", nombre_variable))
}
# Generar tablas con encabezado ajustado
tabla_por_variable("Sexo", "sexo")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Femenino | 33 | 54.76 | 6.93 |
Masculino | 9 | 53.44 | 6.73 |
tabla_por_variable("Estado_civil", "estado civil")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Soltero | 41 | 54.32 | 6.84 |
Unión libre | 1 | 61.00 |
tabla_por_variable("Trabaja", "condición laboral")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
No | 20 | 54.55 | 7.06 |
Si | 22 | 54.41 | 6.78 |
tabla_por_variable("Residente", "residencia")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Foráneo | 23 | 53.17 | 7.54 |
Local | 19 | 56.05 | 5.66 |
tabla_por_variable("Vive_con", "tipo de convivencia")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Familia | 24 | 54.50 | 6.25 |
Romíes | 16 | 54.69 | 8.19 |
Solo | 2 | 52.50 | 0.71 |
tabla_por_variable("Grupo_vulnerabilidad", "grupo de vulnerabilidad")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Madre soltera | 2 | 53.50 | 3.54 |
Ninguno | 40 | 54.52 | 6.98 |
tabla_por_variable("Tipo_familia", "tipo de familia")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Extensa | 7 | 56.00 | 5.39 |
Monoparental | 6 | 50.50 | 6.16 |
Tradicional | 29 | 54.93 | 7.15 |
tabla_por_variable("Nivel_socioeconomico", "nivel socioeconómico percibido")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Bajo | 4 | 52.75 | 6.02 |
Medio | 38 | 54.66 | 6.96 |
# Renombrar variables para encabezados legibles
nombres_variables <- c(
Sexo = "Sexo",
Estado_civil = "Estado civil",
Trabaja = "Condición laboral",
Residente = "Residencia",
Vive_con = "Tipo de convivencia",
Grupo_vulnerabilidad = "Grupo de vulnerabilidad",
Tipo_familia = "Tipo de familia",
Nivel_socioeconomico = "Nivel socioeconómico"
)
# Base en formato largo con nombres corregidos
base_larga <- triangulacion_apa %>%
transmute(
Sexo = `X2..Sexo`,
Estado_civil = `X3..Estado.civil`,
Trabaja = `X4..Trabaja`,
Residente = `X5..Residente`,
Vive_con = `X6..Vive.con`,
Grupo_vulnerabilidad = `X7..Grupo.de.vulnerabilidad`,
Tipo_familia = `X8..Tipo.de.familia`,
Nivel_socioeconomico = `X10..Nivel.socioeconomico.percibido`,
Puntaje_total = as.numeric(`X48..A Total`)
) %>%
pivot_longer(
cols = -Puntaje_total,
names_to = "Variable",
values_to = "Categoría"
) %>%
filter(!is.na(Categoría), !is.na(Puntaje_total)) %>%
mutate(Variable = nombres_variables[Variable])
# Categorías que vale la pena explorar más
categorias_azul <- c(
"Local", "Extensa", "Monoparental", "Romíes", "Foráneo", "Bajo", "Madre soltera"
)
# Asignar color interpretativo
base_larga <- base_larga %>%
mutate(Color = ifelse(Categoría %in% categorias_azul, "Explorar más", "Sin variación significativa"))
# Diagrama de dispersión con colores y encabezados corregidos
ggplot(base_larga, aes(x = Categoría, y = Puntaje_total, color = Color)) +
geom_jitter(width = 0.2, height = 0, alpha = 0.7, size = 2) +
facet_wrap(~ Variable, scales = "free_x") +
scale_color_manual(
values = c("Explorar más" = "#2980B9", "Sin variación significativa" = "#27AE60"),
labels = c("Explorar más" = "Categorías con variabilidad",
"Sin variación significativa" = "Categorías sin variación relevante")
) +
labs(
title = "Dispersión de prosocialidad según variables sociodemográficas (Todos los participantes)",
x = "Categoría",
y = "Puntaje total de prosocialidad",
color = "Interpretación situada"
) +
theme_minimal(base_size = 13) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1),
strip.text = element_text(face = "bold"),
legend.position = "right",
legend.title = element_text(face = "bold")
)
Interpretación: El gráfico muestra la dispersión del puntaje total de prosocialidad en relación con distintas variables sociodemográficas, permitiendo identificar patrones, tensiones y trayectorias diferenciadas. Las categorías fueron codificadas en azul (🔵) cuando presentan variabilidad interna significativa o potencia ética que amerita ser explorada en entrevista a profundidad, y en verde (🟢) cuando no muestran variaciones relevantes.
Entre las categorías que destacan por su dispersión o contraste, se encuentran:
Las categorías en verde (🟢) no presentan variaciones significativas, pero su estabilidad también puede ser relevante como punto de contraste o control discursivo.
Este análisis visual fortalece la triangulación inicial y permite derivar ejes temáticos para la entrevista a profundidad, especialmente en torno a la influencia de la estructura familiar, la territorialidad, la convivencia grupal y la experiencia de vulnerabilidad en la expresión prosocial.
# Base con variables originales y puntaje total
base_voluntariado <- triangulacion_apa %>%
transmute(
Le_gustaria_voluntariado = `X13..Le.gustaria.realizar.voluntariados.en.sus.materias`,
Areas_interes_voluntariado = `X14..Areas.que.le.interesan.para.realizar.voluntariados`,
Ha_realizado_voluntariado = `X15..Ha.realizado.voluntariados`,
Puntaje_total = as.numeric(`X48..A Total`)
)
# Función para variables simples
tabla_por_variable <- function(variable, nombre_variable) {
base_voluntariado %>%
filter(!is.na(.data[[variable]]), !is.na(Puntaje_total)) %>%
group_by(.data[[variable]]) %>%
summarise(
n = n(),
`Promedio prosocialidad` = round(mean(Puntaje_total), 2),
`Desviación estándar` = round(sd(Puntaje_total), 2),
.groups = "drop"
) %>%
rename(Categoría = 1) %>%
flextable() %>%
autofit() %>%
bold(part = "header") %>%
align(align = "center", part = "all") %>%
set_caption(paste("Promedio prosocialidad según", nombre_variable))
}
# Función para desagregar respuestas múltiples
tabla_desagregada <- function(variable, nombre_variable) {
base_voluntariado %>%
select(all_of(variable), Puntaje_total) %>%
separate_rows(all_of(variable), sep = ",\\s*") %>%
filter(!is.na(.data[[variable]]), !is.na(Puntaje_total)) %>%
group_by(.data[[variable]]) %>%
summarise(
n = n(),
`Promedio prosocialidad` = round(mean(Puntaje_total), 2),
`Desviación estándar` = round(sd(Puntaje_total), 2),
.groups = "drop"
) %>%
rename(Categoría = 1) %>%
flextable() %>%
autofit() %>%
bold(part = "header") %>%
align(align = "center", part = "all") %>%
set_caption(paste("Promedio prosocialidad según", nombre_variable))
}
# Generar tablas del bloque de voluntariado
tabla_por_variable("Le_gustaria_voluntariado", "interés en realizar voluntariado")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
No | 10 | 49.00 | 5.72 |
Si | 32 | 56.19 | 6.29 |
tabla_desagregada("Areas_interes_voluntariado", "áreas de interés para voluntariado")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Ambiental-ecológico | 6 | 48.83 | 2.93 |
Educativo | 20 | 55.90 | 6.46 |
Emergencias-desastres | 13 | 57.00 | 5.90 |
No respondió | 3 | 45.33 | 6.81 |
Salud | 13 | 57.00 | 5.90 |
Social-comunitario | 20 | 55.90 | 6.46 |
tabla_por_variable("Ha_realizado_voluntariado", "experiencia previa en voluntariado")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
No | 17 | 53.94 | 6.16 |
Si | 25 | 54.84 | 7.35 |
# Renombrar variables para encabezados legibles
nombres_voluntariado <- c(
Le_gustaria_voluntariado = "Interés en voluntariado",
Areas_interes_voluntariado = "Áreas de interés",
Ha_realizado_voluntariado = "Experiencia previa"
)
# Base con desagregación previa solo para Áreas de interés
base_voluntariado <- triangulacion_apa %>%
transmute(
Le_gustaria_voluntariado = `X13..Le.gustaria.realizar.voluntariados.en.sus.materias`,
Areas_interes_voluntariado = `X14..Areas.que.le.interesan.para.realizar.voluntariados`,
Ha_realizado_voluntariado = `X15..Ha.realizado.voluntariados`,
Puntaje_total = as.numeric(`X48..A Total`)
)
# Separar respuestas múltiples en Áreas de interés
base_voluntariado_desagregada <- base_voluntariado %>%
separate_rows(Areas_interes_voluntariado, sep = ",\\s*")
# Convertir a formato largo con nombres corregidos
base_voluntariado_larga <- base_voluntariado_desagregada %>%
pivot_longer(
cols = -Puntaje_total,
names_to = "Variable",
values_to = "Categoría"
) %>%
filter(!is.na(Categoría), !is.na(Puntaje_total)) %>%
mutate(Variable = nombres_voluntariado[Variable])
# Categorías que vale la pena explorar más (según lectura situada)
categorias_azul <- c("Sí", "Educación", "Salud", "Sí me gustaría")
# Asignar color interpretativo
base_voluntariado_larga <- base_voluntariado_larga %>%
mutate(Color = ifelse(Categoría %in% categorias_azul, "Explorar más", "Sin variación significativa"))
# Diagrama de dispersión con colores azul y verde
ggplot(base_voluntariado_larga, aes(x = Categoría, y = Puntaje_total, color = Color)) +
geom_jitter(width = 0.2, height = 0, alpha = 0.7, size = 2) +
facet_wrap(~ Variable, scales = "free_x") +
scale_color_manual(
values = c("Explorar más" = "#2980B9", "Sin variación significativa" = "#27AE60"),
labels = c("Explorar más" = "Categorías con potencia ética o variabilidad",
"Sin variación significativa" = "Categorías sin variación relevante")
) +
labs(
title = "Dispersión de prosocialidad según variables relacionadas con voluntariado (Todos los participantes)",
x = "Categoría",
y = "Puntaje total de prosocialidad",
color = "Interpretación situada"
) +
theme_minimal(base_size = 13) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1),
strip.text = element_text(face = "bold"),
legend.position = "right",
legend.title = element_text(face = "bold")
)
Interpretación:El gráfico muestra la dispersión del puntaje total de prosocialidad en relación con tres variables vinculadas al voluntariado: interés declarado, áreas de interés (desagregadas correctamente) y experiencia previa. Las categorías fueron codificadas en azul (🔵) cuando presentan variabilidad interna significativa o potencia ética que amerita ser explorada en entrevista a profundidad, y en verde (🟢) cuando no muestran variaciones relevantes.
Entre las categorías que destacan por su dispersión o contraste, se encuentran:
Las categorías en verde (🟢) no presentan variaciones significativas, pero su estabilidad también puede ser relevante como punto de contraste discursivo.
Este análisis visual permite derivar ejes temáticos para la entrevista a profundidad, especialmente en torno a la relación entre deseo, experiencia y sentido ético del voluntariado. También fortalece la triangulación inicial al vincular la prosocialidad con prácticas concretas de participación social, respetando la intención original de quienes respondieron con múltiples áreas de interés.
# Base filtrada: solo quienes han realizado voluntariado
base_participantes <- triangulacion_apa %>%
transmute(
Percibe_beneficio = `X20..Percibe.algun.beneficio.por.realizar.voluntariados`,
Volveria_participar = `X23..Volveria.a.participar.en.algun.voluntariado`,
Puntaje_total = as.numeric(`X48..A Total`),
Ha_realizado = `X15..Ha.realizado.voluntariados`
) %>%
filter(Ha_realizado == "Si")
# Función ajustada para incluir desviación estándar
tabla_por_variable <- function(variable, nombre_variable) {
base_participantes %>%
filter(!is.na(.data[[variable]]), !is.na(Puntaje_total)) %>%
group_by(.data[[variable]]) %>%
summarise(
n = n(),
`Promedio prosocialidad` = round(mean(Puntaje_total), 2),
`Desviación estándar` = round(sd(Puntaje_total), 2)
) %>%
rename(Categoría = 1) %>%
flextable() %>%
autofit() %>%
bold(part = "header") %>%
align(align = "center", part = "all") %>%
set_caption(paste("Promedio prosocialidad según", nombre_variable))
}
# Generar tablas limpias con desviación estándar
tabla_por_variable("Percibe_beneficio", "percepción de beneficio por voluntariado")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Si | 25 | 54.84 | 7.35 |
tabla_por_variable("Volveria_participar", "disposición a volver a participar")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
No | 3 | 46.33 | 2.89 |
Si | 22 | 56.00 | 7.02 |
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Ambiental-ecológico | 13 | 53.38 | 6.24 |
Educación | 5 | 58.80 | 5.97 |
Emergencias-desastres | 4 | 56.50 | 11.56 |
Salud | 6 | 61.33 | 5.24 |
Social-comunitario | 21 | 55.14 | 6.90 |
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Altruismo | 5 | 57.40 | 6.07 |
Compromiso cívico | 4 | 52.75 | 7.23 |
Desarrollo personal | 13 | 56.69 | 7.98 |
Diversión | 9 | 53.89 | 6.41 |
Obligación | 6 | 50.83 | 6.27 |
Reconocimiento | 3 | 53.00 | 7.55 |
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Aprendizaje | 9 | 53.22 | 8.51 |
Autoestima | 2 | 51.50 | 16.26 |
Consciencia | 6 | 61.50 | 2.51 |
Curriculum | 13 | 52.85 | 8.43 |
Empatía | 19 | 54.63 | 7.90 |
Satisfacción | 15 | 55.33 | 7.19 |
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
A las personas | 11 | 57.73 | 6.53 |
Lo que aprendí | 7 | 56.86 | 8.51 |
Lo que hice | 10 | 51.50 | 6.87 |
Lo que sentí | 13 | 56.15 | 7.37 |
# Renombrar variables para encabezados legibles
nombres_multirespuesta <- c(
Tipo_voluntariado = "Tipo de voluntariado",
Motivacion_voluntariado = "Motivación",
Beneficio_percibido = "Beneficio percibido",
Recuerdo_voluntariado = "Recuerdo significativo"
)
# Base original filtrada: solo quienes han realizado voluntariado
base_original <- triangulacion_apa %>%
transmute(
Tipo_voluntariado = `X18..Tipos.de.voluntariados.que.ha.realizado`,
Motivacion_voluntariado = `X19..Que.le.motiva.a.realizar.voluntariados`,
Beneficio_percibido = `X21..Beneficio.percibido.de.realizar.voluntariados`,
Recuerdo_voluntariado = `X22..Lo.que.mas.recuerda.de.los.voluntariados`,
Puntaje_total = as.numeric(`X48..A Total`),
Ha_realizado = `X15..Ha.realizado.voluntariados`
) %>%
filter(Ha_realizado == "Si") %>%
select(-Ha_realizado)
# Desagregar cada variable por separado
tipo <- base_original %>%
select(Tipo_voluntariado, Puntaje_total) %>%
separate_rows(Tipo_voluntariado, sep = ",\\s*") %>%
rename(Categoría = Tipo_voluntariado) %>%
mutate(Variable = "Tipo de voluntariado")
motivacion <- base_original %>%
select(Motivacion_voluntariado, Puntaje_total) %>%
separate_rows(Motivacion_voluntariado, sep = ",\\s*") %>%
rename(Categoría = Motivacion_voluntariado) %>%
mutate(Variable = "Motivación")
beneficio <- base_original %>%
select(Beneficio_percibido, Puntaje_total) %>%
separate_rows(Beneficio_percibido, sep = ",\\s*") %>%
rename(Categoría = Beneficio_percibido) %>%
mutate(Variable = "Beneficio percibido")
recuerdo <- base_original %>%
select(Recuerdo_voluntariado, Puntaje_total) %>%
separate_rows(Recuerdo_voluntariado, sep = ",\\s*") %>%
rename(Categoría = Recuerdo_voluntariado) %>%
mutate(Variable = "Recuerdo significativo")
# Unir todas las bases
base_larga <- bind_rows(tipo, motivacion, beneficio, recuerdo) %>%
filter(!is.na(Categoría), !is.na(Puntaje_total))
# Codificación interpretativa
categorias_azul <- c(
"Educación", "Salud", "Emergencias", "Reconocimiento", "Aprendizaje", "Transformación personal",
"Trabajo en equipo", "Impacto social", "Acompañamiento", "Desigualdad", "Vínculos humanos"
)
base_larga <- base_larga %>%
mutate(Color = ifelse(Categoría %in% categorias_azul, "Explorar más", "Sin variación significativa"))
# Diagrama de dispersión con colores
ggplot(base_larga, aes(x = Categoría, y = Puntaje_total, color = Color)) +
geom_jitter(width = 0.2, height = 0, alpha = 0.7, size = 2) +
facet_wrap(~ Variable, scales = "free_x") +
scale_color_manual(
values = c("Explorar más" = "#2980B9", "Sin variación significativa" = "#27AE60"),
labels = c("Explorar más" = "Categorías con potencia ética o variabilidad",
"Sin variación significativa" = "Categorías sin variación relevante")
) +
labs(
title = "Dispersión de prosocialidad según variables multirespuesta de voluntariado (Voluntariado previo)",
x = "Categoría",
y = "Puntaje total de prosocialidad",
color = "Interpretación situada"
) +
theme_minimal(base_size = 12) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1),
strip.text = element_text(face = "bold"),
legend.position = "right",
legend.title = element_text(face = "bold")
)
Interpretación (participantes): El gráfico muestra la dispersión del puntaje total de prosocialidad en relación con cuatro variables multirespuesta vinculadas al voluntariado: tipo de voluntariado realizado, motivación declarada, beneficio percibido y recuerdo significativo. Las respuestas fueron desagregadas correctamente por coma, respetando la intención original de quienes marcaron múltiples opciones. Las categorías fueron codificadas en azul cuando presentan variabilidad interna significativa o potencia ética que amerita ser explorada en entrevista a profundidad, y en verde cuando no muestran variaciones relevantes.
Entre las categorías que destacan por su dispersión o contraste, se encuentran:
Las categorías en verde no presentan variaciones significativas, pero su estabilidad también puede ser relevante como punto de contraste discursivo o como indicador de trayectorias homogéneas.
Este análisis visual permite derivar ejes temáticos para la entrevista a profundidad, especialmente en torno a la relación entre experiencia concreta, memoria ética y transformación subjetiva en contextos de voluntariado. También fortalece la triangulación inicial al vincular la prosocialidad con prácticas situadas y narrativas de sentido.
# Base filtrada: solo quienes no han realizado voluntariado
base_no_participantes <- triangulacion_apa %>%
transmute(
Desea_participar = `X25..Le.gustaria.participar.en.algun.voluntariado`,
Puntaje_total = as.numeric(`X48..A Total`),
Ha_realizado = `X15..Ha.realizado.voluntariados`
) %>%
filter(Ha_realizado == "No")
# Tabla de deseo de participación con desviación estándar
base_no_participantes %>%
filter(!is.na(Desea_participar), !is.na(Puntaje_total)) %>%
group_by(Desea_participar) %>%
summarise(
n = n(),
`Promedio prosocialidad` = round(mean(Puntaje_total), 2),
`Desviación estándar` = round(sd(Puntaje_total), 2),
.groups = "drop"
) %>%
rename(Categoría = Desea_participar) %>%
flextable() %>%
autofit() %>%
bold(part = "header") %>%
align(align = "center", part = "all") %>%
set_caption("Promedio prosocialidad según deseo de participar en voluntariado")
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
No | 2 | 49.50 | 4.95 |
Si | 15 | 54.53 | 6.20 |
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Falta de interés | 1 | 53.00 | |
Falta de oportunidades | 10 | 53.20 | 5.81 |
Falta de tiempo | 9 | 55.11 | 7.24 |
Prejuicios | 2 | 51.50 | 2.12 |
Categoría | n | Promedio prosocialidad | Desviación estándar |
|---|---|---|---|
Aprendizaje | 13 | 53.85 | 7.02 |
Autoestima | 3 | 48.67 | 2.89 |
Consciencia | 8 | 52.88 | 7.59 |
Curriculum | 5 | 55.20 | 6.69 |
Empatía | 5 | 55.00 | 8.28 |
Satisfacción | 9 | 53.00 | 5.34 |
# Renombrar variables para encabezados legibles
nombres_no_participantes <- c(
Motivo_no_participacion = "Motivo por el que no ha participado",
Beneficio_esperado = "Beneficio que cree que le dejaría participar",
Desea_participar = "Desea participar en voluntariado"
)
# Base original: solo quienes no han realizado voluntariado
base_no_participantes <- triangulacion_apa %>%
transmute(
Motivo_no_participacion = `X24..Porque.cree.que.no.ha.realizado.voluntariados`,
Beneficio_esperado = `X26..Beneficio.que.cree.que.le.dejaria.realizar.voluntariados`,
Desea_participar = `X25..Le.gustaria.participar.en.algun.voluntariado`,
Puntaje_total = as.numeric(`X48..A Total`),
Ha_realizado = `X15..Ha.realizado.voluntariados`
) %>%
filter(Ha_realizado == "No") %>%
select(-Ha_realizado)
# Desagregar cada variable por separado
motivo <- base_no_participantes %>%
select(Motivo_no_participacion, Puntaje_total) %>%
separate_rows(Motivo_no_participacion, sep = ",\\s*") %>%
rename(Categoría = Motivo_no_participacion) %>%
mutate(Variable = "Motivo por el que no ha participado")
beneficio <- base_no_participantes %>%
select(Beneficio_esperado, Puntaje_total) %>%
separate_rows(Beneficio_esperado, sep = ",\\s*") %>%
rename(Categoría = Beneficio_esperado) %>%
mutate(Variable = "Beneficio que cree que le dejaría participar")
deseo <- base_no_participantes %>%
select(Desea_participar, Puntaje_total) %>%
filter(!is.na(Desea_participar)) %>%
rename(Categoría = Desea_participar) %>%
mutate(Variable = "Desea participar en voluntariado")
# Unir todas las variables
base_larga <- bind_rows(motivo, beneficio, deseo) %>%
filter(!is.na(Categoría), !is.na(Puntaje_total))
# Codificación interpretativa
categorias_azul <- c(
"Falta de información", "Falta de tiempo", "Miedo a no saber cómo ayudar",
"Reconocimiento", "Aprendizaje", "Transformación personal", "Vínculos humanos", "Sentido de comunidad",
"Sí"
)
base_larga <- base_larga %>%
mutate(Color = ifelse(Categoría %in% categorias_azul, "Explorar más", "Sin variación significativa"))
# Diagrama de dispersión con codificación azul-verde
ggplot(base_larga, aes(x = Categoría, y = Puntaje_total, color = Color)) +
geom_jitter(width = 0.2, height = 0, alpha = 0.7, size = 2) +
facet_wrap(~ Variable, scales = "free_x") +
scale_color_manual(
values = c("Explorar más" = "#2980B9", "Sin variación significativa" = "#27AE60"),
labels = c("Explorar más" = "Categorías con potencia ética o variabilidad",
"Sin variación significativa" = "Categorías sin variación relevante")
) +
labs(
title = "Dispersión de prosocialidad según motivos, beneficios esperados y deseo de participar (Sin voluntariado previo)",
x = "Categoría",
y = "Puntaje total de prosocialidad",
color = "Interpretación situada"
) +
theme_minimal(base_size = 12) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1),
strip.text = element_text(face = "bold"),
legend.position = "right",
legend.title = element_text(face = "bold")
)
Interpretación (no participantes): El gráfico muestra la dispersión del puntaje total de prosocialidad en relación con tres variables multirespuesta entre quienes no han participado en voluntariado: motivos declarados para no haberlo hecho, beneficios que creen que les dejaría participar y disposición actual a participar. Las respuestas fueron desagregadas correctamente por coma, respetando la intención original de quienes marcaron múltiples opciones. Las categorías fueron codificadas en azul cuando presentan variabilidad interna significativa o potencia ética que amerita ser explorada en entrevista a profundidad, y en verde cuando no muestran variaciones relevantes.
Entre las categorías que destacan por su dispersión o contraste, se encuentran:
Las categorías en verde no presentan variaciones relevantes, pero su estabilidad también puede ser útil como punto de contraste discursivo o como indicador de trayectorias homogéneas.
Este análisis visual permite derivar ejes temáticos para la entrevista a profundidad, especialmente en torno a las barreras percibidas, las expectativas éticas y las narrativas de deseo entre quienes aún no han participado. También fortalece la triangulación inicial al vincular la prosocialidad con disposiciones latentes, condiciones estructurales y tensiones subjetivas.
# Paso 1: unir base cuantitativa y cualitativa
triangulacion_completa <- triangulacion_apa %>%
left_join(datos_cuali, by = "Sujeto")
# Paso 2: calcular promedio y desviación estándar por categoría cualitativa
tabla_comparativa <- triangulacion_completa %>%
filter(!is.na(Categoría)) %>%
group_by(Categoría) %>%
summarise(
`Promedio de puntaje total` = round(mean(`X48..A Total`, na.rm = TRUE), 2),
`Desviación estándar` = round(sd(`X48..A Total`, na.rm = TRUE), 2),
.groups = "drop"
) %>%
arrange(desc(`Promedio de puntaje total`))
# Paso 3: visualizar en formato APA puro
flextable(tabla_comparativa) %>%
set_header_labels(
Categoría = "Categoría cualitativa",
`Promedio de puntaje total` = "Promedio de puntaje total",
`Desviación estándar` = "Desviación estándar"
) %>%
autofit() %>%
bold(part = "header") %>%
align(align = "center", part = "all") %>%
set_caption("Tabla comparativa de puntaje total de prosocialidad por categoría cualitativa (sujetos triangulados)")
Categoría cualitativa | Promedio de puntaje total | Desviación estándar |
|---|---|---|
Sociabilización | 58.36 | 9.21 |
Empatía | 57.60 | 9.69 |
Ayudar | 56.61 | 10.67 |
Compartir | 54.25 | 10.61 |
Prosocial | 53.26 | 10.69 |
# Base triangulada con categoría cualitativa
base_categorias <- triangulacion_apa %>%
left_join(datos_cuali, by = "Sujeto") %>%
transmute(
Categoría = Categoría,
Puntaje_total = as.numeric(`X48..A Total`)
) %>%
filter(!is.na(Categoría), !is.na(Puntaje_total))
# Codificación interpretativa
categorias_azul <- c("Sociabilización", "Empatía", "Ayudar", "Transformación", "Vínculo", "Reparación")
base_categorias <- base_categorias %>%
mutate(Color = ifelse(Categoría %in% categorias_azul, "Explorar más", "Sin variación significativa"))
# Diagrama de dispersión
ggplot(base_categorias, aes(x = Categoría, y = Puntaje_total, color = Color)) +
geom_jitter(width = 0.2, height = 0, alpha = 0.7, size = 2) +
scale_color_manual(
values = c("Explorar más" = "#2980B9", "Sin variación significativa" = "#27AE60"),
labels = c("Explorar más" = "Categorías con potencia ética o variabilidad",
"Sin variación significativa" = "Categorías sin variación relevante")
) +
labs(
title = "Dispersión de prosocialidad según categoría cualitativa (sujetos triangulados)",
x = "Categoría cualitativa",
y = "Puntaje total de prosocialidad",
color = "Interpretación situada"
) +
theme_minimal(base_size = 12) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1),
strip.text = element_text(face = "bold"),
legend.position = "right",
legend.title = element_text(face = "bold")
)
Interpretación (sujetos triangulados): El gráfico muestra la dispersión del puntaje total de prosocialidad en relación con las categorías cualitativas construidas a partir de la triangulación entre respuestas abiertas y trayectorias cuantitativas. Las categorías fueron codificadas en azul cuando presentan variabilidad interna significativa o potencia ética que amerita ser explorada en entrevista a profundidad, y en verde cuando no muestran variaciones relevantes.
Entre las categorías que destacan por su dispersión o contraste, se encuentran:
La dispersión interna de cada categoría permite identificar no solo el nivel de prosocialidad, sino también la heterogeneidad de sentidos que las personas atribuyen a sus prácticas. Este análisis visual fortalece la triangulación metodológica al vincular la codificación cualitativa con indicadores cuantitativos, y permite derivar ejes temáticos para la entrevista a profundidad, especialmente en torno a la construcción subjetiva del sentido prosocial.
# Mapeo de sujetos con síntesis centrada en Ayudar
sujetos_info <- tibble::tibble(
Sujeto = c(41, 20, 15, 19, 9, 42),
Nombre = c("Sujeto 1", "Sujeto 2", "Sujeto 3", "Sujeto 4", "Sujeto 6", "Sujeto 5"),
Orden = c(1, 2, 3, 4, 6, 5),
Nivel_prosocialidad = c("Baja", "Baja", "Baja", "Alta", "Alta", "Alta"),
Sintesis = c(
"No expresó elementos relevantes vinculados a la dimensión de ayudar.",
"Concibe la ayuda como deber moral, aunque tensiona su ejecución cuando no hay reconocimiento.",
"Asocia la ayuda con sacrificio, mostrando ambivalencia entre entrega y agotamiento relacional.",
"No expresó elementos relevantes vinculados a la dimensión de ayudar.",
"No expresó elementos relevantes vinculados a la dimensión de ayudar.",
"No expresó elementos relevantes vinculados a la dimensión de ayudar."
)
)
# Filtrar base y unir con mapeo
tabla_ayudar <- triangulacion_apa %>%
filter(Sujeto %in% sujetos_info$Sujeto) %>%
transmute(
Sujeto,
Ayudar = `X45..A Ayudar`
) %>%
left_join(sujetos_info, by = "Sujeto") %>%
arrange(Orden) %>%
select(Nombre, Ayudar, Nivel_prosocialidad, Sintesis)
# Visualizar tabla en formato APA puro
flextable(tabla_ayudar) %>%
set_header_labels(
Nombre = "Sujeto",
Ayudar = "Ayudar",
Nivel_prosocialidad = "Nivel de prosocialidad",
Sintesis = "Síntesis discursiva sobre la dimensión Ayudar"
) %>%
autofit() %>%
bold(part = "header") %>%
align(align = "center", part = "all") %>%
set_caption("Triangulación por sujeto: dimensión Ayudar y síntesis discursiva específica")
Sujeto | Ayudar | Nivel de prosocialidad | Síntesis discursiva sobre la dimensión Ayudar |
|---|---|---|---|
Sujeto 1 | 15 | Baja | No expresó elementos relevantes vinculados a la dimensión de ayudar. |
Sujeto 2 | 20 | Baja | Concibe la ayuda como deber moral, aunque tensiona su ejecución cuando no hay reconocimiento. |
Sujeto 3 | 19 | Baja | Asocia la ayuda con sacrificio, mostrando ambivalencia entre entrega y agotamiento relacional. |
Sujeto 4 | 26 | Alta | No expresó elementos relevantes vinculados a la dimensión de ayudar. |
Sujeto 5 | 27 | Alta | No expresó elementos relevantes vinculados a la dimensión de ayudar. |
Sujeto 6 | 27 | Alta | No expresó elementos relevantes vinculados a la dimensión de ayudar. |
Sujeto | Empatía | Nivel de prosocialidad | Síntesis discursiva sobre la dimensión Empatía |
|---|---|---|---|
Sujeto 1 | 16 | Baja | No expresó elementos relevantes vinculados a la dimensión de empatía. |
Sujeto 2 | 15 | Baja | No expresó elementos relevantes vinculados a la dimensión de empatía. |
Sujeto 3 | 16 | Baja | No expresó elementos relevantes vinculados a la dimensión de empatía. |
Sujeto 4 | 24 | Alta | Vincula la empatía con defensa ética, especialmente ante injusticias que afectan a otros. |
Sujeto 5 | 24 | Alta | Describe la empatía como apertura lúcida, capaz de sostener el dolor ajeno sin invadir. |
Sujeto 6 | 23 | Alta | No expresó elementos relevantes vinculados a la dimensión de empatía. |
Sujeto | Compartir | Nivel de prosocialidad | Síntesis discursiva sobre la dimensión Compartir |
|---|---|---|---|
Sujeto 1 | 9 | Baja | Valora el acto de compartir como gesto de justicia, pero lo vincula a contextos de reciprocidad. |
Sujeto 2 | 12 | Baja | No expresó elementos relevantes vinculados a la dimensión de compartir. |
Sujeto 3 | 12 | Baja | No expresó elementos relevantes vinculados a la dimensión de compartir. |
Sujeto 4 | 14 | Alta | No expresó elementos relevantes vinculados a la dimensión de compartir. |
Sujeto 5 | 14 | Alta | No expresó elementos relevantes vinculados a la dimensión de compartir. |
Sujeto 6 | 14 | Alta | Concibe el compartir como acto de reparación, especialmente en contextos de exclusión o duelo. |
Sujeto | Total de prosocialidad | Nivel asignado | Síntesis discursiva sobre la prosocialidad global |
|---|---|---|---|
Sujeto 1 | 40 | Baja | Expresa una prosocialidad condicionada por reciprocidad, con énfasis en justicia relacional. |
Sujeto 2 | 47 | Baja | Su prosocialidad se sostiene en el deber ético, aunque tensionada por la necesidad de reconocimiento. |
Sujeto 3 | 47 | Baja | Muestra una prosocialidad ambivalente, marcada por entrega y agotamiento emocional. |
Sujeto 4 | 64 | Alta | Su prosocialidad se expresa como defensa ética ante el sufrimiento ajeno, con apertura lúcida. |
Sujeto 5 | 65 | Alta | No expresó elementos relevantes vinculados a una lectura global de la prosocialidad. |
Sujeto 6 | 64 | Alta | Concibe la prosocialidad como reparación simbólica, especialmente en contextos de exclusión o duelo. |