Existe uma versão do coeficiente de correlação menos sensível aos valores discrepantes?

9

O coeficiente de correlação é:

r=k(xkx¯)(ykyk¯)sxsyn1

A média da amostra e o desvio padrão da amostra são sensíveis a valores discrepantes.

Além disso, o mecanismo em que,

r=kstuffkn1

é uma espécie de média também e talvez possa haver uma variação naquilo que é menos sensível à variação.

A média da amostra é:

x¯=kxkn

O desvio padrão da amostra é:

sx=k(xkx¯)2n1

Acho que quero

A mediana:

Median[x]

O desvio médio absoluto:

Median[|xMedian[x]|]

E para a correlação:

Median[(xMedian[x])(yMedian[y])Median[|xMedian[x]|]Median[|yMedian[y]|]]

Eu tentei isso com alguns números aleatórios, mas obtive resultados maiores que 1, o que parece errado. Veja o seguinte código R.

 x<- c(237, 241, 251, 254, 263)
 y<- c(216, 218, 227, 234, 235)

 median.x <- median(x)
 median.y <- median(y)

 mad.x <- median(abs(x - median.x))
 mad.y <- median(abs(y - median.y))

 r <- median((((x - median.x) * (y - median.y)) / (mad.x * mad.y)))

 print(r)
 ## Prints 1.125

 plot(x,y)
Steven Stewart-Gallus
fonte
11
Não tenho certeza qual é a sua pergunta real, a menos que você queira dizer seu título? Nesse caso, a correlação de Spearman é uma correlação menos sensível a valores discrepantes. É basicamente uma correlação de Pearson das fileiras.
Ashe
7
Você está pedindo um estimador robusto da correlação usual ou uma medida alternativa de co-variação que por acaso seja robusta?
whuber
Uma pergunta relacionada com as respostas: stats.stackexchange.com/questions/381194/...
b Kjetil Halvorsen

Respostas:

16

Eu acho que você quer uma correlação de classificação . Esses geralmente são mais robustos para os valores extremos, embora valha a pena reconhecer que eles estão medindo a associação monotônica, não a associação linear. A correlação de classificação mais comumente conhecida é a correlação de Spearman . É apenas a correlação do momento do produto de Pearson das fileiras dos dados.

Eu não seguiria o caminho que você está tomando para obter as diferenças de cada dado da mediana. A mediana da distribuição de X pode ser um ponto totalmente diferente da mediana da distribuição de Y, por exemplo. Isso me parece provável causar instabilidade no cálculo.

- Reinstate Monica
fonte
5

Outra resposta para variáveis ​​discretas e não contínuas , por exemplo, números inteiros versus reais, é a correlação de classificação de Kendall . Em contraste com a correlação de Spearman , a correlação de Kendall não é afetada pela distancia entre as fileiras, mas apenas pelo fato de as fileiras entre as observações serem iguais ou não.

O coeficiente Kendall τ é definido como:

τ=(number of concordant pairs)(number of discordant pairs)n(n1)/2

O coeficiente de classificação de Kendall é frequentemente usado como uma estatística de teste em um teste de hipótese estatística para estabelecer se duas variáveis ​​podem ser consideradas estatisticamente dependentes. Este teste não é paramétrico, pois não se baseia em nenhuma suposição sobre as distribuições de ou ou a distribuição de .XY(X,Y)

O tratamento de laços para a correlação de Kendall é, no entanto, problemático, conforme indicado pela existência de não menos de três métodos para lidar com laços. Um empate para um par {( x iy i ), ( x jy j )} é quando x i = x j ou y i = y j ; um par empatado não é concordante nem discordante.

Carl
fonte
2

Esta é uma solução que funciona bem para os dados e problemas propostos pelo IrishStat.

Y=ax+b+e

A idéia é substituir a variação da amostra de Y pela variação prevista

σY2=a2σx2+σe2
. para que a fórmula da correlação se torne
r=a2σx2a2σx2+σe2
Agora, a razão pela qual a correlação está subestimada é que o outlier causa a estimativa para σe2ser inflado. Para lidar com isso, substitua a suposição de erros normalmente distribuídos na regressão por uma mistura normal
0.952πσexp(e22σ2)+0.052π3σexp(e218σ2)
Vi pela primeira vez essa distribuição usada para robustez no livro de Hubers, Estatísticas robustas. Isso é "moderadamente" robusto e funciona bem para este exemplo. Ele também tem a propriedade de que, se não houver outliers, ele produzirá estimativas de parâmetros quase idênticas às de mínimos quadrados usuais. Portanto, esse procedimento remove implicitamente a influência do discrepante sem a necessidade de modificar os dados. O ajuste dos dados produz uma estimativa de correlação de 0,944812.
Dave Fournier
fonte
O seu .94 está estranhamente próximo do .94 que calculei quando inverti yex. Isso é por acaso?
IrishStat
Eu acho que é apenas por acaso.
Dave fournier #
1

Minha resposta pressupõe que o OP ainda não sabe quais observações são discrepantes, porque, se o OP soubesse, os ajustes de dados seriam óbvios. Assim, parte da minha resposta lida com a identificação do (s) discrepante (s)

Quando você constrói um modelo OLS (y versus x), você obtém um coeficiente de regressão e, subsequentemente, o coeficiente de correlação, acho que pode ser inerentemente perigoso não desafiar os "dados". Dessa maneira, você entende que o coeficiente de regressão e seu irmão são baseados em valores não-discrepantes / incomuns. Agora, se você identificar um erro externo e adicionar um preditor 0/1 apropriado ao seu modelo de regressão, o coeficiente de regressão resultante para oxagora é robusto para o outlier / anomalia. Esse coeficiente de regressão para oxé então "mais verdadeiro" que o coeficiente de regressão original, pois não é contaminado pelo outlier identificado. Observe que nenhuma observação é permanentemente "jogada fora"; é apenas que um ajuste para oyO valor está implícito para o ponto da anomalia. Este novo coeficiente para ax pode então ser convertido em um robusto r.

Uma visão alternativa disso é apenas tomar as medidas ajustadas y valor e substitua o original y valor com esse "valor suavizado" e, em seguida, execute uma correlação simples.

Esse processo teria que ser feito repetidamente até que nenhum erro externo seja encontrado.

Espero que este esclarecimento ajude os votantes em baixa a entender o procedimento sugerido. Agradeço à whuber por me empurrar para esclarecimentos. Se alguém ainda precisar de ajuda com este, pode sempre simular umay,x conjunto de dados e injetar um outlier em qualquer x específico e siga as etapas sugeridas para obter uma estimativa melhor de r.

Congratulo-me com quaisquer comentários sobre isso como se estivesse "incorreto". Gostaria sinceramente de saber por que, com sorte, apoiado por um contra-exemplo numérico.

EDITADO PARA APRESENTAR UM EXEMPLO SIMPLES:

Um pequeno exemplo será suficiente para ilustrar o método proposto / transparente de "obter uma versão de r que seja menos sensível a discrepantes", que é a questão direta do PO. Este é um script fácil de seguir usando ols padrão e alguma aritmética simples. Lembre-se de que o coeficiente de regressão ols é igual a r * [sigmay / sigmax).

Considere os seguintes 10 pares de observações.

insira a descrição da imagem aqui

E graficamente

insira a descrição da imagem aqui

O coeficiente de correlação simples é 0,75 com sigmay = 18,41 e sigmax = 0,38

Agora calculamos uma regressão entre ye ex e obtemos o seguinte

insira a descrição da imagem aqui

Onde 36,538 = 0,75 * [18,41 / .38] = r * [sigmay / sigmax]

A tabela real / ajustada sugere uma estimativa inicial de um outlier na observação 5 com valor de 32.799. insira a descrição da imagem aqui

Se excluirmos o quinto ponto, obteremos o seguinte resultado de regressão

insira a descrição da imagem aqui

O que gera uma previsão de 173,31 usando o valor de x 13,61. Essa previsão sugere uma estimativa refinada do discrepante da seguinte forma; 209-173,31 = 35,69.

Se agora restaurarmos os 10 valores originais, mas substituirmos o valor de y no período 5 (209) pelo valor estimado / limpo 173,31, obteremos insira a descrição da imagem aqui

e insira a descrição da imagem aqui

Recomputado r, obtemos o valor 0,98 da equação de regressão

r = B * [sigmax / sigmay] .98 = [37.4792] * [.38 / 14.71]

Portanto, agora temos uma versão ou r (r = 0,98) que é menos sensível a um outlier identificado na observação 5. OBS: que a sigmay usada acima (14.71) se baseia no y ajustado no período 5 e não na sigmay contaminada original (18.41). O efeito do outlier é grande devido ao tamanho estimado e ao tamanho da amostra. O que tivemos foram 9 pares de leituras (1-4; 6-10) que foram altamente correlacionadas, mas o padrão r foi ofuscado / distorcido pelo discrepante na observação 5.

Existe uma abordagem menos transparente, mas nefasta, poderosa para resolver isso e que é usar o procedimento TSAY http://docplayer.net/12080848-Outliers-level-shifts-and-variance-changes-in-time-series.html para procure e resolva todos e quaisquer outliers de uma só vez. Por exemplo, insira a descrição da imagem aquisugere que o valor externo seja 36,4481, portanto, o valor ajustado (unilateral) é 172,5419. Saída semelhante geraria um gráfico ou tabela real / limpo.insira a descrição da imagem aqui. O procedimento de Tsay, na verdade, iterativel verifica todos os pontos quanto à "importância estatística" e, em seguida, seleciona o melhor ponto que requer ajuste. As soluções de séries temporais são imediatamente aplicáveis ​​se não houver estrutura temporal evidenciada ou potencialmente assumida nos dados. O que fiz foi suprimir a incorporação de qualquer filtro de série temporal, pois eu tinha conhecimento de domínio / "sabia" que ele foi capturado de maneira transversal ieno-longitudinal.

IrishStat
fonte
11
O que a correlação tem a ver com séries temporais, "pulsos", "mudanças de nível" e "pulsos sazonais"?
whuber
4
Como o tempo não está envolvido na regressão em geral, mesmo algo tão simples quanto um coeficiente de autocorrelação ainda não está definido. Você não pode fazer com que todos os problemas estatísticos pareçam uma análise de séries temporais!
whuber
4
@ Eng Tenho medo que esta resposta implique a pergunta. Tem vários problemas, dos quais o maior é que não fornece nenhum procedimento para identificar um "outlier". Outra é que a proposta de iterar o procedimento é inválida - para muitos procedimentos de detecção discrepantes, reduzirá o conjunto de dados para apenas um par de pontos.
whuber
4
Receio que a presente proposta seja inerentemente perigosa, especialmente para usuários ingênuos ou inexperientes, pelo menos pelos seguintes motivos (1) como identificar discrepantes objetivamente (2) o resultado provável são modelos muito complicados com base em decisões ad hoc (3). O procedimento pode não convergir ou não convergir bem. Os iniciantes geralmente identificam demais os valores discrepantes e fazem muito pouco uso de transformações e / ou funções de vínculo sem identidade como forma de domar.
Nick Cox
3
Sem intenção de ofender, @Carl, mas você está com vontade de reclamar, e eu não estou e estou tentando me soltar aqui. Se é o contrário, e pode ser, não me surpreendo se as pessoas me ignoram. Se pareço sugerir que a transformação resolve todos os problemas, tenha certeza de que não estou falando sério.
Nick Cox