Correlaciones y tablas de contingencia

Spearman, Kendall y análisis de asociaciones

Sesión del jueves, 8 de octubre de 2026

En este práctico aprenderemos a elegir e interpretar correlaciones (Spearman y Kendall) y a construir e interpretar tablas de contingencia utilizando datos reales.

Para comenzar · Compartamos nuestros hallazgos

En el práctico anterior exploraron asociaciones entre variables utilizando datos de CASEN, CEP o LAPOP. Antes de avanzar, retomemos esa experiencia:

¿Qué variables eligieron, qué coeficiente utilizaron y qué concluyeron a partir de los resultados?

Invitamos a un grupo a compartir brevemente sus hallazgos con el curso.

1 Correlaciones: elegir e interpretar

1.1 Spearman: asociación entre rangos

¿Cuándo utilizamos Spearman?

Spearman mide cómo se relacionan los rangos de dos variables. Es útil con variables ordinales y también con variables cuantitativas cuando nos interesa una relación monotónica (al aumentar una variable, la otra tiende a aumentar o disminuir, aunque no siga una línea recta).

Por ejemplo, podemos preguntar si las personas con más años de escolaridad tienden a tener mayores ingresos. Spearman compara sus posiciones, en lugar de calcular la relación lineal entre los valores originales.

Trabajaremos con cinco personas ficticias. Ambas variables son ordinales: las categorías se pueden ordenar, pero las distancias entre ellas no necesariamente son iguales.

  • Categorías de X: 1 Básica incompleta · 2 Básica completa · 3 Media incompleta · 4 Media completa · 5 Educación superior.

  • Categorías de Y: 1 Muy bajo · 2 Bajo · 3 Medio · 4 Alto · 5 Muy alto.

Observa: ¿las personas ocupan siempre la misma posición en ambas variables?

Persona Nivel educacional (X) Estatus social subjetivo (Y)
A 1 1
B 2 3
C 3 2
D 4 5
E 5 4
Nota

Lineal: sigue aproximadamente una recta. Monotónica: mantiene una tendencia ascendente o descendente, aunque sea curva.

1.1.1 Exploremos qué hace Spearman

Laboratorio 1 · De valores a rangos

Escenario actual: Relación original

Observa las cinco personas. ¿Quién tiene mayor nivel educacional? ¿Quién tiene mayor estatus subjetivo?

Los mismos casos, dos variables

Persona X Y
A 1 1
B 2 3
C 3 2
D 4 5
E 5 4

Selecciona una persona para seguir sus valores.

Valores originales

Las barras muestran los códigos ordinales 1–5.

Importante¿Cómo interpretamos el resultado de Spearman?

En los cinco casos, \(\rho_s=0{,}80\) indica una asociación positiva elevada entre rangos. Quienes tienen mayor nivel educacional tienden a ubicarse más alto en estatus subjetivo, aunque el orden no coincide siempre.

Este resultado describe únicamente los cinco casos ficticios. No demuestra causalidad ni permite generalizar a una población.

1.2 Kendall: comparación entre pares

¿Cuándo utilizamos Kendall?

Kendall tau-b compara personas de dos en dos: registra si sus órdenes coinciden (pares concordantes), se invierten (discordantes) o presentan empates. Es útil cuando interesa interpretar esas comparaciones, especialmente con escalas ordinales.

Spearman y Kendall pueden ser adecuados para las mismas variables. Los empates no obligan a utilizar Kendall; tau-b ofrece una forma específica de considerarlos.

Laboratorio 2 · Comparar dos personas

Escenario actual: Relación original

Cinco personas ficticias; nivel educacional y estatus social subjetivo, con categorías ordenadas de 1 a 5. Kendall las compara de dos en dos: observa si el orden coincide, se invierte o presenta un empate.

Si una persona tiene mayor nivel educacional que otra, ¿también tiene mayor estatus subjetivo?

Observemos dos personas: ¿quién tiene mayor nivel educacional? ¿Quién tiene mayor estatus subjetivo?

Nivel educacional (X)
A 1
B 2
Mayor: B
Estatus subjetivo (Y)
A 1
B 3
Mayor: B

Mayor nivel educacional: B · Mayor estatus subjetivo: B.

Importante¿Cómo interpretamos el resultado de Kendall?

En el escenario original, \(\tau_b=0{,}60\) indica una asociación ordinal positiva. De diez pares posibles, ocho son concordantes y dos discordantes: habitualmente, quien tiene mayor nivel educacional también ocupa una categoría mayor de estatus subjetivo.

Importante: 0,60 no significa 60% de pares concordantes. Aquí son 8 de 10. El coeficiente tampoco demuestra causalidad ni debe compararse directamente con el valor de Spearman.

Nota¿Qué hace Kendall tau-b con los empates?

Kendall tau-b compara todos los pares de personas y los clasifica como concordantes, discordantes o empatados. Si dos personas tienen el mismo valor en una variable, ese par se considera un empate: no suma como concordante ni como discordante. Sin embargo, tau-b tiene en cuenta esos empates al ajustar el denominador de su fórmula. Así, el coeficiente refleja la asociación entre ambas variables considerando que algunos pares no pueden ordenarse completamente.

¿Cómo elegimos el coeficiente?

Spearman y Kendall permiten estudiar asociaciones entre variables ordenadas, pero utilizan procedimientos diferentes:

  • Spearman: lo elegimos cuando queremos saber si las personas que ocupan posiciones más altas en una variable también tienden a ocupar posiciones más altas (o más bajas) en otra. Para ello, compara los rangos de ambas variables.

  • Kendall tau-b: lo elegimos cuando nos interesa comparar personas de dos en dos y observar si sus posiciones coinciden (concordancia), se invierten (discordancia) o presentan empates. Es especialmente útil con variables ordinales de pocas categorías, donde pueden existir muchos empates.

¿Podemos utilizar ambos? Sí. Los dos son adecuados para estudiar asociaciones ordinales. La elección depende de qué queremos analizar y de las características de los datos. Los empates no obligan a usar Kendall, pues Spearman también puede trabajar con rangos empatados.

En nuestros cinco casos, Spearman = 0,80 y Kendall = 0,60. Los resultados son distintos porque cada coeficiente resume el orden de manera diferente. No debemos comparar directamente sus valores para concluir que uno muestra una asociación más débil que el otro.

1.3 Recordemos las escalas de medición

Antes de elegir una correlación, revisemos qué información contienen las variables.

Escala ¿Qué nos permite hacer? Ejemplos
Nominal Distinguir categorías sin orden. País, sexo, nacionalidad.
Ordinal Ordenar categorías, sin asumir distancias iguales entre ellas. Nivel educacional, satisfacción, estatus social subjetivo.
Intervalo Comparar diferencias iguales, sin un cero absoluto. Temperatura en °C o °F.
Razón Comparar diferencias y proporciones; cero significa ausencia de la cantidad. Edad, ingreso en pesos, distancia, años de escolaridad.

Ojo: los números no siempre son cantidades. nivel_educ (categorías ordenadas) es ordinal, mientras que escolaridad (cantidad de años) es de razón.

¿Cuándo conviene cada coeficiente?

Reconocer la escala es el primer paso. Después debemos considerar qué relación queremos estudiar.

Coeficiente ¿Cuándo conviene utilizarlo?
Pearson Para estudiar una relación lineal entre variables cuantitativas.
Spearman Para estudiar si los rangos tienden a aumentar o disminuir juntos.
Kendall tau-b Para estudiar la concordancia entre pares, considerando también los empates.

Recuerda: la escala de medición orienta la elección, pero no determina por sí sola el coeficiente.

1.3.1 ¿Qué correlación utilizarías?

En cada situación, clasifica X e Y (nominal, ordinal, intervalo o razón) y elige un coeficiente. La explicación indicará si existen otras respuestas válidas.

Situación 1 de 6

Reconoce las variables

Variable X
Variable Y

Sin nota. Seguiremos con una aplicación a CEP 2026.

1.4 Correlación con datos reales: CEP 2026

Trabajaremos con la Encuesta CEP 2026:

¿Existe asociación entre el interés político y la confianza en los partidos políticos?

1.4.1 Carguemos CEP

# Cargamos la base de datos CEP 2026
load(url("https://github.com/cursos-metodos-facso/datos-ejemplos/raw/main/cep_2026.rdata"))

# Seleccionamos las variables que utilizaremos
cep <- datos_cep[, c("interes_pol", "conf_partidos", "mujer")]

# Reemplazamos las respuestas no válidas por NA
cep$interes_pol[!cep$interes_pol %in% 1:5] <- NA
cep$conf_partidos[!cep$conf_partidos %in% 1:4] <- NA
cep$mujer[!cep$mujer %in% 0:1] <- NA

# Conservamos los casos con respuestas válidas en ambas variables
datos_cor <- na.omit(cep[, c("interes_pol", "conf_partidos")])

# Revisamos cuántos casos tenemos
nrow(cep)       # Total de registros
[1] 1466
nrow(datos_cor) # Casos válidos para la correlación
[1] 1435

interes_pol (1–5) y conf_partidos (1–4) son ordinales: sus números indican orden, no distancias iguales.

1.4.2 Elijamos y calculemos

Antes de ver el resultado:¿elegirías Pearson, Spearman o Kendall? ¿Por qué?

Usaremos Spearman para estudiar los rangos y calcularemos Kendall tau-b como alternativa válida. Planteamos las siguientes hipótesis:

\[ H_0: \rho_S = 0 \qquad H_A: \rho_S \neq 0 \]

Donde \(\rho_S\) representa la correlación de Spearman en la población.

  • Hipótesis nula (\(H_0\)): la correlación de Spearman en la población es igual a cero.
  • Hipótesis alternativa (\(H_A\)): la correlación de Spearman en la población es distinta de cero.
# Seleccionamos las dos variables
x <- datos_cor$interes_pol
y <- datos_cor$conf_partidos

# Calculamos las correlaciones
spearman <- cor.test(x, y, method = "spearman", exact = FALSE)
kendall <- cor.test(x, y, method = "kendall", exact = FALSE)

# Organizamos los resultados en una tabla
resultados <- data.frame(
  Coeficiente = c("Spearman", "Kendall tau-b"),
  Resultado = round(c(spearman$estimate, kendall$estimate), 3),
  p = format.pval(c(spearman$p.value, kendall$p.value),
                  digits = 3, eps = 0.001),
  N = nrow(datos_cor)
)

# Mostramos la tabla
knitr::kable(resultados, row.names = FALSE)
Coeficiente Resultado p N
Spearman 0.267 <0.001 1435
Kendall tau-b 0.240 <0.001 1435

Interpreta: ¿qué indica el signo de Spearman? ¿El valor p es menor que 0,05? Responde a la pregunta inicial sin afirmar causalidad.

Revisar la interpretación

En estos registros observamos una asociación positiva y de pequeña magnitud (Spearman ≈ 0,267; \(p<0{,}001\); 1.435 casos válidos). Con \(\alpha=0{,}05\), rechazamos \(H_0\) para el contraste presentado. Asociación no implica causalidad.

Nota: es un análisis sin ponderadores ni ajuste por diseño muestral; sus valores p no representan inferencia oficial de la encuesta.

2 Tablas de contingencia y asociación

2.1 ¿Qué es una tabla de contingencia?

Cambiemos la pregunta, manteniendo CEP 2026:

¿Cómo se distribuye la confianza en los partidos políticos según sexo?

Una tabla de contingencia cuenta cuántas personas pertenecen a cada combinación de categorías.

2.1.1 Construyamos una tabla con CEP

# Conservamos los casos con respuestas válidas
datos_tabla <- na.omit(cep[, c("mujer", "conf_partidos")])

# Asignamos nombres a las categorías
sexo <- factor(datos_tabla$mujer, levels = 0:1,
               labels = c("Hombres", "Mujeres"))

confianza <- factor(datos_tabla$conf_partidos, levels = 1:4,
                    labels = c("1 · Nada", "2 · Poca", "3 · Bastante", "4 · Mucha"))

# Construimos la tabla de contingencia
tabla_cep <- table(sexo, confianza)

# Agregamos los totales
tabla_total <- addmargins(tabla_cep, FUN = list(Total = sum), quiet = TRUE)

# Mostramos la tabla
knitr::kable(tabla_total,
             caption = "CEP 2026 · Confianza en partidos según sexo (sin ponderar)") # Muestra la tabla
CEP 2026 · Confianza en partidos según sexo (sin ponderar)
1 · Nada 2 · Poca 3 · Bastante 4 · Mucha Total
Hombres 277 216 32 6 531
Mujeres 477 401 23 8 909
Total 754 617 55 14 1440
  • La base del práctico ordena las respuestas de 1 = Nada a 4 = Mucha.
  • La tabla tiene 2 filas y 4 columnas. ¿Qué representa el 277? Hombres que respondieron «Nada de confianza».
  • El total es de 1.440 casos válidos, diferente al N de la correlación.

¿Qué tipos de tablas existen?

Tipo Categorías de las variables
2 × 2 Dos y dos
2 × 3 Dos y tres
2 × 4 Dos y cuatro (CEP)
R × C Cualquier número de filas y columnas

Practiquemos · Construyamos una tabla 2 × 2

Hasta ahora construimos una tabla 2 × 4. Ahora agruparemos la confianza en «Nada o poca» (niveles 1–2) y «Bastante o mucha» (niveles 3–4) para comparar hombres y mujeres.

Completa los espacios ___, ejecuta el código en R y responde las preguntas. Si necesitas ayuda, abre la pista.

# 1. Agrupamos los niveles de confianza
confianza_2 <- ifelse(datos_tabla$conf_partidos <= 2,
                      "Nada o poca", "Bastante o mucha")
confianza_2 <- factor(confianza_2,
                      levels = c("Nada o poca", "Bastante o mucha"))

# 2. Construimos una tabla 2 × 2
tabla_2x2 <- table(___, ___)

# 3. Agregamos totales y mostramos la tabla
tabla_total_2x2 <- addmargins(tabla_2x2, FUN = list(Total = sum),
                              quiet = TRUE)
knitr::kable(___, caption = "CEP 2026 · Confianza agrupada")

# 4. Calculamos porcentajes por fila
porcentajes_2x2 <- prop.table(___, ___) * 100

# 5. Mostramos los porcentajes con un decimal
knitr::kable(round(porcentajes_2x2, 1),
             caption = "CEP 2026 · Porcentajes por fila (%)")

Observa tus resultados:

a) ¿Cuántas filas y columnas tiene la nueva tabla, sin contar los totales?

b) ¿Cuántos hombres respondieron «Bastante o mucha» confianza?

c) ¿En qué grupo es mayor el porcentaje de «Bastante o mucha» confianza: hombres o mujeres?

¿Necesitas una pista?
  • table() cruza sexo (filas) con confianza_2 (columnas).
  • addmargins() agrega totales; knitr::kable() presenta la tabla que acabas de guardar.
  • prop.table() transforma frecuencias en proporciones. Con 1 calcula por fila; con * 100 obtiene los porcentajes.
Ver resultados y comprobar mi código

Código completo

# 1. Agrupamos los niveles de confianza
confianza_2 <- ifelse(datos_tabla$conf_partidos <= 2,
                      "Nada o poca", "Bastante o mucha")
confianza_2 <- factor(confianza_2,
                      levels = c("Nada o poca", "Bastante o mucha"))

# 2. Construimos la tabla 2 × 2
tabla_2x2 <- table(sexo, confianza_2)

# 3. Agregamos los totales
tabla_total_2x2 <- addmargins(tabla_2x2, FUN = list(Total = sum),
                              quiet = TRUE)

# 4. Calculamos porcentajes por fila
porcentajes_2x2 <- prop.table(tabla_2x2, 1) * 100

# 5. Mostramos las dos tablas
knitr::kable(tabla_total_2x2, caption = "CEP 2026 · Confianza agrupada")
knitr::kable(round(porcentajes_2x2, 1),
             caption = "CEP 2026 · Porcentajes por fila (%)")

Tabla de frecuencias con totales

CEP 2026 · Confianza agrupada (sin ponderar)
Nada o poca Bastante o mucha Total
Hombres 493 38 531
Mujeres 878 31 909
Total 1371 69 1440

Tabla de porcentajes por fila

CEP 2026 · Porcentajes por fila (%)
Nada o poca Bastante o mucha
Hombres 92.8 7.2
Mujeres 96.6 3.4

Comprobemos: a) Es una tabla 2 × 2. b) 38 hombres respondieron «Bastante o mucha». c) Ese porcentaje es mayor entre los hombres (7,2 %) que entre las mujeres (3,4 %).

Agrupar facilita la lectura, pero pierde detalle sobre las respuestas originales.

2.2 ¿100% de quiénes?

Una frecuencia indica cuántas personas dieron una respuesta. Un porcentaje indica qué parte de un grupo representan esas personas. Para calcularlo, primero preguntamos: ¿de qué grupo estamos hablando? Ese grupo es el denominador y representa el 100 %.

Tomemos siempre la misma celda: 277 hombres que respondieron «Nada de confianza».

Pregunta Cálculo Resultado
Entre los hombres, ¿qué porcentaje respondió «Nada»? 277 / 531 × 100 52,2 %
Entre quienes respondieron «Nada», ¿qué porcentaje son hombres? 277 / 754 × 100 36,7 %
Del total de casos válidos, ¿qué porcentaje son hombres que respondieron «Nada»? 277 / 1.440 × 100 19,2 %

La cantidad es la misma (277); lo que cambia es quiénes representan el 100 %.

Para comparar hombres y mujeres, necesitamos observar las respuestas dentro de cada grupo. Una tabla de porcentajes por fila muestra precisamente eso: cada fila suma 100 %.

# Calculamos los porcentajes por fila
porcentajes <- prop.table(tabla_cep, 1) * 100

# Mostramos la frecuencia y debajo su porcentaje
celdas <- matrix(
  paste0(
    tabla_cep, "<br><span style='color:#198754'>",
    formatC(porcentajes, format = "f", digits = 1, decimal.mark = ","),
    " %</span>"
  ),
  nrow = nrow(tabla_cep),
  dimnames = dimnames(tabla_cep)
)

# Agregamos los totales a la derecha
celdas <- cbind(
  celdas,
  Total = paste0(rowSums(tabla_cep), "<br>100 %")
)

# Agregamos los totales abajo
celdas <- rbind(
  celdas,
  Total = c(colSums(tabla_cep), sum(tabla_cep))
)

# Mostramos la tabla
knitr::kable(
  celdas,
  format = "html",
  escape = FALSE,
  caption = "CEP 2026 · Frecuencias y porcentajes por fila (sin ponderar)"
)
CEP 2026 · Frecuencias y porcentajes por fila (sin ponderar)
1 · Nada 2 · Poca 3 · Bastante 4 · Mucha Total
Hombres 277
52,2 %
216
40,7 %
32
6,0 %
6
1,1 %
531
100 %
Mujeres 477
52,5 %
401
44,1 %
23
2,5 %
8
0,9 %
909
100 %
Total 754 617 55 14 1440

¿Qué nos muestra esta tabla?

Cada fila representa el 100 % de un grupo. Cada celda muestra la cantidad de personas (n) y, debajo, el porcentaje dentro de su grupo (%).

Observa: los porcentajes permiten comparar hombres y mujeres aunque los grupos tengan tamaños diferentes.

Por ejemplo, 277 hombres (52,2%) respondieron «Nada de confianza». Esto significa que 277 de los 531 hombres eligieron esa alternativa. Los totales de la derecha muestran cuántas personas hay en cada grupo, mientras que los totales de abajo muestran cuántas eligieron cada nivel de confianza.

2.3 ¿Cómo identificamos una asociación?

¿La confianza en los partidos políticos se distribuye igual entre hombres y mujeres? Para responder, comparamos los porcentajes dentro de cada grupo de la tabla anterior.

Por ejemplo, en la respuesta «Bastante confianza»:

Grupo Personas que eligieron «Bastante» Porcentaje del grupo
Hombres 32 de 531 6,0 %
Mujeres 23 de 909 2,5 %

Los porcentajes no son iguales: en los casos analizados, la confianza se distribuye de forma diferente entre hombres y mujeres. Esto indica una asociación descriptiva, pero todavía no demuestra que exista asociación en la población.

Pregunta: ¿Qué diferencia observas al comparar ambos porcentajes?

2.4 ¿Qué significa independencia?

Dos variables son independientes cuando conocer el grupo de una persona no cambia los porcentajes de sus respuestas.

Observa este ejemplo ficticio. Los grupos tienen tamaños distintos y cada celda muestra la cantidad de personas y su porcentaje por fila:

Grupo Respondieron «Sí» Respondieron «No» Total
A 10 (25 %) 30 (75 %) 40 (100 %)
B 20 (25 %) 60 (75 %) 80 (100 %)

Aunque las cantidades son diferentes, ambos grupos presentan los mismos porcentajes: 25 % y 75 %. Por eso, en esta tabla no observamos asociación.

La diferencia clave: - Porcentajes iguales entre grupos → sin asociación observada - Porcentajes diferentes → asociación descriptiva.

Esto describe los datos, no prueba qué ocurre en toda la población.

Para investigar si el sexo y la confianza en los partidos políticos están asociados en la población, planteamos:

\[ H_0:\text{las variables son independientes en la población} \]

\[ H_A:\text{las variables están asociadas en la población} \]

Próxima clase: aprenderemos a utilizar chi-cuadrado para evaluar si las diferencias observadas aportan evidencia de asociación en la población.

3 Aplicación autónoma: LAPOP 2023

Ahora te toca investigar. Con datos de LAPOP 2023 para Chile, elige una pregunta que te interese, construye una tabla de contingencia y decide qué porcentajes permiten responderla.

Cómo trabajar: completa ___ en los códigos, ejecútalos en R y responde con tus propios resultados. Puedes abrir una pista cuando la necesites; al final encontrarás una pauta y un ejemplo resuelto, no una respuesta única para todas las opciones.

Paso 1 · Elige tu pregunta

Opción Pregunta de investigación Variable para formar grupos Variable de respuestas
A · Democracia ¿Cómo cambia la satisfacción democrática entre hombres y mujeres? mujer (0–1) satisf_dem (1–4)
B · Instituciones ¿Cómo se distribuye la confianza en la policía entre hombres y mujeres? mujer (0–1) conf_policia (1–7)
C · Desigualdad ¿Cómo cambia la satisfacción democrática entre quintiles de riqueza? riqueza (1–5) satisf_dem (1–4)

Cómo leer los códigos: mujer: 0 = hombres, 1 = mujeres; satisf_dem: de muy insatisfecho (1) a muy satisfecho (4); conf_policia: de nada (1) a mucha confianza (7); riqueza: de menor (1) a mayor quintil (5).

¿Otra pregunta? Puedes proponer un cruce distinto con estas variables u otras incluidas en la base. Por ejemplo, también están educ (0–6), conf_ffaa (1–7) y apoyo_dem (1–7). Comprueba sus categorías antes de utilizarlas.

Decide: ¿qué pregunta elegiste?, ¿qué variable identifica los grupos? y ¿qué respuestas quieres comparar?

Paso 2 · Prepara los datos

Primero carga la base. La dirección ya está escrita:

# Cargamos LAPOP 2023
https://github.com/cursos-metodos-facso/datos-ejemplos/raw/main/subset_lapop2023.rdata

Después completa los nombres y códigos de tu opción. [[...]] sirve para acceder a una columna usando el nombre que guardaste.

# Elegimos las variables y sus códigos válidos
variable_grupo <- "___"
variable_respuesta <- "___"
validos_grupo <- ___
validos_respuesta <- ___

# Seleccionamos Chile
chile <- subset(datos_lapop, pais_name == "Chile")

# Conservamos las respuestas válidas de ambas variables
mis_datos <- chile[
  chile[[variable_grupo]] %in% validos_grupo &
  chile[[variable_respuesta]] %in% validos_respuesta,
  c(variable_grupo, variable_respuesta)
]

Comprueba: ¿cuántos casos quedaron? Ejecuta nrow(mis_datos).

Pista · ¿Qué completar?

Escribe los nombres entre comillas, tal como aparecen en la tabla del paso 1. Para los códigos utiliza secuencias como 0:1, 1:4, 1:5 o 1:7, según las variables elegidas. No necesitas calcular ni adivinar nuevos códigos.

Paso 3 · Construye tu tabla

Decide qué variable colocarás en las filas y cuál en las columnas. Completa los nombres de los objetos, sin comillas, y ejecuta:

# Cruzamos las dos variables elegidas
mi_tabla <- table(
  mis_datos[[___]],
  mis_datos[[___]]
)

# Mostramos las frecuencias y los totales
knitr::kable(addmargins(mi_tabla),
             caption = "LAPOP 2023 · Chile · Frecuencias")

Responde: ¿qué tamaño tiene tu tabla?, ¿cuántas respuestas válidas incluye? y ¿qué significa una de sus celdas?

Pista · ¿Cómo leer la tabla?

Usa variable_grupo y variable_respuesta dentro de [[...]], en el orden que decidiste. table() cuenta combinaciones; addmargins() agrega los totales. Para contar casos válidos, busca el total general.

Paso 4 · Elige el porcentaje adecuado

¿Quiénes deben representar el 100 % para responder tu pregunta? Decide si necesitas porcentajes por fila (1) o por columna (2).

# Calculamos porcentajes según el denominador elegido
mis_porcentajes <- prop.table(mi_tabla, ___) * 100

# Mostramos los porcentajes con un decimal
round(mis_porcentajes, 1)

Responde: ¿por qué elegiste ese denominador? Compara la misma categoría de respuesta entre al menos dos grupos.

Pista · ¿Fila o columna?

Si tus grupos están en las filas, usa 1 para que cada fila sume 100 %. Si están en las columnas, usa 2 para que cada columna sume 100 %. Elige según dónde ubicaste los grupos en mi_tabla.

Paso 5 · Compara e interpreta

Elige una categoría que ayude a responder tu pregunta: ¿qué porcentaje aparece en cada grupo?, ¿cuántos puntos porcentuales los separan? Puedes calcularlo así:

# Restamos dos porcentajes de la misma respuesta
diferencia <- ___ - ___
diferencia

En dos o tres frases, explica qué variables comparaste, qué porcentajes encontraste y qué indican descriptivamente las diferencias.

Pista · ¿Qué podemos concluir?

Compara porcentajes, no solo frecuencias; resta los porcentajes para obtener puntos porcentuales. Describe los registros analizados: no afirmes causalidad ni significación estadística.

Revisemos nuestro análisis

Ver pauta y ejemplo resuelto

Comprueba tu procedimiento: la pregunta se responde con las variables elegidas; conservaste códigos válidos; sabes qué representa cada celda; tus porcentajes usan el 100 % correcto; comparaste la misma respuesta en grupos distintos; la conclusión es descriptiva y no causal.

Ejemplo resuelto · Opción A: género y satisfacción democrática. Si elegiste otra opción, tus resultados serán diferentes.

LAPOP 2023 · Chile · Frecuencias sin ponderar
1 2 3 4 Total
Hombres 22 89 85 6 202
Mujeres 26 93 85 5 209
Total 48 182 170 11 411

La tabla es 2 × 4 y contiene 411 casos válidos. La celda «Mujeres × nivel 1» contiene 26 personas.

En el nivel 1, respondieron 12,4 % de las mujeres y 10,9 % de los hombres: una diferencia de 1,5 puntos porcentuales. Esto describe los registros analizados; no demuestra causalidad ni asociación significativa en la población.

Código de ejemplo para comprobarlo

# Elegimos la opción A: género y satisfacción democrática
variable_grupo <- "mujer"
variable_respuesta <- "satisf_dem"
validos_grupo <- 0:1
validos_respuesta <- 1:4

# Seleccionamos Chile y conservamos respuestas válidas
chile <- subset(datos_lapop, pais_name == "Chile")
mis_datos <- chile[
  chile[[variable_grupo]] %in% validos_grupo &
  chile[[variable_respuesta]] %in% validos_respuesta,
  c(variable_grupo, variable_respuesta)
]

# Construimos la tabla y mostramos los totales
mi_tabla <- table(mis_datos[[variable_grupo]],
                  mis_datos[[variable_respuesta]])
addmargins(mi_tabla)

# Como los grupos están en filas, usamos porcentajes por fila
mis_porcentajes <- prop.table(mi_tabla, 1) * 100
round(mis_porcentajes, 1)

Importante: las cifras no incluyen ponderadores ni ajustes por el diseño muestral. Describen los registros analizados, no estimaciones oficiales representativas.

3.1 Síntesis

En este práctico aprendimos a identificar, analizar e interpretar relaciones entre variables:

  • Correlaciones: Spearman y Kendall permiten estudiar relaciones entre variables ordinales. El signo indica la dirección y el valor absoluto del coeficiente indica la fuerza de la relación.

  • Tablas de contingencia: permiten cruzar dos variables categóricas y observar cuántos casos corresponden a cada combinación de categorías.

  • Porcentajes: permiten comparar grupos de distinto tamaño. Antes de calcularlos, debemos preguntarnos: ¿100 % de quiénes? El denominador depende de la comparación que queremos realizar.

  • Asociación: se observa descriptivamente cuando la distribución de una variable cambia entre los grupos de otra variable.

  • Independencia: implica que la distribución porcentual de una variable es la misma en todos los grupos de la otra.

Idea central: no basta con calcular una correlación o construir una tabla. Debemos elegir el procedimiento adecuado, interpretar correctamente los resultados y responder nuestra pregunta de investigación.

Recuerda que observar una relación en los datos no demuestra causalidad ni, por sí solo, significación estadística en la población.