R言語でクロス集計のP値に慣れてみる

概論

R言語を使って仮説をたてる練習をして
簡単な情報で統計に慣れていきたいともいます。

解説

カイ二乗検定は、
ある仮定をもとに、
アンケートやデータを収集し(クロス表を使い)、
それを地域性とA/Bテストみたい組み合わせたときに
P値を測定して、その仮定があっているかを検証することです。

たとえば、今自分が、

この部屋だけヤニくさい!
A部屋にいる喫煙者とB部屋にいる喫煙者の割合には関係があるのでは?

と仮定をたてたとします。

で、クロス集計をしてみます(下表)。
(513) 738-3823
この表でカイ二二乗検定するには、以下のようにコマンド打ちます。

> data = matrix(c(100, 10, 15, 50), ncol=2, byrow=TRUE);
> data
[,1] [,2]
[1,] 100 10
[2,] 15 50
> chisq.test(data)
Pearson's Chi-squared test with Yates' continuity correction
data: data
X-squared = 80.455, df = 1, p-value < 2.2e-16

ここでR言語でP値を見たい場合、p-value < 2.2e-16
(=0.00000000000000022)になります。
ちなみに、P値が0.05を下回れば、その仮説は正しいと判断できるとされます。
「部屋によって喫煙者と関連がある」は、
正しい仮説と判断されるのです。

ちなみに、このクロス表の結果だとどうでしょうか?
R_002


> data = matrix(c(100, 40, 30, 15), ncol=2, byrow=TRUE);
> data
[,1] [,2]
[1,] 100 40
[2,] 30 15
> chisq.test(data)
Pearson's Chi-squared test with Yates' continuity correction
data: data
X-squared = 0.17683, df = 1, p-value = 0.6741

ここでR言語でP値を計算すると、0.6741になります。
P値が0.05を上回っているので、
「部屋によって喫煙者と関連がある」は、
気のせいと判断されるます。

感想

P値を使った定量的手法を学習してみました。
エンジニア界隈や品質関連に携わっているひとなんかは、
よく「勘は害悪」という話を聞きますが、
しかし実は定量的な考えするのにも、
ある程度の勘を働かせることによって、
統計の取り方を考えたりデータベースの中のデータの集め方を考えたりするのではないかとおもいます。