« sanma (rel 2) | メイン | on mafia »

September 27, 2008

●normality

普通の人はよく「正規分布normal distribution」って言葉を間違えて使うよね,とは思うわけだけれど。

やはり成績の正規分布化は不要(いとうDiary)

と,そこで引用されている
正規分布信仰と偏差値(Babylon5以外のメモ by X^2)

とについて。

まず,正規分布≠「優が2割,良が....」ぢゃない,という点は当たり前。成績割合の配分なんて,別に正規分布でなくても,一様分布でも何でも,single-modalでもmulti-modalでも,作れる。「優が2割,,...」というのは,むしろ平均と分散をどう調整するかの話であって,分布の形の話ではない。
のはずなのに,そこを誤解している人が既に結構いるのは,どーしたもんか,と思ってしまう(うちにもいる)。

で,分布の形の話については,いとうブログで引用されている先のところに書いてあるんだけど,この説明がびみょーに間違ってる気がしないでもない。
こういう場合にCLTが成立しないのは,"iid assumption"のうち,最初のi (Independent)が落ちているからぢゃなくて,2つめのi (Identical)が落ちてるためだと思うんだけど。
つまり,independenceが要求されるのは,randam var(=成績)の個別のdrawの間なので,この場合には,生徒一人一人のdrawがindependentであればよい(もちろん,学校とかクラスとかによって,intra-cluster dependenceがあるのは確かだけれども,まぁさほど本質的ぢゃない)。試験問題の一問一問の回答相互間のdependenceはあっても全く問題ない。このことはたとえば,「正答率pの生徒が,20個の設問に回答する」っていうbinomial distributionを考えてみればすぐ分かる。特定の生徒の20個の設問の正答率には相互に相関があるけれど,でもこの場合には当然CLTは成立する。

それじゃあ今度は,この正答率pがidenticalではなくて,生徒一人一人の能力が違うとしよう。そうすると,CLTが成り立たないことが分かる。たとえば,pが,[0.5, 0.9]でuniformに分布しているとして,100問の問題を1万人に解かせてみる,というシミュレーションデータを作ってみると,kernel densityはこんな感じになる:
unif_grade.gif
これを作ったRのコードはこう:

library(lattice)
n <- 10000
p <- runif(n, min=0.5, max=0.9)
grade <- rep(NA, n)
for (i in 1:n){
grade[i] <- rbinom(1, 100, p[i])
}
densityplot(grade)

この結果を見て分かるように,出てきた成績は,元の正答率pの分布
unif_ability.gif
とよく似ていて,端をちょこっと丸めた感じになってることが分かる。そうすると,引用先のブログにある「もし全ての問題の正誤が100%相関するなら、その平均は単一の問題の得点分布に等しくなり、部分点が無ければ0点と100点に二本のスパイクが立つ分布になります」という部分は,問題間の正答率の相関が原因じゃなくて,そもそも生徒の能力が2種類しかない,という仮定に決定的に依存していることが分かる。

でも,これだけでは,何でmulti-modal(というか,よく見かけるのはbi-modal)な分布を現実によく見かけるんだろう?という点への説明にはなってない。

ここのところはおそらく,問題の数の少なさ(もうちょっと言うと,難易度の段階の数)によるんじゃないかと思う。たとえば,極端な例として,問題は2つしかなくて,その難易度が全然違うとしよう。そうすると,それぞれの個別の問題ごとの成績についてはnormal distributionになるとしても,それを足しあわせた総合成績は,2つのnormalのmixtureになって,bimodalな分布になってしまう。
たとえば,さっきと同じ正答率データを元に,最初の50問は同じで,次の50問は,生徒の間の能力差がより大きく現れる難しい問題だとして,シミュレーションしてみよう:
unif_bm.gif
Rのコードはこう:

bm1 <- rep(NA, n)
bm2 <- rep(NA, n)
bm <- rep(NA, n)
for (i in 1:n){
bm1[i] <- rbinom(1, 50, p[i])
bm2[i] <- rbinom(1, 50, p[i]^3)
bm[i] <- bm1[i]+bm2[i]
}
densityplot(bm)

こうしてみると,だいぶbimodalな分布に近くなってきた(今のところは,p~uniformにしているけれど,これをp~normalとかにしたら,もうちょっとbimodalなことがよく見えるはず)。要は,mixture distributionになってるんだよねぇ。

結局,何が問題かというと,data generating processに複数の次元があることについて,混乱があるんじゃないかと。成績というデータは,a) 生徒数, b) 生徒間heterogeneity,c) 問題数という少なくとも3つの次元があって,a)については確かにasymptoteに逃げ込めるだけれど,b)とc)があるので,multi-modalに見えることが多いと。仮にb)についてnormalityを仮定できても,僕たち個人の教員が作る問題だと,どうしても設問数(より正確には難易度差は)限定されてしまうので(だって採点が大変だ),asymptoteの世界に行けない。逆に,設問が多くて難易度のvariationが豊富な場合だと,割とnormalityを使えるんぢゃないだろーか。

トラックバックURL

このエントリーのトラックバックURL:
http://www.law.tohoku.ac.jp/~hatsuru/cgi-local/mt/mt-tb.cgi/1602

コメントする