No.16535 spearman相関係数計算用のinputデータはどちらが適切?(対数変換前 or 対数変換後)  【abc】 2012/02/27(Mon) 16:50

いつも拝見させて頂いています。
下記の質問についてどうか御教授願います。

例えば,A, Bというデータ群があります。2つのデータ群の相関係数を出したいと思います。これらのデータ群は0の値を多く持っているためにデータの値を対数変換して もデータの分布が正規分布になりません。ならば,spearmanの相関係数を使って相関係数を計算しようと思いました。しかしこういう場合, spearmanの相関係数を計算するのに対数変換前のデータ,対数変換後のデータどちらのデータを用いれば良いのかが分かりません。

以上の内容が質問です。
どうぞよろしくお願い致します。

No.16536 Re: spearman相関係数計算用のinputデータはどちらが適切?(対数変換前 or 対数変換後)  【青木繁伸】 2012/02/27(Mon) 18:20

データに 0 を含むのなら,対数変換することはできませんね。

そうではなくて,一般的にということならば。
対 数変換する前のデータで Spearman の相関係数を計算するのと,対数変換した後のデータで Spearman の相関係数を計算するのとは,同じなんですよ。なぜならば,対数変換しても,データの順位(大きさの順序)は不変なので,Sperman の相関係数はデータの順位を使って計算するのだから,順位が変わらなければ同じ結果になりますね。
> (d <- round(gendat2(10, 0.5)*10+50, 1)) # 試しのデータ

[,1] [,2]
[1,] 57.9 66.4
[2,] 64.0 46.2
[3,] 39.8 49.8
[4,] 40.1 49.9
[5,] 56.2 62.6
[6,] 44.6 48.1
[7,] 36.9 36.6
[8,] 62.0 48.7
[9,] 43.9 34.9
[10,] 54.7 56.7

> cor(d, method="spearman") # 元のデータに対してスピアマンの順位相関係数を計算

[,1] [,2]
[1,] 1.0000000 0.2727273
[2,] 0.2727273 1.0000000

> (d2 <- log(d)) # 対数変換する(自然対数でも常用対数でもよい)

[,1] [,2]
[1,] 4.058717 4.195697
[2,] 4.158883 3.832980
[3,] 3.683867 3.908015
[4,] 3.691376 3.910021
[5,] 4.028917 4.136765
[6,] 3.797734 3.873282
[7,] 3.608212 3.600048
[8,] 4.127134 3.885679
[9,] 3.781914 3.552487
[10,] 4.001864 4.037774

> cor(d2, method="spearman") # 対数変換したデータに対してスピアマンの順位相関係数を計算

[,1] [,2]
[1,] 1.0000000 0.2727273
[2,] 0.2727273 1.0000000

No.16543 Re: spearman相関係数計算用のinputデータはどちらが適切?(対数変換前 or 対数変換後)  【abc】 2012/02/29(Wed) 03:46

返信有り難う御座いました。

なるほど,確かにそうでした。spearmanの相関係数の計算方法のことを完全に忘れていました。同じになりますね。いつも反射的に対数変換していたので思考の外にありました。

どうも有り難う御座いました。

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