É possível ter valores de coeficiente de correlação de Pearson <-1 ou valores> 1?

7

Estou tentando calcular o coeficiente de correlação de Pearson de acordo com esta fórmula em um grande conjunto de dados:

insira a descrição da imagem aqui

Principalmente, meus valores estão entre -1 e 1, mas às vezes recebo números estranhos como:

1.0000000002
-3 

E assim por diante. É possível ter dados estranhos que resultem nisso ou isso significa que eu tenho um erro no cálculo?

Por exemplo, percebo que às vezes meu somatório de X é 1 e, portanto, o somatório de X ^ 2 seria 1. Isso resulta em um valor como 1.00000002. Outras vezes, terei o somatório de XY como 0 e o cálculo resultante será -3. Isso é estatisticamente possível ou há um erro nos meus cálculos?

ocean800
fonte
2
Qual idioma ou ambiente você está usando?
P.Windridge 14/09/16
3
Seria útil saber um pouco sobre o tamanho dos números com os quais você estava lidando, quantos deles existiam e o nível de precisão dos seus cálculos intermediários, por exemplo, ... há claramente uma questão de estabilidade numérica aqui que pode valer a pena explorar. xy
Silverfish
11
Eu segundo @Silverfish. Talvez você possa postar um exemplo que possamos avaliar. Nb1), você pode acessar o console de JavaScript do Chrome com números Ctrl + Shift + JNb2) Todos JS são 64 bits dupla w3schools.com/js/js_numbers.asp
P.Windridge
11
Resposta na língua: não é possível ter ou matematicamente (por exemplo, para ), mas é possível estar na aritmética IEEE, se e / ou são constantes (como iguais , o que falha em todas as comparações). R>1R<1RRNOT((R>=-1)&(R<=1))Truexy0/0NaN
GeoMatt22
11
"Para o meu conjunto de dados Y, os números são 0 <Y <1 e geralmente entre e-5 e e-350. Para o meu conjunto de dados X, os números estão entre 0 e e7" Ok, fãs de esportes, uma grande variedade de pedidos A magnitude das magnitudes dos números não é uma receita para o sucesso, principalmente para algoritmos numericamente não robustos, mas talvez não seja tão bom assim.
Mark L. Stone

Respostas:

16

As fórmulas que você está usando tem longa foi conhecido por ser numericamente instável. Se as médias quadradas são grandes em comparação com as variações e / ou os produtos médios são grandes em comparação com as covariâncias, a diferença no numerador e nos termos entre parênteses no denominador pode ter problemas com o cancelamento catastrófico .

Às vezes, isso pode levar a variações ou covariâncias calculadas que nem retêm um único dígito de precisão (ou seja, são piores que inúteis).

Não use essas fórmulas. Eles faziam algum sentido quando as pessoas calculavam à mão , onde você podia ver, e lidavam com essa perda de precisão quando isso acontecia - por exemplo, o uso dessas fórmulas era normalmente precedido pela eliminação dos dígitos comuns, portanto, números como este:

 8901234.567...
 8901234.575...
 8901234.412...

primeiro, você teria que subtrair 8901234 (pelo menos) - o que economizaria muito tempo no trabalho, além de evitar o problema de cancelamento. Os meios (e quantidades semelhantes) seriam então ajustados no final, enquanto as variações e covariâncias poderiam ser usadas como estão.

Idéias semelhantes (e outras) podem ser usadas com computadores, mas você realmente precisa usá-las o tempo todo, em vez de tentar adivinhar quando pode precisar delas.

As maneiras eficientes de lidar com esse problema são conhecidas há mais de meio século - por exemplo, ver o artigo de Welford de 1962 [1] (onde ele fornece algoritmos de variância e covariância de uma passagem - os algoritmos estáveis ​​de duas passagens já eram bem conhecidos). Chan et al [2] (1983) comparam vários algoritmos de variância e oferecem uma maneira de decidir quando usar quais (embora na maioria das implementações geralmente as pessoas usem apenas um algoritmo).

Veja a discussão da Wikipedia sobre esse assunto em relação à variação e sua discussão sobre algoritmos de variação .

Comentários semelhantes se aplicam à covariância.

[1] BP Welford (1962),
"Nota sobre um método para calcular somas corrigidas de quadrados e produtos",
Technometrics vol. 4, Iss. 3, 419-420
( link do cidadão )

[2] TF Chan, GH Golub e RJ LeVeque (1983)
"Algoritmos para calcular a variância da amostra: análise e recomendações",
The American Statistician , vol. 37, No. 3 (ago.1983), pp. 242-247
Versão do relatório técnico

Glen_b -Reinstate Monica
fonte
Penso que, para as questões numéricas, o algoritmo simples de duas passagens é geralmente suficientemente confiável: uma passagem para médias, segunda passagem para (co) variações. Minha impressão é que as variantes mais sofisticadas (por exemplo, soma compensada) raramente são necessárias para garantir a confiabilidade quando se usa precisão dupla. (Por questões de eficiência, as versões online e / ou paralela podem ser úteis.) Definitivamente, às vezes sou mal comportado e, apesar disso, uso a forma instável! (para coisas como filtros de média móvel sobre imagens)
GeoMatt22 15/16
11
(+1) @Tim fornece uma Rimplementação do algoritmo de Welford em stats.stackexchange.com/a/235151/919 .
whuber
8

O coeficiente de correlação de Pearson é de fato entre e (inclusive). Isto decorre da desigualdade de Cauchy-Schwarz.1+1

Obter um coeficiente de correlação de é possivelmente (mas improvável) devido a erro numérico, enquanto -3 quase certamente indica um erro na implementação (ou uma plataforma inadequada para valores numéricos! :).1.0000000002

P.Windridge
fonte
Você poderia considerar estender sua resposta (por exemplo, mostrar como se segue do CS ineq. E dizer em poucas palavras sobre erros numéricos) ..?
Tim