カイ二乗検定の超基本を確率分布から考える。(一行データの適合度検定も)
エクセルを使った一群のデータのカイ二乗検定の方法を実演し、それと対照させて、度数分布表を使った従来の検定方法も実演して、カイ二乗値、自由度、P値の本質的な意味も分かってくる事を説明し、深い理解が得られます。
(動画時間:12:34)
1行の1データ群でもカイ二乗検定はできるのか?
こんにちは、リーンシグマ、ブラックベルトのマイク根上です。
業務改善コンサルをしています。
今までカイ二乗検定についての動画を二本作ったのですが、
最近、次のご質問を頂きました。
⇒「カイ二乗検定の後の「残差分析」をエクセルでやる方法」

「1×Jの表だとどうなりますか?」
よなさん、ご質問ありがとうございました。
その時の動画ではクロス集計された
2行2列で2×2の二つのデータ群に
無視できない有意な違いがあるかどうかを
カイ二乗検定で調べました。
⇒「カイ二乗検定とは?エクセルでわかりやすく実演」
今回のご質問では1xJの表という事で、
1行の1群のデータになりますね。
このご質問に対してコメント欄での僕の返信は
「1×Jの表とは1行の表ですね。比べる相手もいないし、
期待値の表も算出できませんので、
カイ二乗は使えないと思います。」
とお答えしましたが、その後再考し、
その限りではないことを再コメントしました。
確率の教科書でよく出てくる、
サイコロやコインなどの一般的な確率が分かるデータや、
すでに会社で事前に決まっている時はそれらを期待値として、
それと実測した1行のデータでもカイ二乗検定は使えます。
この事例を皮切りに、
今日はカイ二乗検定について
本質部分をしっかり理解していきたいと思います。
1行1データ群でのカイ二乗検定のやり方(エクセル使用)

上図のC列にその60個のサイコロの目のデータがあり、
その隣が各サイコロの目の出た回数の集計です。
サイコロを振っていて、
やけに2ばかり出てくるな、という印象でした。
ご覧のように1×6の1行のデータしかありません。
これでカイ二乗検定をどうやってやるのでしょうか?
まずこの検定をする目的ですが、
サイコロは各目が同じ確率で出なくてはいけません。
僕がイカさまをしていたり、
このサイコロに問題が無かったかを知る為に、
データに無視できない偏りがあるかどうかを
カイ二乗検定で調べられるのです。
これを適合度検定とも呼びます。
それをやってみましょう。
1)目的を達成するための帰無仮説を立てる
まず、検定では帰無仮説を立てます。
ここでは「サイコロの出る目に偏りはなかった」とします。
なぜ「偏りがあった」ではだめなのでしょうか?
偏りがあった事を証明しようとすると、
色んなパターンがあるので難しいのです。
しかし「偏りがない」は一パターンしかないので証明が楽なのです。
2)先に最後の比較基準にする「有意水準」を決める
次に有意水準を決めます。一般的には5%か1%です。
今回は5%とします。これについては後でまた触れます。
3)実測値と比較する期待値を設定する。
次にカイ二乗検定の準備で比較する期待値を設定します。
今回は一般的なサイコロの出る確率から出します。
その確率は6分の1ですね。
ここでは60回サイコロを振ったので、
各目が10回ずつ出るのが期待されので、
それを実測値の下に入力します。(下図参照)
仕事でのデータの検定なら、
会社の標準値や目標値を入れる事もできます。
4)実測値と期待値からカイ二乗検定のP値を算出する。

セルL2にP値を出す関数を入れます。
カイ二乗検定は英語で「Chi Square Test」です。
セル内に「=(イコール)」に続きc、h、i と入れると
関数のサジェスチョンが沢山出てきます。
上図の様にこんなに関係する関数があるのですね。
これらの説明も後半でお見せします。
ここではP値を出すので、CHISQ.TESTまで下矢印で移動し、
Tabキーで選択して、直ぐに引数を入れる準備ができます。
ここで実測値範囲、「,(カンマ)」、期待値範囲、括弧閉じるで、
P値が0.126と出てきました。
セルL2内
=CHISQ.TEST(F6:K6,F7:K7)
=0.126
5)最初に設定した有意水準とP値を評価し、行動計画を立てる
これは12.6% > 5%でさっき設定した5%の有意水準より高いので、
帰無仮説の「サイコロの出る目に偏りはなかった」を棄却できないので、
そのまま、「偏りはなかった」と解釈できるのです。
(これを帰無仮説を受容すると言います)
つまり、僕がイカさまでやったり、
サイコロに異常があったなどの問題はなかったと言えるのです。
もしP値がP値 < 5%であったら
「偏りはなかった」確率が低すぎるので「帰無仮説を棄却」し
「偏りはあった」事になり、
問題があったと解釈できるのです。
ここで二つのポイントがあります。
一つはこの有意水準を検定を始める前に決める事です。
P値を見てから決めるなどをしてはいけません。
もう一つは検定結果を参考に次の行動計画を立てるのですが、
検定の結果を絶対視しないで下さい。
重要な判断材料にはなりますが、因果関係を証明するものではありません。
最後は数字以外の情報も加味してご自分達で最終判断をして下さい。
統計の検定を理解するには確率分布の価値の理解から
今回はカイ二乗検定の基本をもう少し深堀します。
そもそもカイ二乗とは何なのでしょうか?
それはカイ二乗分布の事です。
統計や検定ではその他に正規分布やt分布など沢山の確率分布があります。
確率分布とは昔の頭の良い方達が
世の中にある特定のパターンや法則を見つけて数式化してくれたもので、
数値とその数値が発生する確率をグラフ化したものです。
これにより一部の実測データを使うだけで
全体の現象を推定できるようになった、
ありがたいものなのです。
そして各確率分布で特徴が違うので
時と場合によって使い分けているのが各種検定なのです。
カイ二乗分布は二つの対象に有意な違いがあるかどうか
推定するのに適した確率分布で、それを使った検定がカイ二乗検定なのです。
確率分布の数式は非常に複雑なのであえてお見せしません。
しかしカイ二乗の確率分布が下図です。
この特徴は自由度によってグラフが少しずつ変わる事です。
自由度についてはまた後で触れます。
「違いの度合」を表すカイ二乗値の計算方法
現代はソフトウェアを使って簡単にP値を出して
結果を得る事ができますが、
その前までは自由度と度数分布表を使って
大雑把な結果を出してました。
下図がカイ二乗の度数分布表です。
今は難しく考えず、次に進んで下さい。

昔の手順をおさらいする事で
このカイ二乗検定をもっと理解する事ができます。
簡単にやってみましょう。

この実測値と期待値の「違いの度合」をまず表現する必要があります。
まずそれらを引き算してみます(8行参照)。
しかし全て足すとプラスマイナスが相殺されてゼロになったりします。(セルL8)

そこでその差を二乗して、やってみましょう。
これは良さそうですが、
この合計が大きいほど差が大きい事を表したいのですが、
これだとデータの数値が大きいだけでこの合計はいつも大きくなってしまい、
他の結果と相対的な比較ができません。

そこでこの二乗した値を期待値で割ってみます。
これは良さそうで、
全て合計したものを、実際にカイ二乗値と言い採用しています。
今回のデータでは8.6となりました。(セルL8参照)
これを「違いの度合」として使うのです。
自由度の基本とその求め方
次に先ほど出た自由度ですが、今回の自由度は5です。
自由度とは「データの値を自由に決められるデータ数」です。
ちょっとまだ何を言っているか分からないですね。
今回のカイ二乗値を算出するのに使ったデータは全部で12個ですが、
期待値の6個は最初っから決まっていて、自由に値を決められません。
実測値の最初の5個までは色んな数値が来ても構いません。
これでまず自由度は5個になります。
その5個の値が決まったら、今回のカイ二乗値が8.6になるためには
最後の6個目は自動で値が決まって、好きに選ぶ事ができません。
だから最終的には今回のデータの自由度は5なのです。
一般的にはデータ数マイナス1でn-1などと言われます。
カイ二乗分布上でカイ二乗値とP値を考える
今回の結果を自由度5のカイ二乗分布上で見てみましょう。

上図が自由度5のカイ二乗分布になります。
この分布図の横軸がカイ二乗値で今回の8.6の辺りを付けました。
カイ二乗分布図の縦軸は「確率密度」と言いますが、
この検定ではその値は全く使いません。
その代わりにこのカイ二乗値の右側のグラフ内の面積が
帰無仮説が発生する確率になります。つまりP値です。
カイ二乗値と自由度を使って度数分布表からP値を求める
次の作業は算出したカイ二乗値と自由度を使って
カイ二乗の確率分布表からP値を探します。
分布表はカイ二乗の難しい計算を自分でやらなくていいように
昔の頭の良い人が僕らのために用意してくれたのです。
要はエクセルのCHISQ.TEST関数と同じ働きをします。
ただ、その関数は自動でカイ二乗値と自由度も計算してくれる高機能です。

左の「自由度」で今回は5の行を見ます。
データの自由度によって見る行が変わるとはどういう事でしょう?
そういえばカイ二乗分布のグラフも変わってました。
それはデータの自由度によって
カイ二乗値とP値の関係性が変わるからです。
世の中の法則でカイ二乗分布とはそういうものだと分かったからです。
また作業を続けましょう。上の図を再掲します。

右の数値は全てカイ二乗値で、僕らの値の8.6を探します。
きっちり一致はしませんが、6.064と9.236の間です。
一番上の列見出しがP値で、それは0.3と0.1の間です。
ですからP値は0.1から0.3の間と言う事になるのです。
これは前半のエクセル関数で出した0.126とも整合性が取れます。
この度数分布表から有意水準の0.05よりP値が高いので
「違いが無い」という帰無仮説を棄却できないのが分かります。
これから今回の僕のサイコロの結果のバラツキは
通常の誤差の範囲だったと統計上言えるのです。
エクセルではP値は0.126ときっちり出せますが、
ちょっと前までの長い間、普通の人は
P値は0.1から0.3の間としか分かりませんでした。
人類が進化しているのを感じますね。
ちなみにP値が0.05の自由度5のカイ二乗値は11.07だと
上の度数分布表から分かります。
それを分布上で見たのが下図で、その面積が0.05です。

またこの分布の全ての面積は1となりP値が100%になるのです。
それを分布上で見たのが下図です。
ここで縦軸の確率密度の数字を見ると、
感覚的に1になりそうな気がしますね。

カイ二乗に関するエクセル関数を比べる
最後に沢山あるカイ二乗検定のエクセル関数をまとめました。
下図内の各関数の引数のセル参照とその説明を比べて下さい。

CHISQ.TEST関数で実測値と期待値から
P値を出しましたね。(データから、自由度、カイ二乗値を自動計算)
CHISQ.INV.RT関数ではP値(セルL2)と自由度(図内では5)から、
カイ二乗値を算出できます。
また、CHISQ.DIST.RT関数でカイ二乗値 (セルL8)と自由度(図内では5) から、
P値を出す事ができるのです。
この関係性を理解すると関数の意味が分かり易いです。
どうですか、カイ二乗分布の意味が分かってくると
カイ二乗検定のやっている事をもっと深く理解できます。
今は便利な世の中でP値も簡単に出せますので
ぜひこのカイ二乗検定を実務でもっと活用してみて下さい。
<<カイ二乗の記事シリーズ>>