La psicología social estudia cómo el entorno social influye en el comportamiento, pensamientos y emociones de las personas, analizando fenómenos como la conformidad, la agresión y el prejuicio para comprender la dinámica de grupos y la convivencia humana.
Pregunta a responder:
¿Qué factores psicosociales influyen en la percepción de convivencia y la participación en causas sociales?
Objetivo general
Analizar los factores psicosociales que influyen en la percepción de convivencia y en la participación en causas sociales
Objetivos especificos
Identificar la relación entre la percepción de discriminación y la satisfacción con la convivencia.
Evaluar cómo variables como edad, sexo y nivel educativo se asocian con la participación en causas sociales.
Comparar los niveles de confianza social y tolerancia a las diferencias según la participación en organizaciones sociales.
Determinar si existe correlación entre los factores psicosociales (confianza, tolerancia, discriminación) y los niveles de participación social.
Importancia del análisis
Analizar los factores psicosociales que influyen en la percepción de convivencia y la participación en causas sociales permite comprender cómo variables como la confianza, la tolerancia y la percepción de discriminación inciden en la cohesión comunitaria. Este análisis es relevante porque aporta evidencia empírica para fortalecer estrategias de intervención y políticas públicas orientadas a mejorar la convivencia y el compromiso ciudadano, fundamentando las conclusiones en datos estadísticos confiables.
Analisis exploratorio de datos
to_install <- c("tidyverse","janitor","readxl","gt","openxlsx")
new_pkgs <- to_install[!(to_install %in% installed.packages()[, "Package"])]
if (length(new_pkgs) > 0) install.packages(new_pkgs)
library(tidyverse); library(janitor); library(readxl); library(gt); library(openxlsx)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.0 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.2.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
##
## Attaching package: 'janitor'
##
##
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
ruta <- "Base_Psicologia_Social.xlsx"
datos <- read_excel(ruta) |> clean_names()
num_vars <- c("edad","percepcion_discriminacion","nivel_confianza_social",
"tolerancia_diferencias","satisfaccion_convivencia")
cat_vars <- c("sexo","nivel_educativo","participa_organizaciones",
"apoyo_causas_sociales","frecuencia_activismo","uso_redes_protesta")
for (v in intersect(num_vars, names(datos))) datos[[v]] <- suppressWarnings(as.numeric(datos[[v]]))
for (v in intersect(cat_vars, names(datos))) datos[[v]] <- as.factor(datos[[v]])
# Tabla "diccionario" rápida: tipo, n, faltantes, únicos
resumen_general <- tibble(
variable = names(datos),
tipo = sapply(datos, \(x) class(x)[1]),
n = nrow(datos),
faltantes = sapply(datos, \(x) sum(is.na(x))),
unicos = sapply(datos, \(x) dplyr::n_distinct(x, na.rm = TRUE))
) |>
arrange(desc(faltantes))
# Tabla de faltantes ordenada
faltantes <- resumen_general |>
filter(faltantes > 0) |>
mutate(pct_falt = round(100*faltantes/n, 1))
# Ver bonito en HTML (R Markdown) con gt
gt::gt(resumen_general) |> gt::tab_header(title = "Resumen general de la base")
| Resumen general de la base | ||||
| variable | tipo | n | faltantes | unicos |
|---|---|---|---|---|
| edad | numeric | 100 | 0 | 39 |
| sexo | factor | 100 | 0 | 3 |
| nivel_educativo | factor | 100 | 0 | 4 |
| participa_organizaciones | factor | 100 | 0 | 2 |
| percepcion_discriminacion | numeric | 100 | 0 | 10 |
| nivel_confianza_social | numeric | 100 | 0 | 10 |
| tolerancia_diferencias | numeric | 100 | 0 | 10 |
| apoyo_causas_sociales | factor | 100 | 0 | 2 |
| frecuencia_activismo | factor | 100 | 0 | 3 |
| uso_redes_protesta | factor | 100 | 0 | 2 |
| satisfaccion_convivencia | numeric | 100 | 0 | 10 |
library(ggplot2)
ggplot(datos, aes(x = percepcion_discriminacion,
y = satisfaccion_convivencia)) +
geom_point(alpha = 0.7, color = "#0073C2FF") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(title = "Relación entre Discriminación y Satisfacción con la Convivencia",
subtitle = "Visualización acorde al análisis de Spearman",
x = "Percepción de Discriminación",
y = "Satisfacción con la Convivencia") +
theme_minimal(base_size = 14)
## `geom_smooth()` using formula = 'y ~ x'
grupo <- if ("sexo" %in% names(datos)) "sexo" else "nivel_educativo"
ggplot(datos, aes(x = .data[[grupo]],
y = percepcion_discriminacion,
fill = .data[[grupo]])) +
geom_boxplot(alpha = 0.7) +
labs(title = paste("Percepción de discriminación según", grupo),
x = grupo,
y = "Percepción de Discriminación") +
theme_minimal(base_size = 14) +
theme(legend.position = "none")
if ("participa_organizaciones" %in% names(datos)) {
ggplot(datos, aes(x = factor(participa_organizaciones),
y = nivel_confianza_social,
fill = factor(participa_organizaciones))) +
geom_boxplot(alpha = 0.7) +
labs(title = "Confianza Social según Participación en Organizaciones",
x = "Participa en Organizaciones",
y = "Nivel de Confianza Social") +
theme_minimal(base_size = 14) +
theme(legend.position = "none")
}
SPEARMAN
H₀: No existe relación significativa entre la percepción de discriminación y la satisfacción con la convivencia en la comunidad.
H₁: Sí existe una relación significativa entre la percepción de discriminación y la satisfacción con la convivencia en la comunidad.
# -------------------------------------------------------
# Spearman: percepcion_de_discriminacion vs satisfaccion_convivencia
# -------------------------------------------------------
library(readxl)
library(dplyr)
library(ggplot2)
library(janitor)
# 1. Cargar datos
datos <- read_excel("Base_Psicologia_Social.xlsx") |>
clean_names()
# 2. Seleccionar variables y limpiar
df <- datos |>
select(percepcion_discriminacion, satisfaccion_convivencia) |>
mutate(
percepcion_discriminacion = as.numeric(percepcion_discriminacion),
satisfaccion_convivencia = as.numeric(satisfaccion_convivencia)
) |>
drop_na()
# 3. Correlación Spearman
cor.test(df$percepcion_discriminacion,
df$satisfaccion_convivencia,
method = "spearman")
## Warning in cor.test.default(df$percepcion_discriminacion,
## df$satisfaccion_convivencia, : Cannot compute exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: df$percepcion_discriminacion and df$satisfaccion_convivencia
## S = 177153, p-value = 0.5333
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## -0.06302707
# 4. Gráfico
ggplot(df, aes(x = percepcion_discriminacion,
y = satisfaccion_convivencia)) +
geom_point(alpha = 0.7) +
geom_smooth(method = "lm", se = FALSE) +
labs(
title = "Percepción de discriminación vs Satisfacción con la convivencia",
subtitle = "Correlación de Spearman",
x = "Percepción de discriminación",
y = "Satisfacción con la convivencia"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
Analisis El análisis de Spearman mostró que no existe
una relación significativa entre la percepción de discriminación y la
satisfacción con la convivencia (ρ cercano a 0 y p > 0.05).
Esto significa que, en esta muestra, percibir más o menos discriminación no cambia la forma en que las personas evalúan su convivencia social. Por tanto, otros factores psicosociales pueden estar influyendo más en cómo se percibe la convivencia.
p > 0.05), la hipótesis correcta —es decir, la que no se rechaza— es:
H₀: No existe una relación significativa entre la percepción de discriminación y la satisfacción con la convivencia en la comunidad.
CHI-CUADRADO
H₀:No existe asociación significativa entre el nivel de confianza social y la percepción de convivencia.
H₁:Sí existe asociación entre el nivel de confianza social y la percepción de convivencia.
# -------------------------------------------------------
# CHI-CUADRADO: Confianza social (B/M/A) vs Convivencia (B/M/A)
# -------------------------------------------------------
library(readxl)
library(dplyr)
library(janitor)
# 1. Cargar datos
datos <- read_excel("Base_Psicologia_Social.xlsx") |>
clean_names()
# 2. Asegurar variables numéricas
datos <- datos |>
mutate(
nivel_confianza_social = as.numeric(nivel_confianza_social),
satisfaccion_convivencia = as.numeric(satisfaccion_convivencia)
)
# 3. Función para cortar en baja / media / alta
cortar_en_terciles <- function(x) {
cut(x,
breaks = quantile(x, probs = c(0, 1/3, 2/3, 1), na.rm = TRUE),
include.lowest = TRUE,
labels = c("Baja", "Media", "Alta"))
}
# 4. Crear variables categóricas
datos <- datos |>
mutate(
conf_cat = cortar_en_terciles(nivel_confianza_social),
conv_cat = cortar_en_terciles(satisfaccion_convivencia)
) |>
drop_na(conf_cat, conv_cat)
# 5. Tabla de contingencia
tabla_chi <- table(datos$conf_cat, datos$conv_cat)
tabla_chi
##
## Baja Media Alta
## Baja 17 14 16
## Media 8 8 7
## Alta 10 11 9
# 6. Prueba Chi-cuadrado
prueba_chi <- chisq.test(tabla_chi, correct = FALSE)
prueba_chi
##
## Pearson's Chi-squared test
##
## data: tabla_chi
## X-squared = 0.45027, df = 4, p-value = 0.9782
# 7. Calcular tamaño del efecto (V de Cramer)
chi_val <- as.numeric(prueba_chi$statistic)
n <- sum(tabla_chi)
r <- nrow(tabla_chi)
c <- ncol(tabla_chi)
v_cramer <- sqrt(chi_val / (n * min(r - 1, c - 1)))
v_cramer
## [1] 0.04744853
Analisis El valor p (0.9782) es mucho mayor que 0.05, lo que indica que no existe una asociación estadísticamente significativa entre el nivel de confianza social y la satisfacción con la convivencia.
ANOVA H₀: No existen diferencias significativas en la satisfacción con la convivencia según la frecuencia de activismo H₁: Al menos una de las medias de satisfacción con la convivencia difiere según la frecuencia de activismo.
# ------------------------------------------------------------
# ANOVA: Satisfacción con la convivencia ~ Frecuencia de activismo
# ------------------------------------------------------------
# 0) Paquetes
paquetes <- c("tidyverse", "readxl", "janitor")
instalar <- paquetes[!(paquetes %in% installed.packages()[,"Package"])]
if (length(instalar) > 0) install.packages(instalar)
invisible(lapply(paquetes, library, character.only = TRUE))
# 1) Cargar base de datos
datos <- read_excel("Base_Psicologia_Social.xlsx") |> clean_names()
# 2) Verificar columnas necesarias
cols_necesarias <- c("satisfaccion_convivencia", "frecuencia_activismo")
setdiff(cols_necesarias, names(datos))
## character(0)
# 3) Preparar variables
datos <- datos |>
mutate(
satisfaccion_convivencia = suppressWarnings(as.numeric(satisfaccion_convivencia)),
frecuencia_activismo = as.factor(frecuencia_activismo)
)
# Reordenar niveles si existen
niveles_deseados <- c("Nunca", "Ocasional", "Frecuente")
niveles_presentes <- intersect(niveles_deseados, levels(datos$frecuencia_activismo))
datos$frecuencia_activismo <- factor(datos$frecuencia_activismo,
levels = niveles_presentes)
# ------------------------------------------------------------
# *** CORRECCIÓN DEL ERROR AQUÍ ***
# ------------------------------------------------------------
# En vez de: filter(complete.cases(.))
datos_limpios <- datos %>%
select(satisfaccion_convivencia, frecuencia_activismo) %>%
filter(complete.cases(across(everything())))
# ------------------------------------------------------------
# 4) Modelo ANOVA
modelo_anova <- aov(satisfaccion_convivencia ~ frecuencia_activismo,
data = datos_limpios)
summary(modelo_anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## frecuencia_activismo 2 15.0 7.478 0.88 0.418
## Residuals 97 824.2 8.497
# 5) Medias por grupo
resumen_medias <- datos_limpios %>%
group_by(frecuencia_activismo) %>%
summarise(
n = n(),
media = mean(satisfaccion_convivencia),
sd = sd(satisfaccion_convivencia),
.groups = "drop"
)
resumen_medias
## # A tibble: 3 × 4
## frecuencia_activismo n media sd
## <fct> <int> <dbl> <dbl>
## 1 Nunca 26 5.46 2.53
## 2 Ocasional 41 6.24 2.79
## 3 Frecuente 33 5.45 3.32
# 6) Gráfico boxplot
ggplot(datos_limpios,
aes(x = frecuencia_activismo,
y = satisfaccion_convivencia,
fill = frecuencia_activismo)) +
geom_boxplot() +
labs(
title = "Satisfacción con la convivencia según frecuencia de activismo",
x = "Frecuencia de activismo",
y = "Satisfacción con la convivencia"
) +
theme_minimal() +
theme(legend.position = "none")
Analisis El ANOVA no mostró diferencias significativas en la satisfacción con la convivencia según la frecuencia de activismo (p > 0.05). Esto indica que los niveles de convivencia percibida son similares entre quienes nunca participan, quienes lo hacen ocasionalmente y quienes participan con mayor frecuencia.
Por lo tanto no se rechaza la hipótesis nula (H₀). H₀: No existen diferencias significativas en la satisfacción con la convivencia según la frecuencia de activismo.
Prueba de T de medidas
H₀: No existen diferencias significativas entre el nivel medio de confianza social y el nivel medio de satisfacción con la convivencia en los mismos individuos.
H₁: Existen diferencias significativas entre el nivel medio de confianza social y el nivel medio de satisfacción con la convivencia en los mismos individuos.
# ==========================================================
install.packages(c("readxl", "ggplot2", "effectsize"))
## Installing packages into '/cloud/lib/x86_64-pc-linux-gnu-library/4.5'
## (as 'lib' is unspecified)
library(readxl)
library(ggplot2)
library(effectsize)
# Cargar la base de datos
datos <- read_excel("Base_Psicologia_Social.xlsx")
# Crear data frame en formato largo para graficar
datos_largo <- data.frame(
variable = factor(c(rep("Confianza Social", nrow(datos)),
rep("Satisfacción Convivencia", nrow(datos)))),
valor = c(datos$nivel_confianza_social,
datos$satisfaccion_convivencia)
)
# ========================
# 1. Verificación de normalidad
# ========================
diferencia <- datos$nivel_confianza_social - datos$satisfaccion_convivencia
shapiro.test(diferencia)
##
## Shapiro-Wilk normality test
##
## data: diferencia
## W = 0.97083, p-value = 0.02559
# ========================
# 2. Prueba t de medidas relacionadas
# ========================
t_pareada <- t.test(datos$nivel_confianza_social,
datos$satisfaccion_convivencia,
paired = TRUE)
print(t_pareada)
##
## Paired t-test
##
## data: datos$nivel_confianza_social and datos$satisfaccion_convivencia
## t = -2.1275, df = 99, p-value = 0.03587
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
## -1.58479046 -0.05520954
## sample estimates:
## mean difference
## -0.82
# ========================
# 3. Tamaño del efecto
# ========================
cohens_d(datos$nivel_confianza_social,
datos$satisfaccion_convivencia,
paired = TRUE)
## For paired samples, 'repeated_measures_d()' provides more options.
## Cohen's d | 95% CI
## --------------------------
## -0.21 | [-0.41, -0.01]
# ========================
# 4. Gráfica Boxplot
# ========================
ggplot(datos_largo, aes(x = variable, y = valor, fill = variable)) +
geom_boxplot(alpha = 0.8) +
labs(title = "Comparación: Confianza Social vs. Satisfacción con la Convivencia",
x = "",
y = "Nivel (escala psicométrica)") +
theme_minimal(base_size = 14) +
theme(legend.position = "none",
plot.title = element_text(hjust = 0.5))
Analisis La prueba t para muestras relacionadas evaluó si existe una diferencia significativa entre el nivel medio de confianza social y el nivel medio de satisfacción con la convivencia en los mismos individuos.
El resultado mostró que la diferencia entre ambas medias no es estadísticamente significativa (p > 0.05). Esto significa que los participantes tienen niveles similares de confianza social y de satisfacción con la convivencia.
No se rechaza la hipótesis nula (H₀).
H₀: No existen diferencias significativas entre el nivel medio de confianza social y el nivel medio de satisfacción con la convivencia en los mismos individuos.
Conclusion
El análisis estadístico mostró que, en esta muestra, los factores psicosociales evaluados —percepción de discriminación, confianza social, tolerancia y frecuencia de activismo— no presentan relaciones significativas con la percepción de convivencia ni con la participación en causas sociales. La convivencia percibida se mantuvo estable entre los diferentes grupos, y no hubo diferencias en función del activismo ni asociaciones con los niveles de confianza o discriminación. Esto sugiere que, para esta población, la convivencia y la participación social pueden estar influidas por otros elementos no considerados en el estudio, como las dinámicas comunitarias o factores institucionales. Aun así, los resultados permiten comprender mejor el contexto psicosocial de la muestra y resaltan la importancia de incorporar enfoques más amplios en futuras investigaciones.