見出し画像

第162回: 「統計の実務」22 クロス集計とカイ二乗検定《その3: 独立性の検定》


◀前の記事へ   次の記事へ▶

≡ はじめに

前回は、「クロス集計とカイ二乗検定《その2: A/BテストとRコマンダー》」について書きました。

内容は、前々回の復習の「あなたの組織の血液型の割合は特別か?」と、「A/Bテスト」の結果をRコマンダーに入力して、お手軽にカイ二乗検定をして、A/Bテストの結果の有意差を判定する話でした。

今回は、「A/Bテスト」を一般化した「独立性の検定」について書こうと思います。


≡ 独立性の検定

「独立性の検定」と「カイ二乗検定」は何が違うの? と思われた方がいらっしゃるかもしれません。統計の本を読んだ方は特にそう思われるのではないかと思います。

無償で公開されている『データ分析のための統計学入門』というテキストで確認してみます。239ページあたりからですが、、、。
うーん。よくわかりません。😵‍💫

このテキストはほんとうに素晴らしいものです。初心者が統計の本を探しているのなら、まずはこちらを初めから最後まで、じっくりと読まれることをお勧めします。

私は、独立性の検定の一手法がカイ二乗検定だと思っていて、クロス集計をする時には必ず使って確認しています。
上記のテキストにもクロス集計の結果がたくさん載っていますので、試しにRコマンダーでカイ二乗検定してみてもよいかもしれません。

それでは、まずは、今回使用するサンプルファイルです。

ソフトウェアテスト関係のシンポジウムに参加登録するときのアンケートと思ってください。
項目は、JaSST Reviewのこちらを参考にしましたが、データはもちろん適当に作りました。(私がアンケート結果を入手できるはずありませんし)

アンケート項目(選択肢)は下表の通りです。どの列(変数)も、その値が数値ではありませんので、“カテゴリー変数”です。

カテゴリー変数のことを“因子”や“カテゴリカル変数”や“名義変数”とも言います。色々な名前があってとても嫌です。

アンケート項目と選択肢

データ数は切りが良いところで、64名分作成しました。こんな表です。
※ 申込順に1人ずつのアンケート結果が64名分行になっていると思って見てください。(1人目は、“ゲーム業界のテスターで経験年数は1年未満”といった具合です)

アンケート回答結果一覧表

■ 円グラフ

それぞれのアンケート項目の円グラフをRコマンダーで描いてみます。Rコマンダーは、データさえ読み込んでしまえばこういったそこそこセンスが良いグラフがマウス操作だけで簡単に描けるところがラクで好きです。

製品分野別人数比率: N=64
役割別人数比率: N=64
経験年数別人数比率: N=64


≡ カイ二乗検定

上に描いた円グラフだけでも、様々なことが読み取れます。ただし、円グラフはアンケート項目ごとのグラフです。
例えば、「製品分野 × 役割」、すなわち「組み込み系の人は、どういう役割の人が多いのか?」といったアンケート項目間の分析や、「そもそも、製品分野と役割の間には関係があるのかどうか?」までは、円グラフではわかりません。これらはクロス集計表を作って、カイ二乗検定を行えば分かります。

それでは、Rコマンダーでカイ二乗検定を実施する手順を紹介します。

まずは、上の方に乗せたアンケート.csvファイルをRコマンダーに読み込みます。

Rコマンダーを起動して、メニューの[データ]>[データのインポート]>[テキストファイルまたはクリップボード…]を選択し、(CSVファイルなので)カンマを選んであとはファイルを選択します。

次に、メニューの[統計量]>[分割表]>[2次表…]を選択します。

2元表ウィンドウを開くメニュー

すると、「2元表」のダイアログが開きますのでクロス集計したい変数を二つ選びます。以下では、「製品分野」と「経験年数」を選択しています。

2元表(データ)

このときに、「統計量」タブを選び、「行のパーセント」と「独立性のカイ2乗検定」をチェックしておくと良いでしょう。

2元表(統計量)

[✅OK]ボタンを押すと、以下のような出力が得られます。

Frequency table:
                経験年数
製品分野         10-19年 1年未満 2-3年 20年以上 4-5年 6-9年
  Web系                0       18     2        0     2     1
  オープンソース       0        0     0        1     0     0
  ゲーム               1        3     2        0     3     0
  パッケージ製品       0        2     3        0     0     3
  業務システム         0        0     6        0     0     2
  組み込み系           0        3     0        0     7     5

Row percentages:
                経験年数
製品分野         10-19年 1年未満 2-3年 20年以上 4-5年 6-9年 Total Count
  Web系              0.0     78.3   8.7        0   8.7   4.3 100.0    23
  オープンソース     0.0      0.0   0.0      100   0.0   0.0 100.0     1
  ゲーム            11.1     33.3  22.2        0  33.3   0.0  99.9     9
  パッケージ製品     0.0     25.0  37.5        0   0.0  37.5 100.0     8
  業務システム       0.0      0.0  75.0        0   0.0  25.0 100.0     8
  組み込み系         0.0     20.0   0.0        0  46.7  33.3 100.0    15

	Pearson's Chi-squared test

data:  .Table
X-squared = 120.78, df = 25, p-value = 1.613e-14

度数(カウント数)のクロス集計表と、割合(%)のクロス集計表が出力され、最後にカイ二乗検定結果がでています。

いつも思うけど、Rコマンダーが変数を勝手にソートするのは、やめてほしいです。

カイ二乗検定結果は、「X-squared = 120.78, df = 25, p-value = 1.613e-14」です。
こちらは、「カイ二乗値は120.78、自由度は25、p値は1.613×10^(-14)」という意味です。

カイ二乗値は前回の1.7159と比べると約70倍、自由度も25倍です。
p値は1.613e-14であり、有意水準(0.05)未満の極小値ですので、「“製品分野と経験年数は独立している”という帰無仮説は棄却され、対立仮説である“製品分野と経験年数は関係している”という結論」が導かれました。

自由度ですが、前々回に、
  カイ二乗検定の場合の自由度は、クロス集計表の
   (行数 - 1)×(列数 - 1)
と書きました。
今回の行数と列数はどちらも6なので、
   (6 - 1)×(6 - 1) = 25
ということです。

自由度が25の時のカイ二乗分布は、今回のキャッチイメージにしています。
グラフを見ると、横軸の右端でもカイ二乗値が60くらいです。
今回のカイ二乗値は約120でした。グラフから横軸が120以降の面積(p値)が10のマイナス14乗と極小なのもうなづけます。

このように、カイ二乗検定を実施すると、ある変数とある変数の間に関係があるかどうかを調べることができます。サンプルファイルには変数が3つあるので、他の変数間で試して比較してみると納得度が上がると思います。

ところで変数の値が数値の時には、以前やったt検定を使用します。カイ二乗検定はカテゴリ変数(データが文字)の時に使用します。


≡ おわりに

今回は、「独立性の検定」の話でした。
数値データではないけれども、有意差が有るかどうかの仮説検定をしたいときに思い出していただければと思います。

実務では、問題の原因を分析している段階で使うことが多いです。
というのは、現状の分析をしている段階では、数値データよりも、大まかな情報しかない事が多いからです。そのような時に役立ちます。
例えば、試験勉強のときに読んだ本と、資格試験の合否とは関係があるか?などの解析に関する統計解析ができます。

次回は、テーマが変わり、「管理図」の話題です。CMMIのレベル4を取るためには必須の知識となります。
1回で終わるといいけど、2回になりそう。

残りは「管理図とEVM」→「確率分布」となります。

◀前の記事へ   次の記事へ▶

いいなと思ったら応援しよう!