Usar información mutua para estimar la correlación entre una variable continua y una variable categórica

13

En cuanto al título, la idea es utilizar información mutua, aquí y después de MI, para estimar la "correlación" (definida como "cuánto sé sobre A cuando sé B") entre una variable continua y una variable categórica. Le diré mis pensamientos sobre el asunto en un momento, pero antes de aconsejarle que lea esta otra pregunta / respuesta en CrossValidated ya que contiene información útil.

Ahora, debido a que no podemos integrarnos sobre una variable categórica, necesitamos discretizar la continua. Esto se puede hacer con bastante facilidad en R, que es el lenguaje con el que he hecho la mayoría de mis análisis. Preferí usar la cutfunción, ya que también alias los valores, pero también hay otras opciones disponibles. El punto es que uno tiene que decidir a priori el número de "contenedores" (estados discretos) antes de que pueda hacerse cualquier discretización.

Sin embargo, el problema principal es otro: MI varía de 0 a ∞, ya que es una medida no estandarizada qué unidad es el bit. Eso hace que sea muy difícil usarlo como coeficiente de correlación. Esto se puede resolver en parte usando el coeficiente de correlación global , aquí y después de GCC, que es una versión estandarizada de MI; El CCG se define de la siguiente manera:

ingrese la descripción de la imagen aquí

Referencia: la fórmula es de información mutua como herramienta no lineal para analizar la globalización bursátil por Andreia Dionísio, Rui Menezes y Diana Mendes, 2010.

GCC varía de 0 a 1 y, por lo tanto, puede usarse fácilmente para estimar la correlación entre dos variables. Problema resuelto, ¿verdad? Bueno, más o menos. Debido a que todo este proceso depende en gran medida del número de 'contenedores' que decidimos usar durante la discretización. Aquí los resultados de mis experimentos:

ingrese la descripción de la imagen aquí

En el eje y tienes GCC y en el eje x tienes el número de 'bins' que decidí usar para la discretización. Las dos líneas se refieren a dos análisis diferentes que realicé en dos conjuntos de datos diferentes (aunque muy similares).

Me parece que el uso de MI en general y GCC en particular sigue siendo controvertido. Sin embargo, esta confusión puede ser el resultado de un error de mi parte. En cualquier caso, me encantaría conocer su opinión sobre el asunto (también, ¿tiene métodos alternativos para estimar la correlación entre una variable categórica y una continua?).

Edgar Derby
fuente
2
H(Xi,Xj)H(Xi)+H(Xj)
Por cierto, aquí hay código en caso de que alguien quiera probar el método binning.
zkurtz
44
No está estimando la "correlación". Estás estimando información mutua. El uno no estima al otro; son medidas distintas del concepto más general de asociación .
zkurtz
Quizás un mejor título para esta publicación es "¿Cómo enlazar mejor una variable continua para estimar su información mutua con una variable categórica?"
zkurtz
Aquí hay un enfoque interesante de no binning. Lamentablemente no puedo encontrar una implementación de R.
zkurtz

Respuestas:

5

Hay una manera más simple y mejor de lidiar con este problema. Una variable categórica es efectivamente solo un conjunto de variables indicadoras. Es una idea básica de la teoría de la medición que dicha variable es invariable para volver a etiquetar las categorías, por lo que no tiene sentido utilizar el etiquetado numérico de las categorías en ninguna medida de la relación entre otra variable (por ejemplo, "correlación") . Por esta razón, y la medida de la relación entre una variable continua y una variable categórica debe basarse enteramente en las variables indicadoras derivadas de esta última.

XIϕP(I=1)

Cov(I,X)=E(IX)E(I)E(X)=ϕ[E(X|I=1)E(X)],

lo que da:

Corr(I,X)=ϕ1ϕE(X|I=1)E(X)S(X).

XIϕXI=1


C1,...,mC=kIkI(C=k)

Corr(Ik,X)=ϕk1ϕkE(X|C=k)E(X)S(X).

Corr(C,X)(Corr(I1,X),...,Corr(Im,X))

kCov(Ik,X)=0Xm1


(x1,c1),...,(xn,cn)

ϕ^k1ni=1nI(ci=k).

E^(X)x¯1ni=1nxi.

E^(X|C=k)x¯k1ni=1nxiI(ci=k)/ϕ^k.

S^(X)sX1n1i=1n(xix¯)2.

X

Ben - Restablece a Monica
fuente