¿Cómo obtener la correlación entre dos variables categóricas y una variable categórica y una variable continua?


63

Estoy construyendo un modelo de regresión y necesito calcular lo siguiente para verificar las correlaciones

  1. Correlación entre 2 variables categóricas multinivel
  2. Correlación entre una variable categórica de niveles múltiples y una variable continua
  3. VIF (factor de inflación de varianza) para variables categóricas de niveles múltiples

Creo que es incorrecto usar el coeficiente de correlación de Pearson para los escenarios anteriores porque Pearson solo funciona para 2 variables continuas.

Por favor conteste las siguientes preguntas

  1. ¿Qué coeficiente de correlación funciona mejor para los casos anteriores?
  2. El cálculo de VIF solo funciona para datos continuos, ¿cuál es la alternativa?
  3. ¿Cuáles son los supuestos que debo verificar antes de usar el coeficiente de correlación que sugiere?
  4. ¿Cómo implementarlos en SAS & R?

44
Yo diría que CV.SE es un mejor lugar para preguntas sobre estadísticas más teóricas como esta. Si no, diría que la respuesta a sus preguntas depende del contexto. A veces tiene sentido para aplanar múltiples niveles en variables ficticias, otras veces, vale la pena para modelar sus datos de acuerdo con la distribución multinomial, etc.
ffriend

¿Están ordenadas sus variables categóricas? En caso afirmativo, esto puede influir en el tipo de correlación que desea buscar.
nassimhddd

Tengo que enfrentar el mismo problema en mi investigación. pero no pude encontrar el método correcto para resolver este problema. así que si puede, por favor, tenga la amabilidad de darme las referencias que ha encontrado.
user89797

¿Quieres decir que el valor p es igual al coeficiente de correlación r?
Ayo Emma

La solución anterior con ANOVA para categórico versus continuo es buena. Pequeño hipo. Cuanto menor sea el valor p, mejor será el "ajuste" entre las dos variables. No de la otra manera.
myudelson

Respuestas:


73

Dos variables categóricas

Se puede verificar si dos variables categóricas son independientes con la prueba de independencia Chi-Squared.

Esta es una prueba típica de Chi-cuadrado : si suponemos que dos variables son independientes, entonces los valores de la tabla de contingencia para estas variables deben distribuirse uniformemente. Y luego verificamos qué tan lejos del uniforme están los valores reales.

También existe una V de Crammer que es una medida de correlación que se desprende de esta prueba

Ejemplo

Supongamos que tenemos dos variables

  • género: masculino y femenino
  • ciudad: Blois y Tours

Observamos los siguientes datos:

valores observados

¿Son independientes el género y la ciudad? Realicemos una prueba Chi-Squred. Hipótesis nula: son independientes, la hipótesis alternativa es que están correlacionados de alguna manera.

Bajo la hipótesis nula, asumimos una distribución uniforme. Entonces nuestros valores esperados son los siguientes

valor esperado

Entonces ejecutamos la prueba de chi-cuadrado y el valor p resultante aquí puede verse como una medida de correlación entre estas dos variables.

Para calcular la V de Crammer, primero encontramos el factor de normalización chi-cuadrado-máximo, que generalmente es el tamaño de la muestra, dividimos el chi-cuadrado por él y sacamos una raíz cuadrada

crammers v

R

tbl = matrix(data=c(55, 45, 20, 30), nrow=2, ncol=2, byrow=T)
dimnames(tbl) = list(City=c('B', 'T'), Gender=c('M', 'F'))

chi2 = chisq.test(tbl, correct=F)
c(chi2$statistic, chi2$p.value)

Aquí el valor p es 0.08, bastante pequeño, pero aún no es suficiente para rechazar la hipótesis de independencia. Entonces podemos decir que la "correlación" aquí es 0.08

También calculamos V:

sqrt(chi2$statistic / sum(tbl))

Y obtenga 0.14 (cuanto menor sea v, menor será la correlación)

Considere otro conjunto de datos

    Gender
City  M  F
   B 51 49
   T 24 26

Para esto, daría lo siguiente

tbl = matrix(data=c(51, 49, 24, 26), nrow=2, ncol=2, byrow=T)
dimnames(tbl) = list(City=c('B', 'T'), Gender=c('M', 'F'))

chi2 = chisq.test(tbl, correct=F)
c(chi2$statistic, chi2$p.value)

sqrt(chi2$statistic / sum(tbl))

El valor p es 0.72, que está mucho más cerca de 1, y v es 0.03, muy cerca de 0

Variables categóricas vs numéricas

Para este tipo, generalmente realizamos la prueba ANOVA unidireccional : calculamos la varianza en el grupo y la varianza dentro del grupo y luego las comparamos.

Ejemplo

Queremos estudiar la relación entre la grasa absorbida de las donas frente al tipo de grasa utilizada para producir donas (el ejemplo se toma de aquí )

rosquillas

¿Hay alguna dependencia entre las variables? Para eso llevamos a cabo la prueba ANOVA y vemos que el valor p es solo 0.007, no hay correlación entre estas variables.

R

t1 = c(164, 172, 168, 177, 156, 195)
t2 = c(178, 191, 197, 182, 185, 177)
t3 = c(175, 193, 178, 171, 163, 176)
t4 = c(155, 166, 149, 164, 170, 168)

val = c(t1, t2, t3, t4)
fac = gl(n=4, k=6, labels=c('type1', 'type2', 'type3', 'type4'))

aov1 = aov(val ~ fac)
summary(aov1)

La salida es

            Df Sum Sq Mean Sq F value  Pr(>F)   
fac          3   1636   545.5   5.406 0.00688 **
Residuals   20   2018   100.9                   
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Entonces, también podemos tomar el valor p como la medida de correlación aquí.

Referencias


1
Gracias Alexey por los detalles. En base a más investigaciones que encontré sobre la correlación poliserial y policlorica. ¿Cómo es tu enfoque mejor que estos? Por favor explique
GeorgeOfTheRF

1
No estoy al tanto de estas cosas, lo siento.
Alexey Grigorev

Respuesta fantástica de @Alexey. Leí en línea correlaciones policóricas / poliséricas después de leer su comentario. Son una técnica para estimar la correlación entre dos variables latentes, a partir de dos variables observadas. No creo que sea lo que pediste, y no es comparable a la respuesta de Alexey.
KarthikS

1
Su primer ejemplo NO es sobre categórico versus categórico, sino que es categórico versus numérico, de hecho, está viendo la ciudad contra el número de hombres (mujeres, respectivamente) que es numérico. Categórico versus categórico sería, digamos, ciudad versus color de los ojos o formas o cualquier otra cosa, pero de ninguna manera sería el número de representante del género.
Gented

1
@AlexeyGrigorev Si nuestros datos no se distribuyen normalmente, ¿deberían kruskal-wallicusarse en lugar de one-way anova? Gracias por adelantado.
ebrahimi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.