東京大学 | 大学院医学系研究科 | 国際保健学専攻 | 人類生態学教室TOP | 2nd

社会統計学第6回
「カテゴリカルデータの解析(2)」(2001年10月25日)

トップ | 更新情報 | 研究と教育 | 業績 | 計算機 | 写真 | 枕草子 | 著者 | 目安箱 | 書評 | 社会統計学目次

最終更新: 2001年11月9日 金曜日 20時53分

全部を一括して読む | 前回へ


講義概要

母比率に関する検定(1)=カイ二乗適合度検定
▼データの度数分布が期待される分布と一致しないという仮説(帰無仮説)が棄却できるかどうかを検定する。
▼基本としては,カイ二乗検定を行う。カテゴリ数が全部でn個あるとき,i番目のカテゴリの観測度数がOi,期待度数がEiであるとき,χ2=Σ{(Oi-Ei)2/Ei}が,自由度n-1のカイ二乗分布に従うことを利用して検定する(但し,不明な母数があるときは,その数も自由度から引く。但し,Eiが1未満のときは,通常カテゴリ分けをやり直す。
▼このようなχ2が大きな値になることは,観測された度数分布が期待される分布と一致している可能性が極めて低いことを意味する。
chi-square distribution of d.f. 1▼ちなみに,自由度1のカイ二乗分布は,右図のような形になる。つまり,χ2値が1より大きくなる確率は,約0.32ということである。
参考までに,自由度nのカイ二乗分布の確率密度関数は,x>0について,
fn(x) = 1/(2(n/2)Γ(n/2)) x(n/2-1) e(-x/2)
であり,平均n,分散2nである。なお,自由度(degree of freedom; d.f.)とは,標本の数から,前もって推定する母数の数を引いた値である。この例ならΣEiだけをΣOiとして推定することで,E1からEn-1まで定めてやっとEnが決まることになり,自由度は1を引く。
▼分布関数(確率母関数)は,確率密度関数を積分したものであり,図で見れば面積に当たる。その逆関数,つまり面積に対応する値を与える関数を分位点関数という。自由度1のカイ二乗分布の場合,Rでは,カイ二乗値xについて,確率密度関数がdchisq(x,1),分布関数がpchisq(x,1)で与えられ,95%点を与える分位点関数がqchisq(0.95,1)で与えられる。これは,χ2値がqchisq(0.95,1)以下である確率が95%であることを意味する。逆にいえば,χ2値がqchisq(0.95,1)より大きくなることは,確率5%もない,滅多にないことである。言い換えると,「観測された分布が期待される分布と一致している可能性は5%もない」ということである。このようなとき,「観測された分布が期待される分布と違いがない」という仮説は有意水準5%で棄却されたといい,観測された分布は期待される分布と一致するとはいえない,と解釈する。
母比率に関する検定(2)
▼例題:ある病院で生まれた子ども900人中,男児は480人であった。このデータから,(1)男女の生まれる比率は半々であるという仮説,(2)男児1.06に対して女児1という割合で生まれるという仮説,は支持されるか?
▼ヒント:(1)の場合, χ2値は,X<-(480-450)^2/450+(420-450)^2/450として計算される。この値が自由度1のカイ二乗分布に従うので,1-pchisq(X,1)とすれば,男女の生まれる比率が半々である場合に900人中男児480人という観察値が得られる確率が計算できる。
▼その確率がきわめて小さければ(通常5%未満),統計的に意味があるほど有り得なさそうな(「統計的に有意な」という)現象であると考えて,仮説を棄却する。
▼実は,この場合は母比率が0.5であるとして2項分布で計算してもよい。480人以上になる確率と420人以下になる確率の合計がきわめて小さければ,「男女の生まれる比率は半々である」という仮説はありそうもないと考えてよいことになる。母比率0.5で起こる現象が,900回中ちょうど480回起こる確率は,choose(900,480)*0.5^480*0.5^420で与えられるが,Rには2項分布についてもカイ二乗分布と同じように確率密度関数を与える関数があり,この確率はdbinom(480,900,0.5)で与えられる。480人以上になる確率は,dbinom(480,900,0.5)+dbinom(481,900,0.5)+…+dbinom(900,900,0.5)となるが,これは分布関数を使えば,1-pbinom(480,900,0.5)で計算できる。420人以下になる確率は,dbinom(0,900,0.5)+dbinom(1,900,0.5)+…+dbinom(420,900,0.5)であり,分布関数を使って書けば,pbinom(420,900,0.5)である。従って,求める確率はこれらの和,即ち,1-pbinom(480,900,0.5)+pbinom(420,900,0.5)である。
▼2項分布から求めた値を1-pchisq(X,1)と比較し,ほぼ一致していることを確認せよ。
▼(2)についてはどうか? 自分で計算して確認せよ。
母比率に関する検定(3)
▼難しい練習問題:1日の交通事故件数を155日間について調べたところ,0件の日が79日,1件の日が61日,2件の日が13日,3件の日が1日,4件以上の日が1日だったとする。このとき,1日あたりの交通事故件数はポアソン分布に従うと言えるか?
▼一般に,稀な事象についてベルヌーイ試行を行うときの事象生起数がポアソン分布に従うことが知られている。交通事故は稀な事象であり,ある日に交通事故が起こる件数と翌日に交通事故が起こる件数は独立と考えられるので,交通事故件数はポアソン分布に従うための条件を満たしている。
▼Rでは,ポアソン分布の確率関数(離散分布の場合は,確率密度関数と言わずに確率関数というのが普通)は,dpois(件数,期待値)で与えられる。
▼ポアソン分布の期待値(これは母数である)がわからないので,データから推定すれば,(0×79 + 1×61 + 2×13 + 3×1 + 4×1)/155で得られる。Rで書けば,この値をEhhに保存するとして,cc<-c(0:4); hh<-c(79,61,13,1,1); Ehh<-sum(cc*hh)/sum(hh)となる。
▼従って,一日の事故件数が期待値Ehhのポアソン分布に従うとしたときの,事故件数0〜4の期待日数eppは,epp<-dpois(cc,Ehh)*sum(hh)で得られる。
▼こうなれば,X<-sum((hh-epp)^2/epp)としてカイ二乗値を求め,これが自由度3(件数の種類が5種類あって,ポアソン分布の期待値が母数として推定されたので,5−1−1=3となる)のカイ二乗分布に従うとして1-pchisq(X,3)が0.05より小さいかどうかで判定すれば良さそうなものだが,そうはいかない。
▼eppの値を見ればわかるが,epp[cc==4]が1より小さいのである。期待度数が1より小さいときはカテゴリを併合しなくてはならないので,epp[cc==4]をepp[cc==3]と併合する。
▼即ち,epp[cc<3]->ep; epp[cc==3]+epp[cc==4]->ep[cc==3]; ep<-ep[!is.na(ep)]として期待度数の分布ep,hh[cc<3]->h; hh[cc==3]+hh[cc==4]->h[cc==3]; h<-h[!is.na(h)]として観測度数の分布hを得る。
▼後は,XX<-sum((h-ep)^2/ep)としてカイ二乗値を求め,1-pchisq(X,2)を計算すると,約0.187となることがわかる。即ち,与えられたデータの1日の交通事故件数がポアソン分布に従っている確率は約19%あり,ポアソン分布に従っていないとはいえないことになる。 自分で計算して確認せよ。

フォロー

Rでの確率密度関数,分布関数,分位点関数の一覧
分布の種類確率密度関数
(probability density function)
分布関数=確率母関数=累積確率密度関数
(distribution function = probability generating function = cumulative probability density function)
分位点関数
(quartile function)
カイ二乗分布dchisq(カイ二乗値, 自由度)pchisq(カイ二乗値, 自由度)qchisq(%, 自由度)
2項分布dbinom(生起回数, 試行回数, 母比率)pbinom(生起回数, 試行回数, 母比率)qbinom(%, 試行回数, 母比率)
ポアソン分布dpois(生起回数, 期待値)ppois(生起回数, 期待値)qpois(%, 期待値)
正規分布(1)dnorm(Zスコア,平均値,標準偏差)pnorm(Zスコア,平均値,標準偏差)qnorm(%, 平均値,標準偏差)
対数正規分布(2)dlnorm(Zスコア,対数平均値,対数標準偏差)plnorm(Zスコア,対数平均値,対数標準偏差)qlnorm(%, 対数平均値,対数標準偏差)
一様分布(3)dunif(値,最小値,最大値)punif(値,最小値,最大値)qunif(%, 最小値,最大値)
t分布dt(t値,自由度)pt(t値,自由度)qt(%, 自由度)
F分布df(F値,第1自由度,第2自由度)pf(F値,第1自由度,第2自由度)qf(%, 第1自由度,第2自由度)
(1)平均値と標準偏差は省略可能。省略時は標準正規分布(平均0, 標準偏差1)になる。
(2)対数平均値と対数標準偏差は省略可能。省略時は対数平均0, 対数標準偏差1になる。なお,対数平均とは自然対数をとった値の平均,対数標準偏差とは自然対数をとった値の標準偏差をいう。dlnorm(1)はdnorm(0)と等しい。
(3)最小値と最大値は省略可能。省略時は0と1になる。
(注)これらの分布関数に従う乱数を生成する関数もある。例えば,これまでにも何度か取り上げた,0から1までの一様乱数を1000個生成する関数がrunif(1000)であるのは,runif(1000,0,1)の省略形である。同様に考えれば,試行回数100回,母比率0.2の2項分布に従う乱数を1000個発生させるには,rbinom(1000,100,0.2)とすれば良いことがわかるだろう。
母比率に関する検定(2)の例題(2)の解答例
▼男児1.06に対して女児1の比率が正しい場合に期待される男児と女児の人数は,EM<-900*1.06/(1.06+1)及びEF<-900*1/(1.06+1)として得られる。
▼適合度を示すカイ二乗値は,X<-(480-EM)^2/EM+(420-EF)^2/EFとなる。
▼カテゴリ数は2なので自由度1のカイ二乗分布を使って検定すれば,男児1.06に対して女児1という割合で生まれるという仮説が正しい場合に男児480人,女児420人という結果が得られる確率が1-pchisq(X,1)として計算できる。
▼Rで計算するとこの値は,0.2598729となる。正しい可能性が25%以上もあるのだから,この仮説は棄却されない。
練習問題「20代後半の女性の未婚率の全国平均が約40%であるとき,ある県で20代後半の女性を400人,ランダムサンプリングしたところ,140人が未婚であったとすると,この県の未婚率は全国平均と一致していると言えるか?」の解答例
▼帰無仮説「この県の未婚率は全国平均と等しい」の下で期待される未婚者人数は400*0.4なので160人である。実際の既婚人数は260人,帰無仮説の下で期待される既婚人数は240人である。
▼従って,適合度を示すカイ二乗値は,X<-(140-160)^2/160+(260-240)^2/240となる。
▼1-pchisq(X,1)を計算すると,0.04122683となるので,帰無仮説は有意水準5%で棄却される。
▼従って,この県の未婚率は全国平均と一致しているとはいえない。
※なお,県Aからのランダムサンプル4000人で未婚者が1600人,県Bからのランダムサンプル400人で未婚者が140人だったときに県Aの未婚率と県Bの未婚率に違いはないか? という問題ならば,県Aからのサンプルと県Bからのサンプルはどちらも相手には含まれないので,母比率ではなく,独立2群間の比率の差の検定を行う。この場合,Rでは,u<-c(1600,140); a<-c(4000,400); prop.test(u,a)とすればよい(ただし,実はこの検定は,統計モデルとしては,全対象者4400人についての,県と未婚/既婚という2つのカテゴリカル変数の独立性の検定と同じことになる)。

全部を一括して読む | 次回へ