Nov 30, 2008

統計学復習メモ4: (思考実験)学力偏差値と合格率

統計解析の入門書を初めから読み返していると、偏差値の説明がちょろっとだけ書かれていた。ああ、あの高校受験や大学受験の模試で出てきたやつだな、と反射的に思った。
筆者が受験生だったのは遠い昔で、入試というものはほとんど意識することは無くなったのだが、それでも私にとって「偏差値」と言えば入試である。というか、これまでの人生で入試関連以外で50が中心の「偏差値」が使われているのを見た記憶が無い。IQテストなんかは点数の分布が正規分布に従っていることを前提にしてるらしいので、これも広い意味では「偏差値」だろうが、一般的な定義では平均値の偏差値が50で、IQの平均点は100なので、狭い意味では偏差値とは言わないと思う。
従って、偏差値という文字を見ると、受験生時代に見た模試の結果の偏差値しか思い浮かばない。

そういえば、偏差値が60とか70とかってどういうことなんだろう?
我ながら貴様本当に理系だったのか?という感じだが、少なくとも私は授業で習わなかったし、試験には出てこなかった。
定義的には何のことはない、偏差値50が平均で、60が+σ、70が+2σだ。正規分布表を見ると、60で大体上位16%、70で上位2.3%らしい。やっぱり、だから何?という感じである。

私は高校時代、偏差値の意味を知らなかったので、模試の偏差値の値を意識することがなく、自分の学力偏差値がどれくらいだったのか覚えていない。しかし、共通一次から名前を変えて間もないセンター試験の点数は覚えていたので、ウェブ上で過去の平均点と最近の標準偏差を調べて(過去の標準偏差は見つからなかった)概算してみると、58くらいだった。自分が受けた大学のは覚えてない(意識すると凹むから)が、東大の偏差値が70だったのをかすかに覚えている。
仮に当時の私の学力の偏差値が58だったとして、仮にもしセンター試験で偏差値70の点を取ったら東大に合格したとすると、私の東大合格率はどれくらいだっただろうか?

そもそもどうやったらそういうのが計算できるのかがさっばりわからなかったので、統計解析の本を眺めながら考えてみた。

上の仮定と命題にもかなり無理があるが、さらに無理な仮定を重ねる。
800点満点で、受験者の点数が正規分布し、平均点が480、標準偏差が120とする。私が必ず偏差値58の点を取ると必ず落ちるので、私の点数も正規分布するとする。標準偏差が不明だが、感覚的な理由で40だったとする。支離滅裂になってきたが、続ける。つまり母集団の点数がN(480,120^2)に従い、私の点数がN(偏差値58の点,40^2)に従い、私の点数が偏差値70の点を超えると東大合格だった、という仮定である。偏差値58とか70とかはN(480,120^2)における話なので、偏差値xの点は480+120*(x-50)/10である。
Maximaに

cdf_normal(480+120*(70-50)/10, 480+120*(58-50)/10, 40),numer;
(私の点数の分布における、偏差値70の点までの累積密度)と入力すると、0.99984という答えが出たので、私の東大合格率は0.00016、すなわち0.016%、6250中1回の確率ということになる。毎日東大を受験しても17年に1回しか合格しない確率だ。

もし私が1浪して偏差値を5上げたとすると、

cdf_normal(480+120*(70-50)/10, 480+120*(63-50)/10, 40),numer;
は0.982と出てくるので、合格率は1.8%である。

…命題と仮定に無理があり過ぎて、話にならないのは、言うまでもない。
とりあえず、こういう計算にはいろんなデータが必要になることがわかった。

See more ...

Posted at 21:32 in 数学 | WriteBacks (0)
WriteBacks

Nov 29, 2008

統計学復習メモ3: 視聴率調査と標本数

TVの視聴率ってどうやって測ってるんだろう?というのはよく聞かれる問いであるし、モニターとして選ばれたいくらかの数の一般家庭に視聴率計測用の機器を取り付けて測っているのだ、というのはよく言われる答えである。そのモニターの数は、一例では関東・関西で600世帯、その他の地域は200世帯、とも言われる。

たったそれだけ?ある番組を20人が見てれば視聴率10%?学校の1クラスより少ない。それではたまたまその番組が好きな人が2人多めや少なめにモニターに入ってれば、すぐ1%くらい変わってしまうじゃないか、そんな値を信用できるのか、そんな値に意味はあるのか?
…とか書くと、貴様本当に大学を理系で卒業したのか?と問われてしまいそうであるが、それでもやはり反射的には疑問に思ってしまうことを自白したい。

このいわゆる標本調査、標本がいくらぐらいだとどれくらいの信頼性があるのだろうか。また、誤差をある程度に抑えるには、どれくらいの標本数が必要なのだろうか。

これを考えるのにも、区間推定の式が使える。母比率の推定区間は[標本比率±t*√(標本比率*(1−標本比率)÷標本数)]で、このtは標準正規分布に従う、と教えられている。数式で書くと、
I \in p\pm t\sqrt{\frac{p(1-p)}{n}} …(1)
(Iは推定区間の下限と上限、pは標本比率、nは標本数)である。信頼度を90%とするとt=1.645であり、n=200で、ある番組を見てたのが20人だった場合、p=0.1ということなので、母比率の推定区間は0.1±1.645*√(0.1*0.9/200) ≒ 0.1±0.035、すなわち6.5%〜13.5%となる。結構大雑把だ。信頼度を95%とするとt=1.96なので、5.8%〜14.2%ともっと幅が広くなる。
この式の±以降の部分が推定区間の幅なので、標本比率を固定すると、誤差をどれくらいにするためにはどれくらいの標本数が必要かを求めることができる。最大誤差をeとすると、
e=t¥sqrt{¥frac{p(1-p)}{n}}
なので、これをnについて解くと、
n=¥left(¥frac{t}{e}¥right)^2p(1-p)
である。例えば、視聴率10%の近辺で、信頼度を90%で視聴率の誤差を1%以内にするためには、n=(1.645/0.01)2*0.1*0.9=2435と求まるので、2400人以上のモニターが必要ということになる。誤差が2%で約600人、3%で約270人である。視聴率が20%近辺だと、さらにハードルが上がり、約4300人で誤差1%、約1100人で誤差2%、約500人で誤差3%となる。視聴率が50%に近づくほど、必要なモニターが増えることがわかる。

ところで、最初の母比率の推定区間の式(1)は、どうしてそうなるのだろうか。

以前のエントリーで、正規分布に従う値の母平均の推定区間が[標本平均±t*√(標本分散÷標本数)]で与えられる、と書いた。数式で書くと、
I \in \bar{X}\pm t\sqrt{\frac{s^2}{n}}
(Iは推定区間の下限と上限、Xは標本、s2はXの不偏分散、nは標本数)という感じであるが、この平方根部分の中身は要するに標本平均の分散ということであるので、ちょっと乱暴であるが、母平均に限らず、標本から求められる推定値からの推定区間が[推定値±t*√(推定値の分散)]で与えられる、と理解していいと思う。
なお、tはt分布に従うが、自由度が大きい場合はt分布が標準正規分布に近似できることになっている。

この推定値が比率の場合、その比率の分散が何になるかが問題だが、これは二項分布の定理から求められる。発生確率がpの場合、n回の試行で発生する回数Xの期待値はE(X)=np、分散はV(X)=np(1-p)だと二項分布の定理で確定しているので、n個の標本中の確率pで存在する何かの個数Xの期待値もE(X)=npであり、分散もV(X)=np(1-p)であることから、存在確率X/nの期待値はE(X/n)=p、分散はV(X/n)=p(1-p)/nだとわかる。これを使って、[推定値±t*√(推定値の分散)]=E(X/n)±t√V(X/n)=(1)となる訳だ。

See more ...

Posted at 21:44 in 数学 | WriteBacks (0)
WriteBacks

Nov 16, 2008

統計学復習メモ2: t分布と不偏分散

t分布を、正規分布に従う標本の平均が従う分布である、という感じに捉えて、なんとなく理解した気になると、1つ疑問が湧いた。正規分布に従う複数の値の和はやはり正規分布に従うのではなかったか?それなら、値の和を変数の数で割ったもの、つまり平均もt分布でなく正規分布に従うはずではないのか?
x1,x2をそれぞれ正規分布N(μ112),N(μ222)に従う確率変数とすると、x1+x2はN(μ121222)に従う、つまり和の平均は平均の和、和の分散も分散の和となる、というのを正規分布の性質の1つとして教えられている。x1+x2が正規分布に従うなら(x1+x2)/2も正規分布(この場合N(\frac{\mu_1+\mu_2}{2},\frac{\sigma_1^2+\sigma_2^2}{4}))に従うはずである。
というか、正規分布N(μ,σ2)に従うn個の標本の平均はN(μ,σ2/n)に従う、つまりn個の平均を取ると分散が1/nになる、という定理を覚えていないと、t分布の式を読むのが難しいと思う。それからしてもやはり標本の平均は正規分布に従うはずである。

そんなことで混乱したのは私だけだろうか?

混乱の原因は、標本平均、標本分散と母平均、毋分散をごっちゃにしたことだった。母平均をμ、毋分散をσ2、標本をx1...xn、標本平均をm=\bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_i、標本分散をs_n^2=\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})^2とすると、mはあくまでN(μ,σ2/n)に従うのであって、N(m,Sn2/n)に従うのではないのである。つまり、μやσが不明な場合はmが従う正規分布も不明なのである。
そこで、mやSn2からμの範囲を推定するのにt分布が出てくる。
(※本エントリーではシステムの都合上、標本平均をmと書いたりxバー(xの上にバー)と書いたりするが、両者は同じものである)

…という感じに混乱を解決するのにも私には結構時間がかかったのだが、その間に私の理解を妨げたものの1つが、不偏分散の概念である。
標本分散が
s_n^2=\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})^2
であるのに対して、母平均の区間推定に必要になる不偏分散は
s_{n-1}^2=\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})^2
と教わる。nで割るかn-1で割るかの違いだけである。なぜn-1で割るのかというと、「自由度がn-1だから」と教わる。そんなのは丸覚えすれば引っかかる必要の無いことであるが、私の脳はそこで「???」となり先に進まなくなった。

「推定値の不偏分散の自由度が(n-1)である」理由は、ばらつきの指標の元となる
Σ(xi-m)2
のmにm=1/n Σxiという縛りがあるため、mとx1...xn-1が決まるとxnが決まるので、この2乗和がn-1個分しか動かないから、と説明されることが多い。極端な例としては、n=2の時、本当の平均μがわかってれば
Σ(xi-μ)2
はx1の分もx2の分もばらつきに応じて大きくなるのに対して、
\sum_{i=1}^{n}(x_i-m)^2 = \sum_{i=1}^{n}(x_i-\frac{x_1+x_2}{2})^2
は計算すると
(x1-x2)2/4
となり、標本が2個あるのに、その間の差1個分しかばらつきの値として反映されない。同様の理由により、標本をn個としてもn-1個分しかばらつきの値として加算されないのである。

その説明によって、私は一瞬目から鱗が落ちた気がしたが、まだ納得できなかった。もし標本の数を母集団の大きさと同じにすれば、つまり母集団の全てをサンプルとして拾えば、mが本当の平均になるから、自由度がn-1でも分散は(1/n)Σ(xn-m)2ではないか?
…ここから先はまだ疑問が解けていないが、おそらく推定値の分散と実際のデータの分散は同じ尺度では測れないということのような予感がする。

ところで、2008/11/16時点の日本語のWikipediaの分散の項に、不偏分散の計算、というのが載っている。曰く、
\frac{1}{n} \sum_{i=1}^{n}(x_i - \mu)^2

= \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2+\frac{1}{n}\frac{1}{n} \sum_{i=1}^{n}(x_i-\mu)^2
になるので、
\frac{1}{n} \sum_{i=1}^{n}(x_i - \mu)^2= \frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2
となるとのことである。これだ!と思って計算を追ってみると、途中の
\frac{1}{n} \sum_{i=1}^{n}(x_i - \mu)^2
= \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2+\frac{1}{n^2} \{ \sum_{i=1}^{n}(x_i-\mu)^2 +2\sum_{i\neq j}^{n}(x_i-\mu)(x_j-\mu) \}
までは確認できたが、その次の
= \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2+\frac{1}{n}\frac{1}{n} \sum_{i=1}^{n}(x_i-\mu)^2
はわからなかった。というか、少なくともn=2として展開してみる限り、そうはならない。=が≒の間違いなのかも知れないが、よくわからない。

結局、私は次のように理解した。上のWikipediaの計算と同じ方針で、x_i=(x_i-\bar{x})+\bar{x}として両辺の分散を取ると、分散の加法性から
\sigma^2=Var(X-\bar{x})+\frac{\sigma^2}{n}
となる。Var(...)の部分は標本分散なので、これを毋分散σ2について解くと、
\sigma^2 = \frac{n}{n-1}Var(X-\bar{x}) = \frac{n}{n-1}\frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2
= \frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2
となる。これが標本から推測される毋分散であり、毋分散と同じ尺度で使える不偏分散ということである。

See more ...

Posted at 21:44 in 数学 | WriteBacks (0)
WriteBacks

Nov 09, 2008

統計学復習メモ1: t分布とχ2分布

高校時代は確率が得意中の得意だった私が、大学の統計学の講義にはすぐついていけなくなった。高3の時は、授業で順列と組み合わせの公式を覚えた途端、ほとんど全ての問題が難なく解けた。周りには理解につまずく人がいたが、私にはなぜ理解できないのかがわからなかった。大学2年の時に受けた統計学の講義も、半年くらいは割と楽についていってたが、ある時点から突然理解できなくなった。それは、平坦な道に突如現れた高い壁だった。どちらかというと興味があった科目なので、教科書をじっくりと何度も読んで理解しようとしたが、特に数式や日本語が難しい訳でもないのに、全然頭に入らなかった。なぜ理解できないのかがわからない不思議な感覚だった。
「推定・検定」という名前の関門だった。

結局、大学で統計学の講義を3回くらい取って、毎回1から学んだが、いつも確率分布までは理解できるのに、「推定・検定」で手も足も出ず挫折した。3回目の統計学で悟ったのは、t分布とカイ2乗分布が障害ということだった。

それから幾年月、それ以来統計学に接する機会が無かったが、推定・検定のことがずっと気にかかっていた。大学時代に最も興味があった科目の1つでありながら全く私を寄せ付けず、私に最も挫折感を味わわせた推定・検定を克服しない限り、死んでも死に切れない。今更そんなものを勉強して何の役に立つのかと言われようが関係ないのである。

という訳で先々月ぐらいからリベンジを試みているが、やはり相性が悪い。何となく少し理解した気になっても、2週間もするとすっかり忘れてしまい、先に進まない。後半が推定・検定でそれで終わりの入門書チックな統計解析の本を買って読んでるが、後半のみもう4周目くらいである。私以外のこれを読む人には前半と後半、確率分布と推定・検定の間に落差は無いのだろうか。

無駄話はこの辺にして、勉強したことをメモする。

t分布とは、xを平均μ、分散σ2の正規分布N(μ,σ2)に従う標本、(xの上にバー)を標本平均、nを標本の数、sを標準偏差(不偏分散の平方根)とした時、
t=¥frac{¥overline{x}-¥mu}{s/¥sqrt{n}}
というtが従う分布であり、
χ2分布とは、
¥chi^2=¥sum_{i=1}^n ¥left(¥frac{x_i-¥mu_i}{¥sigma_i}¥right)^2
というχ2が従う分布である、というようなことがどこにでも書いてある。
入門書で無ければ、さらにこれらの分布の確率密度関数が、ガンマ関数を使った容赦ない鮮烈な式で書かれる。
これが推定・検定の本題の前に出てくるから厄介だ。

どちらもにわかにはイメージが掴みにくい数式であり、なぜこういうものが必要かを説明される前に、まずこれを覚えて、と言われるのは結構辛いと思う。
それらの分布の意味を理解する前に、使い道を1つくらい知った方が、最初の理解の足掛かりになるし、トータルとして速く理解できるのではないだろうか。

という訳で、t分布の使用例として、母平均の区間推定を考えてみる。
大勢の人が受けたテストの点が正規分布に従うとする。その中の10人の点数(標本)が
70, 60, 40, 80, 40, 60, 30, 80, 50, 90
だとすると、全体の平均点は95%の確率でどの範囲に入ると推測できるだろうか。

ここで、その範囲が(標本平均±t*√(標本分散÷標本数))で求められるというのが、区間推定のありがたい教えである。

上の標本の場合、平均が60、分散が400、自由度(n-1)=9で信頼区間が95%となるtが2.262なので、推定区間は60±2.262√(400/10) ≒ 60±14.3ということになる。標本の平均は60点だが、95%の確率で全体の平均がこの範囲に入るということだ。

標本平均の分散が(標本分散÷標本数)になるというのは定理としてあるので、t分布のtの値というのは、標本の標準偏差を何倍すれば推定区間の幅になるのかを教えてくれるものと考えられる。

χ2分布の使用例として、ばらつきの片側検定を考えてみる。
プログラマーがそれぞれ2,3,3,4,8人の5つのソフトハウスにソフトウェアの開発を委託してるとし、あるプロジェクトにおいてそれぞれのソフトハウスが発生させたバグの数が15,18,14,19,34だったとする。バグの数がプログラマーの数に比例するという仮定は間違ってる方の5%に入る(95%の確率で間違ってる)だろうか。

ここで、((測定値−期待値)の2乗÷期待値)の和、という値がχ2分布に従うので、χ2分布を見ればその発生確率がわかる、というのが、χ2検定のマジカルかつミラクルな教えである。

上の標本の場合、バグが計100件でプログラマーが計20人なので、1人当たり5件、ソフトハウス別では10,15,15,20,40件となるのが期待値である。従って、測定値のχ2の値は、
(15-10)2/10 + (18-15)2/15 + (14-15)2/15 + (19-20)2/20 + (34-40)2/40 ≒ 4.1
である。自由度(5-1)=4で棄却域(有意水準)が5%となる、χ2分布におけるχ2の値は9.49なので、測定値のχ2の値はそれより小さく、95%の確率で起こり得る範囲内であることがわかる。
従って、バグの数がプログラマーの数に比例するという仮定は間違ってるとは言えない。

χ2分布のχ2の値というのは、同時に起こらない複数の事象の発生回数と各々の回数の期待値がわかる場合に、その期待結果とのずれがどれくらいの確率で起こるものかを調べるのに使える、発生回数のばらつきの尺度だと考えられる。

See more ...

Posted at 19:33 in 数学 | WriteBacks (0)
WriteBacks

Nov 02, 2008

MacでJava3Dを使う時の注意

自作のJava3DアプレットがMacで動かないことに気付いて調べた結果、現時点でMac OS X向けに公式にリリースされているJava3Dのバージョンが1.4.2と古いことが原因だと判明した。

APIリファレンスにあるから使っていた、javax.vecmath.Vector3dとかのgetX(),getY(),getZ()がバージョン1.5以降にしかないのだ。
こういうメソッドは最初に無いものをなぜ後から追加するのだろう?最初から無いならずっと無いままでいいと思うのだが。互換性を考慮するのが面倒で仕方ない。そんなにメンバアクセスはメソッド呼び出しでできないと気が済まない人がいるのだろうか。

ともかく、仕方ないのでgetX()とかを使わないように書き直した。
3Dカッチンアプレット
 ソースコード
J3DTest2アプレット
 ソースコード

See more ...

Posted at 21:39 in Java | WriteBacks (0)
WriteBacks