Utilisation d'informations mutuelles pour estimer la corrélation entre une variable continue et une variable catégorielle

13

Quant au titre, l'idée est d'utiliser des informations mutuelles, ici et après MI, pour estimer la "corrélation" (définie comme "tout ce que je sais sur A quand je connais B") entre une variable continue et une variable catégorielle. Je vais vous dire mes réflexions sur la question dans un instant, mais avant de vous conseiller de lire cette autre question / réponse sur CrossValidated car elle contient des informations utiles.

Maintenant, parce que nous ne pouvons pas intégrer une variable catégorielle, nous devons discrétiser la variable continue. Cela peut être fait assez facilement en R, qui est le langage avec lequel j'ai fait la plupart de mes analyses. J'ai préféré utiliser la cutfonction, car elle alias également les valeurs, mais d'autres options sont également disponibles. Le fait est qu'il faut décider a priori du nombre de "bins" (états discrets) avant de pouvoir procéder à toute discrétisation.

Le problème principal, cependant, est un autre: MI varie de 0 à ∞, car il s'agit d'une mesure non standardisée de l'unité qui est le bit. Cela rend très difficile son utilisation comme coefficient de corrélation. Ceci peut être partiellement résolu en utilisant le coefficient de corrélation global , ici et après GCC, qui est une version standardisée de MI; GCC est défini comme suit:

entrez la description de l'image ici

Référence: la formule est tirée de Mutual Information as an Nonlinear Tool for Analyzing Stock Market Globalization par Andreia Dionísio, Rui Menezes & Diana Mendes, 2010.

Le GCC varie de 0 à 1 et peut donc facilement être utilisé pour estimer la corrélation entre deux variables. Problème résolu, non? Bon type de. Parce que tout ce processus dépend fortement du nombre de «bacs» que nous avons décidé d'utiliser lors de la discrétisation. Voici les résultats de mes expériences:

entrez la description de l'image ici

Sur l'axe des y, vous avez GCC et sur l'axe des x, vous avez le nombre de «bacs» que j'ai décidé d'utiliser pour la discrétisation. Les deux lignes font référence à deux analyses différentes que j'ai menées sur deux ensembles de données différents (bien que très similaires).

Il me semble que l'utilisation du MI en général et du GCC en particulier est toujours controversée. Pourtant, cette confusion peut être le résultat d'une erreur de mon côté. Dans les deux cas, j'aimerais avoir votre avis sur la question (avez-vous également des méthodes alternatives pour estimer la corrélation entre une variable catégorielle et une variable continue?).

Edgar Derby
la source
2
H(Xi,Xj)H(Xi)+H(Xj)
BTW, voici le code au cas où quelqu'un voudrait essayer la méthode de binning.
zkurtz
4
Vous n'évaluez pas la "corrélation". Vous estimez les informations mutuelles. L'un n'évalue pas l'autre; ce sont des mesures distinctes du concept plus général d' association .
zkurtz
Peut-être un meilleur titre pour cet article est "Comment mieux regrouper une variable continue pour estimer ses informations mutuelles avec une variable catégorielle?"
zkurtz
Voici une approche non binning intéressante. Malheureusement, je ne trouve pas d'implémentation R.
zkurtz

Réponses:

5

Il existe un moyen plus simple et meilleur de résoudre ce problème. Une variable catégorielle n'est en fait qu'un ensemble de variables indicatrices. C'est une idée fondamentale de la théorie de la mesure qu'une telle variable est invariante à la réétiquetage des catégories, il n'est donc pas logique d'utiliser l'étiquetage numérique des catégories dans toute mesure de la relation entre une autre variable (par exemple, «corrélation») . Pour cette raison, la mesure de la relation entre une variable continue et une variable catégorielle doit être entièrement basée sur les variables indicatrices dérivées de cette dernière.

XIϕP(I=1)

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

qui donne:

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 - Réintègre Monica
la source