143 votos

Correlaciones con variables categóricas no ordenadas

Tengo un marco de datos con muchas observaciones y muchas variables. Algunas de ellas son categóricas (no ordenadas) y las otras son numéricas.

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

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

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

125voto

Sean Hanley Puntos 2428

Depende del sentido de la correlación que quieras. Cuando se ejecuta el prototipo de correlación del momento del producto de Pearson, se obtiene una medida de la fuerza de la asociación y se obtiene una prueba de la importancia de esa asociación. Sin embargo, lo más habitual es que la prueba de significación y la medida de tamaño del efecto difieren.

Pruebas de significación:

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

7 votos

Se puede encontrar una explicación muy completa del caso continuo frente al nominal aquí: Correlación entre una variable nominal (IV) y una continua (DV) .

3 votos

En el caso binario frente al de intervalo existe el correlación punto-biserial .

0 votos

¿Cuál sería una alternativa mejor a la prueba de chi-cuadrado para muestras grandes?

15voto

DSea Puntos 216

He visto la siguiente hoja de trucos enlazada antes:

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

Puede serte útil. Incluso tiene enlaces a bibliotecas específicas de R.

3 votos

El problema de esta hoja de trucos es que sólo se refiere a las variables categóricas / ordinales / de intervalo. Lo que estoy buscando es un método que me permita utilizar variables independientes tanto numéricas como categóricas.

6voto

kjetil b halvorsen Puntos 7012

Depende de lo que quieras conseguir. Deje que $X$ sea la variable numérica continua y $K$ la variable categórica (no ordenada). Entonces, un posible enfoque es asignar puntuaciones numéricas $t_i$ a cada uno de los posibles valores de $K$ , $i=1, \dots, p$ . Un posible criterio es maximizar la correlación entre el $X$ y las puntuaciones $t_i$ . Con una sola variable continua y una variable categórica, esto podría no ser muy útil, ya que la correlación máxima siempre será uno (¡demostrar esto, y encontrar algunas de esas puntuaciones, es un ejercicio de uso de los multiplicadores de Lagrange! Con múltiples variables, tratamos de encontrar puntuaciones de compromiso para las variables categóricas, tal vez intentando maximizar la correlación múltiple $R^2$ . Entonces las correlaciones individuales no serán más (¡salvo casos muy especiales!) iguales a uno.

Este análisis puede considerarse una generalización del análisis de correspondencias múltiples, y se conoce con muchos nombres, como análisis de correlación canónica, análisis de homogeneidad y muchos otros. Una implementación en R se encuentra en el homals (en CRAN). Si se busca en Google algunos de estos nombres se obtendrá una gran cantidad de información, y hay un libro completo: Albert Gifi, "Nonlinear Multivariate Analysis". Buena suerte.

1 votos

(+1) ¿Por qué utilizar multiplicadores de Lagrange? Basta con utilizar los valores de la variable continua para puntuar la categórica. Esto también revela por qué la correlación máxima no es necesariamente $1$ que sólo es posible cuando cada categoría se empareja con un conjunto invariable de valores de la variable continua.

0 votos

Voy a editar para tener en cuenta este comentario.

5voto

Earnest_learner Puntos 96

Como señaló @gung, Correlación entre una variable nominal (IV) y una continua (DV) es un excelente enlace para saber cómo se puede hacer la correlación de variables mixtas. Hmisc::rcorr hace esto maravillosamente y podemos comprobarlo (para un marco de datos de variables mixtas) como sigue:

as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$P)
as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$r)

2voto

Sohsum Puntos 49

Tuve un problema similar y probé la prueba de Chi-cuadrado como se sugiere, pero me confundí al evaluar los valores P contra la hipótesis nula.

Voy a explicar cómo he interpretado las variables categóricas. No estoy seguro de que sea relevante en su caso. Tenía la variable de respuesta Y y dos variables predictoras X1 y X2, siendo X2 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 un nivel diferente de X2 se ajusta a la ecuación anterior. Me encontré con una función de R por()

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

Lo que hace este código es que trata de ajustar en 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.

Una vez más, no estoy seguro de si esto es lo que quieres. En cierto modo, comparé diferentes valores de X2 en la predicción de Y.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X