Correlación entre Variables Categóricas

En este articulo veremos cómo estudiar la asociación entre dos variables categóricas.

Ejemplo: Inventario de Personalidad Narcisista (NPI-40)

El Inventario de Personalidad Narcisista (NPI-40) es un cuestionario que evalúa rasgos narcisistas a través de 40 ítems con opciones A o B. Las respuestas se puntúan para determinar el nivel de narcisismo, que puede variar de bajo a muy alto. Se aclara que este inventario no es un diagnóstico clínico, sino una herramienta para medir características de personalidad.
Cada pregunta tiene dos posibles respuestas: “sí” o “no”.

Algunas de las preguntas incluidas en este ejemplo son:

  • influence:
    • yes → “Tengo un talento natural para influir en las personas.”
    • no → “No soy bueno para influir en las personas.”
  • blend_in:
    • yes → “Prefiero mezclarme con la multitud.”
    • no → “Me gusta ser el centro de atención.”
  • special:
    • yes → “Creo que soy una persona especial.”
    • no → “No soy mejor ni peor que la mayoría.”
  • leader:
    • yes → “Me veo como un buen líder.”
    • no → “No estoy seguro de ser un buen líder.”
  • authority:
    • yes → “Me gusta tener autoridad sobre otras personas.”
    • no → “No me importa seguir órdenes.”

Como puedes imaginar, las respuestas a algunas de estas preguntas están asociadas entre sí.
Por ejemplo, alguien que se considera líder también podría tender a disfrutar de tener autoridad.

Tablas de Contingencia de Frecuencias

Una forma práctica de resumir la relación entre dos variables categóricas es mediante una tabla de contingencia (también conocida como tabla cruzada o de doble entrada).
Podemos construirla fácilmente en pandas con crosstab().

Supongamos que queremos analizar la relación entre influence (creerse bueno para influir en los demás) y leader (verse como líder):

import pandas as pd

influence_leader_freq = pd.crosstab(npi.influence, npi.leader)
print(influence_leader_freq)

Resultado:

leader     no     yes
influence
no        3015    1293
yes       2360    4429

Esta tabla muestra cuántas personas dieron cada combinación de respuestas.
Por ejemplo:

  • 3015 personas respondieron “no” a ambas preguntas.
  • 4429 personas respondieron “sí” tanto a influence como a leader.

Observación: si alguien se ve como líder, es más probable que también piense que tiene talento para influir en los demás. Esto ya sugiere una posible asociación entre ambas variables.

Tablas de Contingencia de Proporciones

Para comparar mejor, es útil expresar las frecuencias como proporciones del total.
Podemos hacerlo dividiendo entre el número total de observaciones:

influence_leader_prop = influence_leader_freq / len(npi)
print(np.round(influence_leader_prop, 3))

Resultado:

leader       no     yes
influence
no          0.272   0.117
yes         0.213   0.399

Estas proporciones nos muestran que las categorías “sí/sí” (0.399) y “no/no” (0.272) son las más frecuentes. En otras palabras, casi el 40% de los participantes se ven como líderes y dicen tener talento para influir.

Proporciones Marginales

Ahora bien, incluso si no existiera relación entre las variables, las proporciones no se distribuirían equitativamente (no serían todas 0.25). Por ejemplo, puede que más de la mitad de las personas se consideren influyentes, lo cual afectará las proporciones. Las proporciones marginales resumen la fracción total de personas en cada categoría individual (por filas y columnas).

leader_marginals = influence_leader_prop.sum(axis=0)
influence_marginals = influence_leader_prop.sum(axis=1)

print("Marginal por líder:\n", leader_marginals)
print("\nMarginal por influencia:\n", influence_marginals)

Resultado:

Marginal por líder:
no     0.484
yes    0.516

Marginal por influencia:
no     0.388
yes    0.612

Esto nos dice que:

  • El 51.6% de las personas se consideran líderes.
  • El 61.2% piensa que tiene talento para influir.

Tablas de Contingencia Esperadas

Si las variables no estuvieran asociadas, podríamos predecir las proporciones esperadas multiplicando las proporciones marginales de cada categoría:

Líder = noLíder = sí
Influencia = no0.484 × 0.388 = 0.1880.516 × 0.388 = 0.200
Influencia = sí0.484 × 0.612 = 0.2960.516 × 0.612 = 0.315

Si el total de observaciones es 11 097, podemos calcular las frecuencias esperadas:

Líder = noLíder = sí
Influencia = no0.188 × 11097 = 20870.200 × 11097 = 2221
Influencia = sí0.296 × 11097 = 32880.315 × 11097 = 3501

Podemos obtener esta tabla automáticamente con SciPy:

from scipy.stats import chi2_contingency
import numpy as np

chi2, pval, dof, expected = chi2_contingency(influence_leader_freq)
print(np.round(expected))

Salida:

[[2087. 2221.]
 [3288. 3501.]]

Estas son las frecuencias esperadas si no hubiera asociación entre las variables.

Comparación Observada vs Esperada

Tabla observada:

leader     no     yes
influence
no        3015    1293
yes       2360    4429

Tabla esperada (sin asociación):

leader     no     yes
influence
no        2087    2221
yes       3288    3501

Vemos diferencias notables: por ejemplo, hay 3015 observaciones reales en la celda (no/no), cuando esperaríamos 2087. Esto sugiere que las variables están efectivamente asociadas.

La Estadística Chi-Cuadrado (χ²)

Para cuantificar la diferencia entre ambas tablas, utilizamos la prueba Chi-Cuadrado de independencia. La fórmula general es:

$$\chi^2 = \sum \frac{(O – E)^2}{E}$$

donde

  • \(O\) son los valores observados,
  • \(\)E \(\) los valores esperados.

En Python, la obtenemos directamente:

chi2, pval, dof, expected = chi2_contingency(influence_leader_freq)
print(f"Chi-cuadrado: {chi2:.2f}")
print(f"p-value: {pval:.5f}")

Resultado:

Chi-cuadrado: 1307.88
p-value: 0.00000

Interpretación:

  • En una tabla 2×2, un valor de χ² superior a 4 ya sugiere una relación significativa.
  • Aquí, χ² = 1307.88, una diferencia enorme: evidencia muy fuerte de asociación.
  • El p-value ≈ 0 confirma que las variables no son independientes.

En resumen:

  • Las tablas de contingencia permiten observar la relación entre dos variables categóricas.
  • Convertirlas a proporciones facilita la comparación.
  • Las proporciones marginales ayudan a calcular lo que esperaríamos si no hubiera asociación.
  • La prueba Chi-Cuadrado cuantifica cuánto difieren los datos observados de los esperados.
  • Un valor de χ² alto (y p-value bajo) indica una asociación significativa.

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *