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