實務上,卡方檢定時常用於檢定兩類別變數是否有相關,舉例來說,我們對阿斯匹靈是否能預防心血管疾病有興趣,換句話說探討心血管疾病與阿斯匹靈的相關。
假設檢定如下:
H0:阿斯匹靈與罹患心血管疾病沒有相關
(服用阿斯匹靈與安慰劑罹患心血管疾病的比例相同)
H1:阿斯匹靈與罹患心血管疾病沒相關
(服用阿斯匹靈與安慰劑罹患心血管疾病的比例不同)
Oij Table
行一
|
行二
|
||
列一
|
O11
|
O12
|
R1
|
列二
|
O21
|
O22
|
R2
|
C1
|
C2
|
S
|
服用阿斯匹靈
|
服用安慰劑
|
||
得心血管疾病
|
2
|
14
|
16
|
未得心血管疾病
|
20
|
6
|
26
|
22
|
20
|
42
|
Eij Table
行一
|
行二
|
||
列一
|
C1
*R1/ S=E11
|
C1 *R2/ S=E12
|
|
列二
|
C2 *R1/ S=E21
|
C2 *R2/ S=E22
|
|
服用阿斯匹靈
|
服用安慰劑
|
||
得心血管疾病
|
16*22/42=8.38
|
20*16/42=7.62
|
|
未得心血管疾病
|
22*26/42=13.62
|
20*26/42=12.38
|
|
檢定統計量:
χ2t=Σ(Oij-Eij)2/
Eij =16.48
拒絕域:
χ2(r-1)(c-1),α=χ21,0.05=3.84
拒絕域:
χ2(r-1)(c-1),α=χ21,0.05=3.84
χ2t>χ21,0.05拒絕H0,沒有顯著效果,p-value也小於0.05
注:為確保機率分布的有效性,Eij Table內每一格的期望數不能小於1,且各格內期望數小於5的格數不能超過20%的總格數。
SAS Codes:
/*將資料讀進SAS*/
data Aspirin;
/*$代表變數為文字 @@為自由符號使不同的觀測值可以放在同一行,如範例*/
input Aspirin Disease
Count ;
datalines;
1
1 2
0
1 14
1
0 20
0
0 6
;
/*印出前5筆資料*/
proc print data=Aspirin ; run;
/*
加權數(weight)跑Aspirin*Disease的列聯表
加入chisq語法可以做卡方檢定
*/
proc freq data=Aspirin;
tables Aspirin*Disease / out=FreqCount outexpect sparse
chisq ;
weight Count;
title 'Contingency
table of Aspirin and Disease';
run;
/*也就是上方的Eij Table*/
proc print data=FreqCount
noobs;
title2 'Output Data Set from PROC FREQ';
run;
沒有留言:
張貼留言