Universidad del Norte
Curso: Estadística Inferencial
Taller #1 — Análisis Exploratorio de Datos (EDA)
Integrantes: Francesca Donado, Silvia Quintero
Profesor(a): Keyla Alba Molina
Fecha de entrega: 26 Agosto 2026
Este trabajo estudia una encuesta hecha a 100 adultos de Barranquilla
sobre cómo perciben la convivencia en su ciudad. Queríamos describir qué
tanto confían en los demás, qué tanto aceptan las diferencias, cuánta
discriminación sienten y qué tan satisfechos están con la convivencia, y
ver si estas cosas están relacionadas entre sí. Los datos vienen del
archivo Base_Psicologia_Social.xlsx, que tiene 100 filas
(personas) y 11 columnas (preguntas), sin datos faltantes. Para el
análisis solo usamos herramientas básicas de estadística: sacamos
promedios y otras medidas para las variables con números, hicimos tablas
para contar las respuestas de las variables con categorías, y dibujamos
gráficos (barras, histogramas y cajas). Los resultados muestran un grupo
de personas muy variado: la edad promedio es de 42 años, y la confianza
(4.96 de 10), la tolerancia (5.50 de 10) y la satisfacción (5.78 de 10)
quedan más o menos en la mitad de la escala. Las respuestas están muy
repartidas, o sea que la gente no piensa igual. No encontramos
respuestas raras o fuera de lo normal, y tampoco encontramos que unas
variables suban o bajen junto con otras. En conclusión, es un grupo
diverso donde estas percepciones no van de la mano, lo que nos da pistas
sobre qué pruebas hacer en un análisis más avanzado después.
(Resumen: 210 palabras.)
Encuesta; convivencia; confianza; promedios y gráficos; Barranquilla.
Vivir bien en comunidad es un tema importante para las ciudades de América Latina. Cosas como confiar en los vecinos, aceptar a quienes son diferentes y sentirse o no discriminado afectan la vida diaria de las personas. Por eso, un grupo de investigación de Psicología Social de la Universidad del Norte hizo una encuesta a 100 adultos de Barranquilla para conocer cómo viven la convivencia en su ciudad.
Saber qué piensan y cómo se comportan los ciudadanos ayuda a crear mejores programas y políticas para la ciudad. El Análisis Exploratorio de Datos (EDA) es el primer paso para lograrlo: antes de hacer análisis más complicados, primero hay que conocer bien los datos, revisar que estén completos y ver cómo se comportan.
La relación entre actitudes psicosociales y convivencia comunitaria ha sido ampliamente estudiada. Putnam (2000), en su libro Bowling Alone: The Collapse and Revival of American Community, plantea que el capital social (redes, normas de reciprocidad y confianza generalizada) facilita la cooperación ciudadana y fortalece el tejido comunitario, encontrando una fuerte correlación entre participación asociativa y confianza social. En el contexto latinoamericano, Ruiz, Meléndez y Seligson (2021), en un estudio publicado en Perfiles Latinoamericanos con datos del Barómetro de las Américas (LAPOP, 18 países), confirman que la confianza interpersonal predice significativamente la participación en organizaciones comunitarias. Respecto a la tolerancia hacia la diversidad, Allport (1954/1979), en su obra clásica The Nature of Prejudice, formuló la teoría del contacto intergrupal, según la cual el contacto sostenido entre grupos diferenciados reduce el prejuicio y favorece climas de mayor cohesión social. En cuanto a la percepción de discriminación, la CEPAL (2017), en su documento técnico La medición de la discriminación con base en el autorreporte: estado de situación, señala que esta variable subjetiva incide sobre la confianza institucional y la satisfacción con la vida en comunidad. Finalmente, Rovira-Sancho (2017), en la Revista Mexicana de Sociología, documenta cómo las redes sociodigitales se han consolidado como un espacio de movilización que no siempre coincide con el compromiso cívico de tipo asociativo, evidenciando perfiles diferenciados de participación ciudadana. En conjunto, estos antecedentes muestran que confianza social, tolerancia, percepción de discriminación y activismo digital son dimensiones interrelacionadas que inciden en la convivencia comunitaria, aunque existe poca evidencia de cómo se articulan simultáneamente a nivel individual en contextos urbanos como Barranquilla, vacío que este estudio busca abordar.
¿Cuáles son las principales características de las percepciones psicosociales y la satisfacción con la convivencia comunitaria de los ciudadanos de Barranquilla, y qué patrones y relaciones se observan entre las variables analizadas?
Analizar descriptivamente las percepciones psicosociales (confianza social, tolerancia a las diferencias, percepción de discriminación) y la satisfacción con la convivencia comunitaria de una muestra de ciudadanos de Barranquilla, identificando patrones, variabilidad y posibles relaciones entre las variables.
Análisis Exploratorio de Datos (EDA). Es un conjunto de herramientas para resumir y entender un conjunto de datos usando tablas y gráficos (Tukey, 1977). Sirve para conocer los datos y detectar cosas raras antes de hacer análisis más avanzados.
Variables cualitativas y cuantitativas. Las cualitativas son las que responden con categorías o palabras (por ejemplo, el sexo o el nivel educativo). Las cuantitativas son las que responden con números (por ejemplo, la edad o la satisfacción de 1 a 10).
Medidas de tendencia central. Nos dicen cuál es el valor “típico” de una variable. La media es el promedio. La mediana es el valor que queda justo en el medio cuando ordenamos todos los datos. La moda es el valor que más se repite.
Medidas de dispersión. Nos dicen si los datos están juntos o muy separados entre sí. El rango es la diferencia entre el valor más grande y el más pequeño. La desviación estándar mide qué tanto se alejan los datos del promedio. El coeficiente de variación es esa dispersión en porcentaje, y sirve para comparar variables que usan escalas distintas.
Cuartiles y resumen de cinco números. Los cuartiles (\(Q_1\), \(Q_2\), \(Q_3\)) parten los datos ordenados en cuatro grupos iguales. El resumen de cinco números (el mínimo, \(Q_1\), la mediana, \(Q_3\) y el máximo) describe los datos de forma corta y clara.
Valores atípicos (outliers). Son datos que se salen mucho de lo normal. Para encontrarlos se usa el rango intercuartílico \(RI = Q_3 - Q_1\) y dos límites: uno bajo \(L_i = Q_1 - 1.5\,RI\) y uno alto \(L_s = Q_3 + 1.5\,RI\). Los datos que caen por fuera de esos límites pueden ser atípicos y hay que revisarlos antes de hacer nada con ellos.
Tablas de frecuencia y gráficos. Las tablas de frecuencia cuentan cuántas veces aparece cada categoría (en cantidad y en porcentaje). Los histogramas muestran cómo se reparten los números; los boxplots (gráficos de caja) muestran el resumen de cinco números y los atípicos; los gráficos de barras comparan categorías.
Base_Psicologia_Social.xlsx.edad,
percepcion_discriminacion,
nivel_confianza_social,
tolerancia_diferencias,
satisfaccion_convivencia.sexo,
nivel_educativo, participa_organizaciones,
apoyo_causas_sociales, frecuencia_activismo,
uso_redes_protesta.readxl,
dplyr, ggplot2, psych,
corrplot, janitor, knitr),
documento reproducible en R Markdown.# Instalar una sola vez (descomentar si es necesario):
# install.packages(c("readxl","dplyr","ggplot2","psych",
# "corrplot","janitor","knitr"))
library(readxl) # Leer archivos Excel
library(dplyr) # Manipulación de datos
library(ggplot2) # Gráficos
library(psych) # Estadísticos descriptivos
library(corrplot) # Matriz de correlaciones
library(janitor) # Tablas de frecuencia y limpieza de nombres
library(knitr) # Tablas con kable()
# Ruta relativa: el Excel está en la misma carpeta que este .Rmd
datos <- read_excel("Base_Psicologia_Social.xlsx")
datos <- clean_names(datos)
# Convertimos las variables categóricas a factor
datos <- datos %>%
mutate(
sexo = factor(sexo),
nivel_educativo = factor(nivel_educativo,
levels = c("Secundaria","Técnico",
"Universitario","Postgrado"),
ordered = TRUE),
participa_organizaciones = factor(participa_organizaciones),
apoyo_causas_sociales = factor(apoyo_causas_sociales),
frecuencia_activismo = factor(frecuencia_activismo,
levels = c("Nunca","Ocasional","Frecuente"),
ordered = TRUE),
uso_redes_protesta = factor(uso_redes_protesta)
)
dim(datos) # filas y columnas
## [1] 100 11
str(datos) # tipos de variable
## tibble [100 × 11] (S3: tbl_df/tbl/data.frame)
## $ edad : num [1:100] 49 18 52 56 63 35 45 20 22 64 ...
## $ sexo : Factor w/ 3 levels "Femenino","Masculino",..: 2 2 3 2 1 2 1 2 2 2 ...
## $ nivel_educativo : Ord.factor w/ 4 levels "Secundaria"<"Técnico"<..: 1 3 2 2 2 3 4 2 4 4 ...
## $ participa_organizaciones : Factor w/ 2 levels "No","Sí": 2 2 2 1 2 1 1 1 2 2 ...
## $ percepcion_discriminacion: num [1:100] 6 9 7 10 10 7 5 2 9 5 ...
## $ nivel_confianza_social : num [1:100] 9 4 6 10 1 3 4 6 2 4 ...
## $ tolerancia_diferencias : num [1:100] 2 2 10 8 4 5 4 10 2 4 ...
## $ apoyo_causas_sociales : Factor w/ 2 levels "No","Sí": 1 2 1 1 1 2 1 1 2 1 ...
## $ frecuencia_activismo : Ord.factor w/ 3 levels "Nunca"<"Ocasional"<..: 3 3 3 1 3 2 2 3 1 2 ...
## $ uso_redes_protesta : Factor w/ 2 levels "No","Sí": 2 2 2 2 2 2 2 2 1 2 ...
## $ satisfaccion_convivencia : num [1:100] 5 1 3 4 8 9 2 10 4 9 ...
tipos <- data.frame(
Variable = names(datos),
Tipo = sapply(datos, function(x) class(x)[1])
)
kable(tipos, caption = "Tabla 1. Variables de la base y su tipo de dato")
| Variable | Tipo | |
|---|---|---|
| edad | edad | numeric |
| sexo | sexo | factor |
| nivel_educativo | nivel_educativo | ordered |
| participa_organizaciones | participa_organizaciones | factor |
| percepcion_discriminacion | percepcion_discriminacion | numeric |
| nivel_confianza_social | nivel_confianza_social | numeric |
| tolerancia_diferencias | tolerancia_diferencias | numeric |
| apoyo_causas_sociales | apoyo_causas_sociales | factor |
| frecuencia_activismo | frecuencia_activismo | ordered |
| uso_redes_protesta | uso_redes_protesta | factor |
| satisfaccion_convivencia | satisfaccion_convivencia | numeric |
La base contiene 100 filas (observaciones) y 11 columnas (variables): cinco numéricas y seis categóricas.
na_resumen <- colSums(is.na(datos))
kable(data.frame(Variable = names(na_resumen), NAs = as.integer(na_resumen)),
caption = "Tabla 2. Valores faltantes por variable")
| Variable | NAs |
|---|---|
| edad | 0 |
| sexo | 0 |
| nivel_educativo | 0 |
| participa_organizaciones | 0 |
| percepcion_discriminacion | 0 |
| nivel_confianza_social | 0 |
| tolerancia_diferencias | 0 |
| apoyo_causas_sociales | 0 |
| frecuencia_activismo | 0 |
| uso_redes_protesta | 0 |
| satisfaccion_convivencia | 0 |
No falta ningún dato (NA) en ninguna variable. Por eso no tuvimos que rellenar ni borrar nada, y todos los cálculos se hacen con las 100 respuestas completas.
vars_numericas <- datos %>%
select(edad, percepcion_discriminacion, nivel_confianza_social,
tolerancia_diferencias, satisfaccion_convivencia)
kable(round(describe(vars_numericas)[, c("n","mean","sd","median",
"min","max","skew","kurtosis")], 2),
caption = "Tabla 3. Estadísticos descriptivos de las variables numéricas")
| n | mean | sd | median | min | max | skew | kurtosis | |
|---|---|---|---|---|---|---|---|---|
| edad | 100 | 42.22 | 14.51 | 45 | 18 | 65 | -0.23 | -1.26 |
| percepcion_discriminacion | 100 | 6.23 | 2.93 | 7 | 1 | 10 | -0.41 | -1.08 |
| nivel_confianza_social | 100 | 4.96 | 2.56 | 5 | 1 | 10 | 0.28 | -0.99 |
| tolerancia_diferencias | 100 | 5.50 | 2.88 | 5 | 1 | 10 | 0.03 | -1.34 |
| satisfaccion_convivencia | 100 | 5.78 | 2.91 | 6 | 1 | 10 | -0.05 | -1.17 |
# Moda, rango, varianza, coeficiente de variación y cuartiles
moda <- function(x){ ux <- unique(x); ux[which.max(tabulate(match(x, ux)))] }
resumen_extra <- data.frame(
Variable = names(vars_numericas),
Moda = sapply(vars_numericas, moda),
Rango = sapply(vars_numericas, function(x) max(x) - min(x)),
Varianza = round(sapply(vars_numericas, var), 2),
DesvEst = round(sapply(vars_numericas, sd), 2),
CV_pct = round(sapply(vars_numericas, function(x) sd(x)/mean(x)*100), 1),
Q1 = sapply(vars_numericas, function(x) quantile(x, 0.25)),
Q2 = sapply(vars_numericas, median),
Q3 = sapply(vars_numericas, function(x) quantile(x, 0.75))
)
kable(resumen_extra, row.names = FALSE,
caption = "Tabla 4. Moda, dispersión, coeficiente de variación y cuartiles")
| Variable | Moda | Rango | Varianza | DesvEst | CV_pct | Q1 | Q2 | Q3 |
|---|---|---|---|---|---|---|---|---|
| edad | 52 | 47 | 210.62 | 14.51 | 34.4 | 28.00 | 45 | 53.25 |
| percepcion_discriminacion | 10 | 9 | 8.58 | 2.93 | 47.0 | 4.00 | 7 | 9.00 |
| nivel_confianza_social | 5 | 9 | 6.54 | 2.56 | 51.6 | 3.00 | 5 | 7.00 |
| tolerancia_diferencias | 3 | 9 | 8.31 | 2.88 | 52.4 | 3.00 | 5 | 8.00 |
| satisfaccion_convivencia | 10 | 9 | 8.48 | 2.91 | 50.4 | 3.75 | 6 | 8.00 |
Cómo leer estas tablas. La media y la mediana nos dicen el valor típico. La desviación estándar y el coeficiente de variación (CV) nos dicen si los datos están muy repartidos. Los cuartiles nos dicen en qué punto de la escala se ubican los datos. Un CV alto (cercano al 50 %) significa que las respuestas están muy repartidas.
ggplot(datos, aes(x = edad)) +
geom_histogram(binwidth = 5, fill = "#2E86AB", color = "white") +
labs(title = "Figura 1. Distribución de la edad",
x = "Edad (años)", y = "Frecuencia") +
theme_minimal()
ggplot(datos, aes(x = satisfaccion_convivencia)) +
geom_histogram(binwidth = 1, fill = "#A23B72", color = "white") +
labs(title = "Figura 2. Satisfacción con la convivencia",
x = "Satisfacción (escala 1-10)", y = "Frecuencia") +
theme_minimal()
kable(tabyl(datos$sexo),
caption = "Tabla 5. Distribución por sexo")
| datos$sexo | n | percent |
|---|---|---|
| Femenino | 40 | 0.40 |
| Masculino | 51 | 0.51 |
| Otro | 9 | 0.09 |
kable(tabyl(datos$nivel_educativo),
caption = "Tabla 6. Distribución por nivel educativo")
| datos$nivel_educativo | n | percent |
|---|---|---|
| Secundaria | 35 | 0.35 |
| Técnico | 21 | 0.21 |
| Universitario | 23 | 0.23 |
| Postgrado | 21 | 0.21 |
kable(tabyl(datos$participa_organizaciones),
caption = "Tabla 7. Participación en organizaciones")
| datos$participa_organizaciones | n | percent |
|---|---|---|
| No | 56 | 0.56 |
| Sí | 44 | 0.44 |
kable(tabyl(datos$frecuencia_activismo),
caption = "Tabla 8. Frecuencia de activismo")
| datos$frecuencia_activismo | n | percent |
|---|---|---|
| Nunca | 26 | 0.26 |
| Ocasional | 41 | 0.41 |
| Frecuente | 33 | 0.33 |
ggplot(datos, aes(x = nivel_educativo, fill = nivel_educativo)) +
geom_bar() +
labs(title = "Figura 4. Nivel educativo de los participantes",
x = "Nivel educativo", y = "Cantidad de personas") +
theme_minimal() + theme(legend.position = "none")
ggplot(datos, aes(x = frecuencia_activismo, fill = frecuencia_activismo)) +
geom_bar() +
labs(title = "Figura 5. Frecuencia de activismo social",
x = "Frecuencia de activismo", y = "Cantidad de personas") +
theme_minimal() + theme(legend.position = "none")
detectar_outliers <- function(x){
q1 <- quantile(x, 0.25); q3 <- quantile(x, 0.75)
ri <- q3 - q1
li <- q1 - 1.5*ri; ls <- q3 + 1.5*ri
sum(x < li | x > ls)
}
outliers <- data.frame(
Variable = names(vars_numericas),
N_Atipicos = sapply(vars_numericas, detectar_outliers)
)
kable(outliers, row.names = FALSE,
caption = "Tabla 9. Número de valores atípicos por variable (criterio 1.5·RI)")
| Variable | N_Atipicos |
|---|---|
| edad | 0 |
| percepcion_discriminacion | 0 |
| nivel_confianza_social | 0 |
| tolerancia_diferencias | 0 |
| satisfaccion_convivencia | 0 |
boxplot(datos$satisfaccion_convivencia, horizontal = TRUE,
main = "Figura 6. Detección de posibles valores atípicos",
xlab = "Satisfacción con la convivencia (1-10)",
col = "#2E86AB")
Aplicando el criterio del rango intercuartílico (\(L_i = Q_1 - 1.5\,RI\); \(L_s = Q_3 + 1.5\,RI\)), no se detectan valores atípicos en ninguna de las variables numéricas. Como las escalas están acotadas (edad entre 18 y 65; el resto entre 1 y 10), todos los valores caen dentro de rangos plausibles y se consideran observaciones válidas.
matriz_cor <- cor(vars_numericas, use = "complete.obs")
kable(round(matriz_cor, 2),
caption = "Tabla 10. Matriz de correlación entre variables numéricas")
| edad | percepcion_discriminacion | nivel_confianza_social | tolerancia_diferencias | satisfaccion_convivencia | |
|---|---|---|---|---|---|
| edad | 1.00 | -0.15 | 0.06 | 0.01 | 0.06 |
| percepcion_discriminacion | -0.15 | 1.00 | 0.00 | 0.00 | -0.07 |
| nivel_confianza_social | 0.06 | 0.00 | 1.00 | 0.04 | 0.01 |
| tolerancia_diferencias | 0.01 | 0.00 | 0.04 | 1.00 | 0.07 |
| satisfaccion_convivencia | 0.06 | -0.07 | 0.01 | 0.07 | 1.00 |
corrplot(matriz_cor, method = "color", type = "upper",
addCoef.col = "black", tl.col = "black", tl.srt = 45,
mar = c(0,0,1,0))
ggplot(datos, aes(x = percepcion_discriminacion, y = satisfaccion_convivencia)) +
geom_point(color = "#2E86AB", alpha = 0.6) +
geom_smooth(method = "lm", color = "#A23B72", se = TRUE) +
labs(title = "Figura 7. Percepción de discriminación vs. satisfacción",
x = "Percepción de discriminación (1-10)",
y = "Satisfacción con la convivencia (1-10)") +
theme_minimal()
Quiénes respondieron la encuesta. La edad promedio es de 42 años, pero hay personas desde los 18 hasta los 65, así que es un grupo muy variado en edad. La mayoría son hombres (51 %), luego mujeres (40 %) y “Otro” (9 %). En estudios, el grupo más grande solo llegó hasta secundaria (35 %), y los demás niveles (técnico, universitario y postgrado) están bastante parejos, cada uno alrededor del 21–23 %.
Cómo perciben la convivencia. La discriminación es la percepción con el promedio más alto (6.23 de 10), lo que sugiere que muchas personas sienten un nivel medio-alto de discriminación a su alrededor. La confianza en los demás (4.96) y la tolerancia a las diferencias (5.50) quedan más o menos en la mitad de la escala. La satisfacción con la convivencia da 5.78 en promedio. En todas estas respuestas hay mucha variedad de opiniones: la gente no piensa igual, las respuestas están muy repartidas.
Forma de los datos. Los histogramas muestran que los datos están bastante repartidos y no se amontonan en un solo valor. Esto encaja con la variedad de opiniones que mencionamos.
Comportamiento social. La mayoría no participa en organizaciones (56 %), y el apoyo a causas sociales está casi dividido en dos (48 % sí, 52 % no). Lo más común es ser activista de vez en cuando (41 %), y el 60 % usa redes sociales para protestar o manifestarse.
Datos faltantes y datos raros. No falta ningún dato ni encontramos valores raros (fuera de lo normal), así que trabajamos con toda la información sin tener que quitar nada.
¿Las variables están relacionadas? Revisamos si unas respuestas suben o bajan junto con otras, y los números salieron casi en cero. Esto quiere decir que, en este grupo, las percepciones no van de la mano: por ejemplo, que alguien confíe más en los demás no significa que también sea más tolerante o esté más satisfecho. El gráfico de puntos entre discriminación y satisfacción confirma esto, porque la línea sale casi plana (sin subida ni bajada clara).
Los datos son de buena calidad: las 100 respuestas están completas, sin datos faltantes ni datos raros. Esto nos permite describir al grupo con confianza y responde a la primera parte de nuestra pregunta.
El grupo de Barranquilla es muy variado en edad y en estudios, con más hombres y con la secundaria como nivel educativo más común. Así queda descrito el perfil de las personas, que era uno de nuestros objetivos.
La confianza, la tolerancia y la satisfacción con la convivencia quedan más o menos en la mitad de la escala, pero con mucha variedad de opiniones: la gente no piensa igual. La discriminación es la percepción con el promedio más alto.
Las variables con números no están relacionadas entre sí: no encontramos que unas suban o bajen junto con otras. Esto responde a la parte de la pregunta sobre las relaciones entre variables.
Como no hubo relaciones claras entre las escalas, para un análisis más avanzado en el futuro sería mejor comparar grupos (por ejemplo, ver si la satisfacción cambia según el nivel educativo o según si la persona participa en organizaciones) en lugar de buscar relaciones directas entre las escalas.
Allport, G. W. (1979). The nature of prejudice (25th anniversary ed.). Addison-Wesley Publishing Company. (Trabajo original publicado en 1954)
Comisión Económica para América Latina y el Caribe. (2017). La medición de la discriminación con base en el autorreporte: Estado de situación (LC/MEX/TS.2017/10). Naciones Unidas.
Putnam, R. D. (2000). Bowling alone: The collapse and revival of American community. Simon & Schuster.
Rovira-Sancho, G. (2017). 20 años de estudio sobre medios de movimientos sociales, internet y redes sociodigitales en América Latina. Revista Mexicana de Sociología.
Ruiz, N., Meléndez, C., & Seligson, M. A. (2021). Participación comunitaria, confianza y percepción de derechos en Latinoamérica y el Caribe: Evidencia de 18 países. Perfiles Latinoamericanos, 29(58), 1–28.
Tukey, J. W. (1977). Exploratory data analysis. Addison-Wesley.
| Aspecto | Información |
|---|---|
| Uso de IA | Sí |
| Herramienta | Asistente de IA institucional / Claude |
| Finalidad | Generación y comentado del código en R, apoyo en redacción y estructura del informe |
| Porcentaje estimado | 30 % |