MS-Excel は,計算精度をないがしろにしている。
まさかとは思ったが,数値計算の本に出てくるような基本的な引っかけに,いとも簡単に引っかかる。
A 列に,1〜2000までの数値,B 列には A 列の数値に定数を加えたものを用意する。
加える定数のオーダーをいろいろ変えて,各変数の平均値,分散,および両者の相関係数を計算すると,おもしろいことになる。
下の例は,1.00E+13 を加えたとき。
A 列 B 列
平均値 1000.5000 10000000001000.2000
分散 333500.0000 5421103853606.9300
相関係数 0.999999889 (注)
1 10000000000001
2 10000000000002
3 10000000000003
: :
2000 10000000002000
Excel を書いたプログラマに教えてあげましょう。
Excel 2004 になって,correl と pearson は同じ値を返すようになった。しかし,極端なデータの場合に変な値になる。