Usando informações mútuas para estimar a correlação entre uma variável contínua e uma variável categórica

12

Quanto ao título, a idéia é usar informações mútuas, aqui e depois do IM, para estimar a "correlação" (definida como "o quanto eu sei sobre A quando conheço B") entre uma variável contínua e uma variável categórica. Em breve, vou lhe contar sobre o assunto, mas antes de aconselhá-lo a ler essa outra pergunta / resposta no CrossValidated, pois ele contém algumas informações úteis.

Agora, como não podemos integrar sobre uma variável categórica, precisamos discretizar a contínua. Isso pode ser feito facilmente no R, que é a linguagem com a qual fiz a maioria das minhas análises. Eu preferi usar a cutfunção, uma vez que ela também aliasa os valores, mas outras opções também estão disponíveis. O ponto é que é preciso decidir a priori o número de "posições" (estados discretos) antes que qualquer discretização possa ser feita.

O principal problema, no entanto, é outro: o MI varia de 0 a ∞, pois é uma medida não padronizada qual unidade é o bit. Isso torna muito difícil usá-lo como um coeficiente de correlação. Isso pode ser parcialmente resolvido usando o coeficiente de correlação global , aqui e depois do GCC, que é uma versão padronizada do MI; O GCC é definido da seguinte forma:

insira a descrição da imagem aqui

Referência: a fórmula é de Informação Mútua como Ferramenta Não Linear para Análise da Globalização do Mercado de Ações por Andreia Dionísio, Rui Menezes e Diana Mendes, 2010.

O CCG varia de 0 a 1 e, portanto, pode ser facilmente usado para estimar a correlação entre duas variáveis. Problema resolvido, certo? Bem, tipo isso. Como todo esse processo depende muito do número de 'lixeiras' que decidimos usar durante a discretização. Aqui estão os resultados dos meus experimentos:

insira a descrição da imagem aqui

No eixo y você tem GCC e no eixo x você tem o número de 'posições' que eu decidi usar para discretização. As duas linhas se referem a duas análises diferentes que eu conduzi em dois conjuntos de dados diferentes (embora muito semelhantes).

Parece-me que o uso do MI em geral e do GCC em particular ainda é controverso. No entanto, essa confusão pode ser o resultado de um erro do meu lado. Nesse caso, eu adoraria ouvir sua opinião sobre o assunto (também, você tem métodos alternativos para estimar a correlação entre uma variável categórica e uma contínua?).

Edgar Derby
fonte
2
H(XEu,Xj)H(XEu)+H(Xj)
BTW, aqui está o código, caso alguém queira tentar o método de binning.
Zkurtz 8/08
4
Você não está estimando "correlação". Você está estimando informações mútuas. Um não estima o outro; são medidas distintas do conceito mais geral de associação .
Zkurtz 08/08/19
Talvez um título melhor para este post seja "Como classificar melhor uma variável contínua para estimar suas informações mútuas com uma variável categórica?"
Zkurtz 8/08
Aqui está uma abordagem interessante não-binning. Infelizmente não consigo encontrar uma implementação de R.
Zkurtz 8/08

Respostas:

5

Existe uma maneira mais simples e melhor de lidar com esse problema. Uma variável categórica é efetivamente apenas um conjunto de variáveis ​​indicadoras. É uma idéia básica da teoria das medidas que tal variável seja invariável à nova rotulagem das categorias; portanto, não faz sentido usar a rotulação numérica das categorias em qualquer medida da relação entre outra variável (por exemplo, 'correlação') . Por esse motivo, a medida da relação entre uma variável contínua e uma variável categórica deve se basear inteiramente nas variáveis ​​indicadoras derivadas dessa última.

XEuϕP(Eu=1)

Cov(Eu,X)=E(EuX)-E(Eu)E(X)=ϕ[E(X|Eu=1)-E(X)],

que dá:

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

XEuϕXEu=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.

Substitution of these estimates would yield a basic estimate of the correlation vector. If you have parametric information on X then you could estimate the correlation vector directly by maximum likelihood or some other technique.

Reinstate Monica
fonte