独立性の 検定について。
【目次】
検定はカテゴリデータのクロス表(分割表、クロステーブル)で用いられる検定。
帰無仮説、対立仮設
- 帰無仮説
- 対立仮設
要因と結果の間に関係がないか(独立であるか)を評価する。
計算式等
次のクロス表で考える。
■ 観測度数
Outcome | Total | |||
(+) | (-) | |||
Factor | 1 | a | b | AB |
2 | c | d | CD | |
Total | AC | BD | N |
■ 期待度数
Outcome | |||
(+) | (-) | ||
Factor | 1 | ||
2 |
■ 統計量
自由度=
※r=行数、c=列数、Correct=連続修正(有の場合 0.5、無の場合 0)
ノート
期待度数は、要因と結果の間に関係がない時(独立である時)に取り得る理論値。 検定では、この期待度数と観測度数の差(理論値と実際の値のズレ)を見ており、このズレが大きいほど独立の仮定から離れていく。
(ズレが大きいほど 統計量は大きくなり、p値が小さくなる。)
簡単なデータで計算方法を確認。
今回は、喫煙有無と肺がんの関係性という良くある例で、観測度数が下表のとおりだったとする。架空データ。
■ 観測度数
肺がん | Total | |||
(+) | (-) | |||
喫煙 | 有 | 28 | 12 | 40 |
無 | 17 | 25 | 42 | |
Total | 45 | 37 | 82 |
この期待度数を計算すると下表のとおり。
■ 期待度数
肺がん | |||
(+) | (-) | ||
喫煙 | 有 | ||
無 |
観測度数と期待度数から 統計量を計算する。
■ 統計量
肺がん | |||
(+) | (-) | ||
喫煙 | 有 |
|
|
無 |
上の表を総和したものが 統計量(連続修正なし)。
また、連続修正ありの場合は次のとおり。
今回のクロス表は2×2表のため、自由度=1 の 分布のもと、p値は次のようになります。
p≒0.007242(連続修正なし)
p≒0.01376 (連続修正あり)
Rでの実行:
> mtx1 <- matrix(c(28, 12, 17, 25), nrow=2, byrow=TRUE)
> chisq.test(mtx1, correct=F)
Pearson's Chi-squared test
data: mtx1
X-squared = 7.212, df = 1, p-value = 0.007242
> chisq.test(mtx1, correct=T)
Pearson's Chi-squared test with Yates' continuity correction
data: mtx1
X-squared = 6.0689, df = 1, p-value = 0.01376
SASでの実行:
data ads;
input FACTOR OUTCOME CNT;
datalines;
1 1 28
1 0 12
0 1 17
0 0 25
;
run;
proc freq data=ads;
table FACTOR * OUTCOME / chisq nocol nopercent;
weight CNT / zeros;
output out=Outds chisq;
run;
プログラムコード
■ Rのコード
chisq.test(mtx1, correct=T) #--correctで連続修正
■ SASのコード
proc freq data=[InputDS];
table Outcome * Factor / chisq nocol nopercent;
weight Count / zeros;
output out=[OutputDS] chisq; /*連続修正無:_PCHI_,P_PCHI, 有:_AJCHI_,P_AJCHIを取得*/
run;
■ Pythonのコード
整備中
Cochran's rule
期待度数が5未満のものが全体の20%を上回る場合や全体のN数が20未満の場合、 検定は近似が悪くなるため使用しない方が良いと言われる(Cochran's rule)。
この場合は、水準の併合やFisher's Exact testが推奨される。
なお、交絡因子を考慮した手法としてマンテル・ヘンツェルの検定(CMH検定)などがある。
参考