Correlaciones con variables categóricas desordenadas

123

Tengo un marco de datos con muchas observaciones y muchas variables. Algunos de ellos son categóricos (no ordenados) y los otros son numéricos.

Estoy buscando asociaciones entre estas variables. He podido calcular la correlación para variables numéricas (correlación de Spearman) pero:

  • No sé cómo medir la correlación entre variables categóricas desordenadas.
  • No sé cómo medir la correlación entre variables categóricas desordenadas y variables numéricas.

¿Alguien sabe cómo se puede hacer esto? Si es así, ¿hay funciones R que implementen estos métodos?

Clément F
fuente

Respuestas:

113

Depende de qué sentido de correlación desee. Cuando ejecuta la correlación de momento prototípica del producto de Pearson, obtiene una medida de la fuerza de asociación y obtiene una prueba de la importancia de esa asociación. Sin embargo, más típicamente, la prueba de significación y la medida del tamaño del efecto difieren.

Pruebas de significación:

Tamaño del efecto (fuerza de asociación):

gung
fuente
55
Aquí se puede encontrar una explicación muy detallada del caso continuo vs. nominal: correlación entre una variable nominal (IV) y una variable continua (DV) .
Gung
3
En el caso binario vs intervalo hay la correlación punto-biserial .
Glen_b
¿Cuál sería una mejor alternativa a la prueba de ji cuadrado para muestras grandes?
Waldir Leoncio
2
pags<.055%
1
Como señaló @gung, la correlación entre una variable nominal (IV) y una variable continua (DV) es un excelente enlace para saber cómo se puede hacer la correlación para las variables mixtas. Hmisc::rcorrhace esto maravillosamente y podemos verificarlo (para un marco de datos de variables mixtas) de la siguiente manera:as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$P) as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$r)
KarthikS
15

He visto la siguiente hoja de trucos vinculada anteriormente:

https://stats.idre.ucla.edu/other/mult-pkg/whatstat/

Te puede ser útil. Incluso tiene enlaces a bibliotecas R específicas.

DSea
fuente
3
El problema con esta hoja de referencia es que solo se refiere a variables categóricas / ordinales / de intervalo. Lo que estoy buscando es un método que me permita utilizar variables independientes numéricas y categóricas.
Clément F
6

Si desea una matriz de correlación de variables categóricas, puede usar la siguiente función de contenedor (que requiere el paquete 'vcd'):

catcorrm <- function(vars, dat) sapply(vars, function(y) sapply(vars, function(x) assocstats(table(dat[,x], dat[,y]))$cramer))

Dónde:

vars es un vector de cadena de variables categóricas que desea correlacionar

dat es un data.frame que contiene las variables

El resultado es una matriz de V de Cramer.

Dan
fuente
6

XKtyoKyo=1,...,pagsXtyoR2

Tal análisis puede verse como una generalización del análisis de correspondencia múltiple, y se conoce con muchos nombres, tales como análisis de correlación canónica, análisis de homogeneidad y muchos otros. Una implementación en R está en el homalspaquete (en CRAN). buscar en Google algunos de estos nombres dará una gran cantidad de información, hay un libro completo: Albert Gifi, "Análisis multivariado no lineal". ¡Buena suerte!

kjetil b halvorsen
fuente
1
1
Lo editaré para tener en cuenta este comentario.
kjetil b halvorsen
2

Tuve un problema similar y probé la prueba de Chi-cuadrado como se sugirió, pero me confundí mucho al evaluar los valores P frente a la hipótesis NULL.

Explicaré cómo interpreté las variables categóricas. No estoy seguro de cuán relevante es en su caso. Tenía la variable de respuesta Y y dos variables predictoras X1 y X2 donde X2 era una variable categórica con dos niveles, digamos 1 y 2. Estaba tratando de ajustar un modelo lineal

ols = lm(Y ~ X1 + X2, data=mydata)

Pero quería entender cómo los diferentes niveles de X2 se ajustan a la ecuación anterior. Encontré una función R por ()

by(mydata,X2,function(x) summary(lm(Y~X1,data=x)))

Lo que hace este código es tratar de encajar en el modelo lineal para cada nivel de X2. Esto me dio todo el valor P y R-cuadrado, error estándar residual que entiendo y puedo interpretar.

De nuevo, no estoy seguro de si esto es lo que quieres. Comparé diferentes valores de X2 al predecir Y.

Sohsum
fuente
1

Para medir la fuerza del enlace entre dos variables categóricas, prefiero sugerir el uso de una tabla de referencias cruzadas con la estadística chisquare

Para medir la fuerza del enlace entre una variable numérica y una variable categórica, puede usar una comparación de medias para ver si cambia significativamente de una categoría a otras.

Da Silva Lionel
fuente
2
Bienvenido al sitio, @DaSilvaLionel. Puede notar que el uso de la prueba de ji cuadrado con dos variables categóricas ya se ha sugerido anteriormente.
Gung