ニートの年齢別割合が1996年と2012年で関連性があるか独立性の検定をしてみる。
ニートの割合
| 1996 | 2012 | |
| 15~19歳 | 9 | 9 |
| 20~24歳 | 12 | 17 |
| 25~29歳 | 10 | 18 |
| 30~34歳 | 9 | 18 |
| 合計 | 40 | 63 |
http://www.shiruporuto.jp/finance/tokei/stat/stat003.html
データを作成する。
> neet_1 <- matrix(c(9,9,12,17,10,18,9,18),ncol=2, byrow=T) > neet_1 [,1] [,2] [1,] 9 9 [2,] 12 17 [3,] 10 18 [4,] 9 18
Χ二乗検定
> chisq.test(neet_1) Pearson's Chi-squared test data: neet_1 X-squared = 1.4711, df = 3, p-value = 0.689
調査年度の違いによるニート年齢層の割合に違いは見られないようだ。ついでにフィッシャーの正確性検定も実行してみる。
> fisher.test(neet_1) Fisher's Exact Test for Count Data data: neet_1 p-value = 0.6977 alternative hypothesis: two.sided
下記の検定は計数ではなく、平均値でありχ二乗検定にはそぐわないというコメントをいただいた。
次に正社員の年収とパートタイム労働者の年収が年齢に関連するかを調べる。
http://www.shiruporuto.jp/finance/tokei/stat/stat003.html
予想では年齢が若いと正社員の年収が低い割にはフリーターなどでもある程度稼げる。それに対して、年齢が増えると正社員の年収は高くなり、パートタイムの収入は抑えられるために差が出ると考えられる。
> x <- matrix(c(233, 330,57,130),ncol=2, byrow=T) > chisq.test(x) Pearson's Chi-squared test with Yates' continuity correction data: x X-squared = 6.5856, df = 1, p-value = 0.01028
有意水準5%で帰無仮説は棄却された。よって年齢で関連性があるといえる。
なぜ計数では利用できるが、平均では利用できないかを考えてみる。ちなみに文章として書いてみたもののかなりうさんくさくなっているのであくまでメモ代わりである。
χ二乗検定では観測データと期待値からχ二乗値を計算し、この値についてχ二乗分布から発生確率を求める。χ二乗分布は観測データと期待値に差がないと仮定したときのχ二乗値について確率をプロットしている。
ここでポイントとなるのがχ二乗検定での入力値は観測値と期待値である。観測値は実際にデータから得られた数値である。”年収”という数値も観測値になりうる。しかし年収の平均値を観測値としてとりあつかえるかというとまた別問題である。
次に期待値である。データから得られた年収については期待値はない。例えば下記の例では正社員の年収と尾パートタイムの年収では期待値がない。このデータをχ二乗検定にかけるときに利用する期待値の計算にかけると何が起きるか。
| 217.6933 | 345.3067 | 563 |
| 72.30667 | 114.6933 | 187 |
| 290 | 460 | 750 |
問 題の一つ目は、サンプル数が異なることを考えると単純に年齢別の正社員の年収の平均を足しても正しい数値にはならない。例えば18~19歳については 233万円、60~64歳では330万円になっている。これを単純に足して563万円としているがこの値は正しくない。この値が何を意味しているかという と、今18歳~から一人、60歳~から一人選び、収入を合計したときに平均すると563万円になるという意味と考えられる。
しかし例えば18歳~については500人、60歳~については1000人調べたとする。このときこのデータにおける平均は以下のようになる。
( 233 x 500 + 330 x 1000 ) / 1500 = 297万円
そうすると平均値の合計は297万円 x 2となり値が異なる。
問 題の2つ目は全体の収入の合計から割合を出したとしても期待値にはならない。期待値はΣ得られる値 x 確率で求める値である。上記の計算だと 確率としては正社員では563 / 750を利用しているが、これは確率ではない、全体に占める正社員の金額の割合である。しかも問題の一つ目を考えると母数も怪しい。
書いていてだんだんわからなくなってきたが平均値を足すとか平均値から割合を計算するという行為はなにを計算しているかを考えると何の意味もない。意味がない数字を利用することはできないので、計数値ではない場合にΧ二乗検定は成り立たないと考えられる。
これは,いけません。
chisq.test(neet_1)
数値の単位は,「万人」なのです。
では,数値を10000倍すればよいかという問題でもありません(10000万倍すれば,高度に有意となりますが)。
そもそもこれは,全数調査なので,検定にはなじまないデータです。
chisq.test(x)
こちらは,数値は,計数データではないので,全く不適切です。
(平均値なので,小数点以下の数字があるこをを考えても,不適切であることはわかるでしょう…)
[…] こちらでサンプル数について指摘をいただいたのでサンプル数によりp値がどのように変わるかをみてみる。 […]
コメントありがとうございます。
ちなみに10000万倍にすると問題があるというのは有意になってしまうからでしょうか。サンプルが大きいほうがよい結果が得られる傾向があるという理解でいたのですが。
有意になってしまうからではなく,「全数調査なので,検定にはなじまない」ということです。
> サンプルが大きいほうがよい結果が得られる傾向がある
そのとおりではあるが,大きすぎるとなんでもかんでも有意になる。統計学的に有意というのと,実質的に意味があるというのは違う。実質的に意味がないのに,サンプルサイズが大きいために統計学的に有意になってもそれこそ意味がない。実質的に意味がないなら,検定しない。データを採るときにはサンプリングサイズ設計しておく。