학생 설문 조사 데이터를 담고 있는 MASS::survey를 사용해 학생들의 성별에 따른 운동량에 차이가 있는지 독립성 검정을 해보자. 다음은 survey 데이터의 모양을 보여준다.

    > library(MASS)
    > data(survey)
    > str(survey)
    'data.frame':   237 obs. of 12 variables:
    $ Sex   : Factor w/ 2 levels "Female","Male": 1 2 2 2 2 1 2 1 2 2 ...
    $ Wr.Hnd: num 18.5 19.5 18 18.8 20 18 17.7 17 20 18.5 ...
    $ NW.Hnd: num 18 20.5 13.3 18.9 20 17.7 17.7 17.3 19.5 18.5 ...
    $ W.Hnd : Factor w/ 2 levels "Left","Right": 2 1 2 2 2 2 2 2 2 2 ...
    $ Fold  : Factor w/ 3 levels "L on R","Neither",..: 3 3 1 3 2 1 1 3 3 3 ...
    $ Pulse : int 92 104 87 NA 35 64 83 74 72 90 ...
    $ Clap  : Factor w/ 3 levels "Left","Neither",..: 1 1 2 2 3 3 3 3 3 3 ...
    $ Exer  : Factor w/ 3 levels "Freq","None",..: 3 2 2 2 3 3 1 1 3 3 ...
    $ Smoke : Factor w/ 4 levels "Heavy","Never",..: 2 4 3 2 2 2 2 2 2 2 ...
    $ Height: num 173 178 NA 160 165 ...
    $ M.I   : Factor w/ 2 levels "Imperial","Metric": 2 1 NA 2 2 1 1 2 2 2 ...
    $ Age   : num 18.2 17.6 16.9 20.3 23.7 ...
    
    > head(survey[c("Sex", "Exer")])
         Sex Exer
    1 Female Some
    2   Male None
    3   Male None
    4   Male None
    5   Male Some
    6 Female Some
    

    survey 데이터에서 성별은 Sex, 운동을 얼마나 하는지는 Exer 열에 저장되어 있다. Sex는 Female, Male 두 가지 레벨을 가지는 팩터이며, Exer는 Freq, Some, None 3가지 레벨로 구성된 팩터이다. Freq는 운동을 자주함, Some은 운동을 약간 함, None은 운동을 하지 않음을 의미한다.

    성별과 운동이 독립인지를 확인해보기 위해 분할표를 만들어보자.

    > xtabs(~ Sex + Exer, data=survey)
           Exer
    Sex     Freq None Some
      Female   49   11   58
      Male     65   13   40
    

    분할표를 작성하고 나면 chisq.test( )를 통해 카이 제곱 검정을 수행할 수 있다.

    표 7-11 카이 제곱 검정

    chisq.test : 카이 제곱 검정을 수행한다.

    chisq.test(
      x,       # 숫자 벡터 또는 행렬. 또는 x y가 모두 팩터
      y=NULL,  # 숫자 벡터 또는 x가 팩터인 경우 팩터로 지정. x가 행렬인 경우 그 안에 분할표가
               # 저장되어 있는 경우므로 y가 무시된다.
      # x와 같은 길이를 가질 확률. 이 값이 비율이 이 확률과 같은지를 테스트한다. 이 값이 지정되지
      # 않으면 확률이 서로 같은지 테스트한다. 이 인자는 '7.5 적합도 검정' 절에서 사용법을 설명한다.
      p = rep(1/length(x), length(x))
    )

    다음은 성별과 운동 정도의 독립성 검정을 수행한 예다.

    > chisq.test(xtabs(~ Sex + Exer, data=survey))
    
      Pearson's Chi-squared test
    
    data: xtabs(~Sex + Exer, data = survey)
    X-squared = 5.7184, df = 2, p-value = 0.05731
    

    p 값이 0.05731이므로 0.05보다 커서 ‘H0: 성별과 운동은 독립이다.’라는 귀무가설을 기각할 수 없는 것으로 나타났다. 통계량 χ2은 5.7184였으며 자유도Degree of Freedom는 성별이 2개 레벨, 운동량이 3개 레벨이므로 (2-1)(3-1) = 2였다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.