[SAS] 피셔 정확 검정 - PROC FREQ
범주형 변수 간에 분포에 차이가 있는지 확인하기 위해서는 보통 카이 제곱 검정을 시행한다 (2022.08.19 - [범주형 자료 분석/SAS] - [SAS] 카이 제곱 검정 - PROC FREQ). 하지만 기대 빈도가 5 미만인 셀이 25% 이상인 경우 카이 제곱 검정의 결과는 신뢰도가 떨어지기 때문에 피셔 정확 검정 (Fisher's exact test)을 시행해야 한다.
참고로, 피셔 "정확" 검정인 이유는, 말 그대로 정확한 확률이기 때문이고, 어떤 분포에 근사시키지 않았다는 말이다.
*실습용 데이터는 아래 링크를 클릭하면 다운로드할 수 있습니다.
2022.08.04 - [공지사항 및 소개] - 분석용 데이터 (update 22.08.29)
시작하기 위해 라이브러리를 만들고, 파일을 불러온다.
라이브러리 만드는 방법: 2022.08.05 - [통계 프로그램 사용 방법/SAS] - [SAS] 라이브러리 만들기 - LIBNAME
파일 불러오는 방법: 2022.08.05 - [통계 프로그램 사용 방법/SAS] - [SAS] 데이터 불러오기 및 저장하기 - PROC IMPORT, PROC EXPORT
*라이브러리 지정하기;
LIBNAME hong "C:/Users/User/Documents/Tistory_blog";
*파일 불러오기;
PROC IMPORT
DATAFILE="C:\Users\user\Documents\Tistory_blog\Data.xlsx"
DBMS=EXCEL
OUT=hong.df
REPLACE;
RUN;
2*2 분할표
코드
피셔 정확 검정을 시행하는 코드는 다음과 같다.
PROC FREQ DATA=hong.df;
TABLE SEX*RH/CHISQ EXPECTED NOROW NOCOL NOPERCENT;
RUN;
PROC FREQ DATA=hong.df; : 빈도수를 계산하는 코드를 시작하며, 데이터는 hong 라이브러리의 df 파일을 이용한다.
TABLE SEX*RH/CHISQ EXPECTED NOROW NOCOL NOPERCENT; : SEX와 RH의 분할표를 계산하며, 카이 제곱 검정을 시행한다. 기대 빈도를 산출하고, 행 백분율, 열 백분율, 백분율은 산출하지 않는다.
"CHISQ" 옵션이 자동으로 피셔 정확 검정 결과까지 산출하므로 카이 제곱 검정을 시행하는 코드와 100% 일치한다. 즉, 굳이 피셔 정확 검정을 시행하는 옵션인 "FISHER"를 적을 필요가 없다.
결과
먼저 기대 빈도 (기댓값)를 산출했는데 기대 빈도가 5 미만인 셀이 두 개가 있다. (2.892와 3.108) 따라서 경고가 뜬다. "WARNING: 50% 개의 셀이 5보다 적은 기대 빈도를 가지고 있습니다. 카이제곱 검정은 올바르지 않을 수 있습니다."즉, 카이제곱 분포가 아닌 아래 나오는 "Fisher의 정확 검정" 표를 참고하라는 말이다.
세 개의 p-value가 산출된다. 1) 하단측 p값 Pr<=F2) 상단측 p값 Pr>=F3) 양측 p값 Pr<=P
1)과 2)는 단측 검정 (One-sided or One-tailed)이고 3)은 양측 검정 (Two-sided or two-tailed)이다. 경우에 따라 단측 검정을 쓰기도 하지만 일반적으로는 양측 검정을 사용한다. 이 p-value는 0.2192로 0.05보다 크므로 귀무가설을 기각하지 못해 "성별에 따라 RH 혈액형의 분포에는 차이가 있다고 할 수 없다."라고 결론이 내려진다. 양측 검정 및 단측 검정에 관한 내용은 다음 글을 확인하길 바란다:2022.08.26 - [통계 이론] - [이론] 피셔 정확 검정 (Fisher's exact test)
2*2를 넘어서는 분할표
코드
피셔 정확 검정을 시행하는 코드는 다음과 같다.
PROC FREQ DATA=hong.df;
TABLE SEX*TWIN/CHISQ EXACT EXPECTED NOROW NOCOL NOPERCENT;
RUN;
PROC FREQ DATA=hong.df; : 빈도수를 계산하는 코드를 시작하며, 데이터는 hong 라이브러리의 df 파일을 이용한다.
TABLE SEX*TWIN/CHISQ EXACT EXPECTED NOROW NOCOL NOPERCENT; : SEX와 TWIN의 분할표를 계산하며, 카이 제곱 검정을 시행한다. 정확 검정도 시행한다. 기대 빈도를 산출하고, 행 백분율, 열 백분율, 백분율은 산출하지 않는다.
2*2 분할표에서만 "CHISQ" 옵션이 자동으로 피셔 정확 검정 결과까지 산출해준다. 따라서 2*2를 넘어서는 분할표에서는 정확 검정을 시행하는 "EXACT"혹은 "FISHER"를 적어야 한다. "FISHER"라는 코드로 검정을 시행하고 결과창에도 "Fisher의 정확 검정"이라고 적혀 있지만 이는 사실 "Freeman-Halton test"다.
결과
2*2 분할표 분석에서 보이는 바와 거의 같은 결과를 내주지만 "Fisher의 정확 검정"에는 양측 검정 결과만이 나온다. 빨간 상자에 있는 값이 p-value다. p>0.05이므로 "성별에 따라 쌍둥이 여부는 어떠한 경향성을 갖는다고 할 수 없다."라고 결론짓게 된다.
피셔 정확 검정의 이론적 배경
2022.08.26 - [통계 이론] - [이론] 피셔 정확 검정 (Fisher's exact test)
카이 제곱 검정과 피셔 정확 검정의 관계
2022.08.29 - [통계 이론] - [이론] 카이 제곱 검정과 피셔 정확 검정의 관계
SAS 피셔 정확 검정 정복 완료!
작성일: 2022.08.29.
최종 수정일: 2022.08.29.
이용 프로그램: SAS v9.4
운영체제: Windows 10
'범주형 자료 분석 > SAS' 카테고리의 다른 글
[SAS] 연속성 수정 카이 제곱 검정 (Yates's correction for continuity) - PROC FREQ (0) | 2022.08.30 |
---|---|
[SAS] 카이 제곱 검정 - PROC FREQ (2) | 2022.08.19 |