No.04547 マハラノビス距離  【空星】 2007/10/19(Fri) 21:57

マハラノビス距離を求めるのに,Excelで求めた距離とRを用いて出した距離が一緒になるか簡単な例で試してみたのですが,答えが違っていました............

番号 年齢 TP
1 59 6.5
2 51 7
3 53 6.5

が基準となるデータとしました。Excelの場合ですが,このデータを規準化して,相関係数行列を求め逆行列を求めます。

逆行列
1.925950383 1.335415477
1.335415477 1.925950383

そして,
求めたいデータ
年齢  TP
30  20

これを,基準となるデータの平均と標準偏差を使って規準化し,基準データの逆行列を使って距離を求めた結果,3453.483と求まりました。

それに対し,Rを用いた場合ですが,

dat <- matrix(c(
59,6.5,51,7,53,6.5
), ncol=2, byrow=TRUE)

Mahalanobis(dat, rbind(c(30, 20)))

として距離を求めると 5180.167という結果がでました。2000も距離の差がでてしまいました....。どうしてこの差がでてくるのか理解できないのですが.....。アドバイスよろしくお願いします。

No.04550 Re: マハラノビス距離  【青木繁伸】 2007/10/20(Sat) 00:12

> それに対し,Rを用いた場合ですが,

というのは,非常に誤解を生じる表現です
私が作ったRプログラムを使ったと言うことですね。私のプログラムが間違えていても,Rに問題があるわけではないので,峻別しましょう。

それはさておき,今はちょっと,計算経過をフォローする気力がないので申し訳ないですが,

マ ハラノビス距離を計算するために必要なのは,相関係数行列ではなくて分散共分散行列ではないだろうかということと,あるデータについてマハラノビス距離を 求める際には,平均値と標準偏差で基準化するのではなくて,平均値で中心化するのではないだろうかということなんですが。私のRプログラムが間違えている なら,お詫びいたします。

あるプログラムが正しい答えを出さないんじゃないかという疑いがある場合,答えが分かっているデータを与えて,そのプログラムが出す答えがおかしいという指摘をすることができます。

自分で計算したものが,そのデータに対する答えとして与えられているものと同じなのに,当該プログラムが出した答えが違うならば,そのプログラムが間違えている可能性があるでしょう。

自分で計算したものが,そのプログラムの答え(および,公表されている答え)と違えば,あなたの計算が間違えている可能性があるでしょう。

プログラムの答えと,公表されている答えが違う場合は,どちらかが間違えているか,どちらも正しいが前提条件が違う場合があります。

いずれにせよ,あなたが信頼できると思う教科書なり文書で呈示されているデータを分析してその答えと比較するのが先決です。

● 「統計学関連なんでもあり」の過去ログ--- 040 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る