使用している数式は、数値的に不安定であることが長い間知られています。二乗平均が分散と比較して大きい場合、および/または平均積が共分散と比較して大きい場合、分子と分母の括弧で囲まれた項の違いにより、壊滅的なキャンセルの問題が発生する可能性があります。
これにより、計算された分散または共分散が1桁の精度も保持しない(つまり、役に立たないよりも悪い)場合があります。
これらの式は使用しないでください。人々が手作業で計算したとき、彼らはそれを見ることができ、そのような精度の低下が起こったときに対処するとき、それらはある程度理にかなっています。たとえば、これらの数式の使用は、通常、次のような数字を排除することによって行われました。
8901234.567...
8901234.575...
8901234.412...
最初に(少なくとも)8901234が減算されます。これにより、作業時間を大幅に節約するだけでなく、キャンセルの問題を回避できます。その後、平均(および同様の数量)は最後に調整され、分散と共分散はそのまま使用できます。
同様のアイデア(および他のアイデア)をコンピューターで使用できますが、実際には、いつ必要になるかを推測するのではなく、常に使用する必要があります。
この問題に対処する効率的な方法は半世紀以上前から知られていました。たとえば、Welfordの1962年の論文[1]を参照してください(1パスの分散アルゴリズムと共分散アルゴリズムを示しています。安定した2パスのアルゴリズムはすでによく知られています)。Chan et al [2](1983)は、いくつかの分散アルゴリズムを比較し、どれを使用するかを決定する方法を提供します(ほとんどの実装では、一般的に人々は1つのアルゴリズムしか使用しません)。
分散に関するウィキペディアのこの問題に関する議論と分散アルゴリズムに関するその議論を参照してください。
同様のコメントが共分散にも当てはまります。
[1] BPウェルフォード(1962)、
「修正された二乗
和の計算方法と積」、Technometrics Vol。4、Iss。3、419-420
(引用リンク)
[2] TF Chan、GH GolubおよびRJ LeVeque(1983)
「サンプル分散を計算するためのアルゴリズム:分析と推奨」、
The American Statistician、Vol。37、No。3(1983年8月)、pp。242-247
Techレポートバージョン