통계공부/Stata

[Stata] 카이제곱 관련 명령어: tab, tabchi (+findit)

대학원생A씨 2020. 4. 4. 09:40
반응형

이번 포스팅에서는 카이제곱 검정을 위해 사용하는 STATA 명령어를 알아보고자 한다. 대표적으로 tab, tabchi 두 가지 명령어를 사용할 수 있는데, 이 중에서 tab은 이미 이전 stata 기본 명령어 포스팅에서 소개한 적이 있다. tab은 빈도분포표를 제공하는 명령어인데, 여기서 옵션을 추가하면 카이제곱 검정까지 가능한 명령어이다. 명령어에 대한 소개를 하기 전에, 이론적인 내용을 아래 더보기에 간략하게 정리해두었다(스킵하셔도 됩니다).

 

더보기

여러 개의 범주형 변수를 기준으로 관측치를 기록하는 표를 분할표(contingency table)(홍두승, 설동훈, 2012)라고 하는데, 이 분할표를 분석하는 방법으로 카이제곱 검정이 쓰인다.

 

예를 들어 설명해보도록 하자. 연구자가 연령에 따라 선호하는 콜라 브랜드에 차이가 있는지 알아보고 싶다고 해보자. 그렇다면 여기서 연령의 범주로는 10대 이하/20대/30대/40대 이상으로 나누어 볼 수 있고, 콜라 브랜드에는 코카콜라/펩시로 구분 할 수 있을 것이다. 물론 범주별로 비율이 비슷하면 좋기 때문에 연령을 저렇게 나누어도 되나 싶을 수 있지만, 예시이니 대충 넘어가도록 하자. 이후에 연구자가 연령별로 선호하는 콜라 브랜드를 물어본 후, 다음과 같은 결과를 얻었다고 해보자. 

이 결과를 보고 과연 연령에 따라서 선호하는 콜라 브랜드가 달라지는지 알 수 있을까? 언뜻 숫자를 봤을 때, 10대 이하와 20대는 코카콜라보다는 펩시를 선호하는 반면 30대와 40대 이상은 펩시보다는 코카콜라를 선호하는 것으로 보인다. 하지만 이는 숫자를 보고 연구자가 어림짐작한 것이기 때문에, 이를 통계적으로 입증할 필요가 있다. 이러한 입증을 바로 카이제곱 검정이 해주는 것인데, 카이제곱은 통계적 독립성을 영가설로 설정하여 관측도수와 기대도수 간의 차를 이용하여 검정을 진행한다(홍두승, 설동훈, 2012). 쉽게 설명하면 선호하는 콜라 브랜드와 연령이 서로 간에 영향을 미치지 않는 독립적인 사건이냐를 확인하는 것이다.

 

Stata에서 카이제곱 검정을 위한 분석방법을 알아보도록 하자. 설명을 위해 stata에 기본적으로 내장되어 있는 voter라는 데이터셋을 사용할 것이다.

 

sysuse voter

 

☞ sysuse 사용법은 아래 링크 참고:

2020/03/13 - [통계 분석/Stata] - [Stata] 기본 명령어(1): help, cd, set more off, sysuse

 

해당 데이터셋을 설명하자면 총 5개의 변수(candidat, inc, frac, pfrac, pop)로 구성되어 있으며, 오늘 예제에서는 candidatinc라는 변수만 사용할 것이다. candidat1992년에 누구에게 투표했는지에 대한 변수로, 가능한 응답으로 Bush, Perot, Clinton 세 가지가 있다. 그리고 inc 변수는 가구소득을 코딩한 것으로, $15,000 미만을 1, $15,000이상 $30,000미만을 2, $30,000이상 $50,000미만을 3, $50,000이상 $75,000미만을 4, $75,000이상을 5로 코딩하였다. 이 두가지 변수를 이용하여, 연구자는 가구소득에 따라 투표한 후보자에 차이가 있는지를 검증하고자 한다. 이를 위한 코드와 분석결과는 다음과 같다.

 

tabulate candidat inc, chi2

*tabulate을 다 쓰지 않고 tab만 써도 명령어가 인식이 된다(즉, tab candidat inc, chi2만 입력해도 됨).

 

분석결과를 보면, tab에 옵션으로 chi2를 붙이면 기존의 tab 명령어만 쳤을 때와 달리 Pearson chi2(8) = 0.0000 Pr =1.000이라는 카이제곱 검정 결과가 추가로 제시됨을 알 수 있다. 즉, 카이제곱 값이 0.000이고 p값이 1.000으로 영가설을 기각할 수 없기에 가구소득에 따라 투표한 후보자에 차이가 있다고 말할 수 없다. 

 

그런데 사실 위의 결과에서는 한 cell 당 기대도수가 너무 적어 적절한 예시는 아니다. 책마다 조금씩 다른데, 기본적으로 한 cell당 5개 이상은 요구되는 편이다.

 

그리고 위의 예시에서 알 수 있듯이, 카이제곱 검정은 독립변수와 종속변수 모두 범주형 변수(categorical variable)일 때 사용할 수 있는 분석방법이다. 예시에서 가구소득이라는 변수를 사용하였는데, 사실 가구소득은 연속형 범수가 될 수도 있지만 위의 예제에서와 같이 연구자가 임의로 그룹을 지어 범주형 변수로도 사용이 가능하다.

 

그리고 tab말고 tabchi라는 명령어도 사용이 가능한데, tabchi는 기본적으로 설치되어 있는 명령어가 아니기 때문에 findit이라는 명령어를 통해 설치를 해주어야 한다.

 

findit tabchi

 

위의 syntax를 실행하면 아래 그림과 같은 화면이 뜬다.

 

파란색 글씨로 표시된 3개 링크 중 아무거나 클릭하면 설치가 진행이 되고, 설치완료 표시가 뜨면 프로그램을 다시 껐다 켜는 일 없이 바로 tabchi라는 명령어를 사용할 수 있다.

 

tabchi candidat inc

분석결과를 보면 표 cell마다 위아래 두 줄로 숫자가 적혀 있는데 윗줄이 observed frequency, 즉 관측도수이며 아랫줄이 기대도수(expected frequency)이다. 당연히 분석결과는 위에서와 마찬가지로 영가설이 기각되지 않았으며, 따라서 가구소득과 1992년에 투표한 후보자 간에는 유의한 상관이 있다고 볼 수 없다. 그리고 위에서 언급했듯이 각 cell의 기대도수가 5는 충족을 해야 하는데, 이를 만족하지 못하므로 결과창 아랫 부분에 기대도수가 5미만인 cell이 15개가 있다며 경고표시를 해주고 있다.

 


이번 포스팅에서 알아본 카이제곱 검증 관련 명령어는 tab과 tabchi였으며, 추가로 findit에 대해서도 살짝 언급을 하였다. 이를 정리하면 다음과 같다.

 

tab 변수1 변수2, chi2
2) tabchi 변수1 변수2
3) finit 명령어
반응형