No.13184 相関係数とサンプルサイズ  【rao】 2010/07/29(Thu) 18:34

よろしくお願いいたします。
サンプルサイズが大きくなると相関係数の値は小さくなりやすい,ということはあるのでしょうか?

知人にそのような話を聞き,またその知人は「何かの本」で見たということらしいのですが (あいまいですみません) 私は初めて聞いたので疑問に思い,質問させていただきました。
手元の教科書を見てもそのような記述は見当たりません。

また疑問に思ったのでRでシミュレーションしてみましたが,そのようなことはないのではと思います。
以下に私の書いたコードを記述します(マシンによっては実行に時間がかかりますのでご注意ください)。
# 母集団として0.5の相関をもつ2変数を生成する
library(MASS)
sg <- matrix(c(1, 0.5, 0.5,1), nr=2)
vs <- mvrnorm(n=10000, mu=c(0, 0), Sigma=sg, empirical=TRUE)
x <- vs[,1]
y <- vs[,2]

vv <- vector() # 結果格納用のベクトル
for (i in 2:2000) { # 2サンプルから2000サンプルを抽出し,相関係数を計算しvvに格納する
nv <- sample(1:10000, i)
a <- x[nv]
b <- y[nv]
vv[i-1] <- cor(a,b)
}
plot(vv) # プロット
お見苦しいコードでしたらすみません。このようにすると(自分としては当たり前だと思うのですが)サンプルが増えるほど母集団の相関である0.5に近づきます。

というわけで,疑問は解決しておりません。
サンプルサイズが増えると相関係数が小さくなりやすいということがあるのか,お教えいただけたらと思います。
また,もしそうなら,上記のシミュレーションのコードの誤りについてもご指摘いただければ嬉しく思います。

よろしくお願いします。

==
青木先生,ご回答ありがとうございます。コードについても勉強になりました。
(返信の投稿はなぜか何度やっても掲示板に反映されなかったので記事修正にてお返事させていただきました。)


No.13188 Re: 相関係数とサンプルサイズ  【青木繁伸】 2010/07/29(Thu) 19:12

「サンプルサイズが大きくなると相関係数が小さくなりやすい」のではなく,「サンプルサイズが小さいと標本相関係 数が母相関係数より大きくなることもある」ということでしょう。母相関係数より小さくなることもあります。つまり,母相関係数が 0.5 のとき,貴方が示したシミュレーション結果に添って言えば,1 に近い相関係数や 0 やマイナスの相関係数が得られることもあるということです。極端なことをいえば,サンプルサイズが 2 だと母相関係数がほどほどの値で(極端な場合には 0)であっても,標本相関係数は -1 か 1 か(まれに 計算不能。連続変数ならそのような可能性はゼロ)になりますね。サンプルサイズが大きくなれば,母相関係数に近づくという当たり前の結果になるだけで,母 相関係数より小さくなるわけではありません。
> d <- gendat2(10000, 0)
> xtabs(~replicate(1000, cor(d[sample(10000, 2),])[1,2]))
replicate(1000, cor(d[sample(10000, 2), ])[1, 2])
-1 1
474 526
母相関係数が 0 の母集団からの標本抽出で,サンプルサイズがおおきくなると,母相関係数から大きく外れた標本相関係数が得られる確率は低くなります。
sim <- function(n)
{
r <- replicate(1000, cor(d[sample(10000, n),])[1,2])
hist(r, main=paste("n =", n))
}

d <- gendat2(10000, 0) # 母相関 0
layout(matrix(1:4, 2))
sim(3)
sim(5)
sim(10)
sim(100)
layout(1)
これで,以下のような結果が表示されます。それぞれ,標本調査を 1000 回行ったときの標本相関係数のヒストグラムです。

vv <- vector() は,大きさのわかっている場合は vv <- vector("numeric", 1999) または vv <- numeric(1999) のように個数を指定しておく方が速いと思います。


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