Practice makes perfect

[R] 카이제곱(chi-square 검정) 본문

빅데이터/R

[R] 카이제곱(chi-square 검정)

kerpect 2020. 7. 15. 15:00
728x90
반응형
SMALL

Chi-square 검정

① 카이제곱 분포에 기초한 통계적 방법으로, 관찰된 빈도가 기대되는 빈도와 의미있게 다른지의 여부를 검증하기 위해 사용되는 검증방법입니다. 자료가 빈도로 주어졌을 때, 특히 명목척도 자료의 분석에 이용됩니다. 

 

② 교차분석으로 얻어진 교차 분할표를 대상으로 유의확률을 적용하여 변수 간의 독립성 및 관련성 여부 등을 검정하는 분석 방법입니다. (모집단의 변량을 추정할 때 사용) 

 

- 범주(Category)별로 관측 빈도와 기대빈도가 차이가 있는지 검정
- 카이제곱 분포에 기초학 통계적 방법(카이제곱 분포표 이용)
- χ2 = Σ (관측값 - 기댓값)2 / 기댓값
- 분석을 위해서 교차분할표 작성
- 교차분석은 검정통계량으로 카이제곱 사용(=카이제곱 검정)

 

 

- 검증 유형 분류 : 일원카이제곱검정, 이원카이제곱검정

 

일원카이제곱 : 교차분할표 이용 안함(한 개 변수)  
적합성 검정 : 실제 표본이 내가 생각하는 분포와 같은가? 다른가?

예) 관찰도수가 기대도수와 일치하는지를 검정

 

이원카이제곱 : 교차분할표 이용

동질성 검증과 독립성 검증 두 유형

 

   동질성 검증: '변인의 분포가 이항분포나 정규분포와 동일하다'라는 가설을 설정

   이는 어떤 모집단의 표본이 그 모집단을 대표하고 있는지를 검증하는 데 사용합니다. 

           

   독립성 검증: 변인이 두 개 이상일 때 사용되며, 기대빈도는 '두 변인이 서로 상관이 없고 독립적'이라고

   기대하는 것을 의미하며 관찰빈도와의 차이를 통해 기대빈도의 진위여부를 확인합니다. 

 

 

Chi-square 검정 절차

 

1. 가설을 설정

 

2. 유의수준을 결정

 

3. 기각값(카이제곱 분포표 참조)을 결정

  -  자유도(df)와 유의수준으로 기각값 결정

 

4. 관찰도수에 대핚 기대도수를 구함

 

5. 검정통계량 x^2의 값을 구함

 

6. 귀무가설의 채택 또는 기각 여부를 판정

 

7. 카이제곱 검정 결과를 설명

 

 

 

1. 일원카이제곱 검정

 

(1) 적합성 검정

 

귀무가설(영가설): 기대치와 관찰치는 차이가 없다(관련성x). : p >= 알파 (유의수준 인계치 값) 
     예) 주사위는 게임에 적합하다. (차이가 없다는 것 = 변수의 차이가 없다는 것) 즉, 확률 1/6

 

 연구가설(대립가설): 기대치와 관찰치는 차이가 있다(관련성o). : p < 알파 (유의수준 인계치 값)
     예) 주사위는 게임에 적합하지 않다. 특정 눈금이 많이 나올 수 있다. 

 귀무가설 채택 = 연구가설 기각 / 귀무가설 기각 = 연구가설 채택
 귀무가설이 증명하기 쉽다.- 일반적으로 귀무가설을 사용
 유의수준에 대한 인계치 값을 정의해야 한다 (사회과학 0.05(95% 신뢰도 보장), 생명분야 0.01(99% 신뢰도 보장))

 

60회 주사위를 던져서 나온 관측도수/기대도수 

주사위수 :  1   2   3   4   5   6
기대도수 : 10, 10, 10, 10, 10, 10  (이론상 균등) 
관측도수 :  4,  6, 17, 16,  8,  9

 

 chisq.test(c(4,6,17,16,8,9))  # 관측도수

chisq.test : 단일 모집단의 모분산에 대한 신뢰구간 추정과 검정 

 

* 모델 관련 함수는 states 패키지에 저장되어 있습니다. 

 

 

2가지 해석 가능 

 

1) x-squared 분포도와 자유도(df) = n-1 ( 6 - 1 = 5)를 가지고 해석

 

< 카이제곱 분포표>

14.2 보다 11.07 로 카이제곱 분포표 보다 더 크므로 연구가설이 채택됩니다. ( X-squared = 14.2 > 11.07 )

결과 : 기무가설 기각, 연구가설 채택 = 주사위의 시행 획수를 통해서 적합하지 않음을 알 수 있습니다.

 

 

 

2) p-value 를 유의수준 인계치 값 활용하여 해석

 

사회과학 분야 이므로 p >= 0.05 이어야 하는데 결과값 = 0.01439 로 범위에 맞지 않기 때문에 연구가설이 채택됩니다. 

결과 : 기무가설 기각, 연구가설 채택 = 주사위의 시행 획수를 통해서 적합하지 않음을 알 수 있습니다.

 

 

 

(2) 선호도 검정(분석)

 

귀무가설:기대치와 관찰치는 차이가 없다. : p >= 알파
   예) 스포츠음료의 선호도에 차이가 없다. 


 연구가설:기대치와 관찰치는 차이가 있다. : p < 알파
   예) 스포츠음료의 선호도에 차이가 있다.

 

 귀무가설 채택 = 연구가설 기각 / 귀무가설 기각 = 연구가설 채택 
 귀무가설이 증명하기 쉽다.- 일반적으로 귀무가설을 사용
 유의수준에 대한 인계치 값을 정의해야 한다 (사회과학 0.05(95% 신뢰도 보장), 생명분야 0.01(99% 신뢰도 보장))

 

- 5개 제품의 스포츠 음료에 대한 선호도에 차이가 있는지 검정 

 

스포츠음료종류  관측도수 
       1                  41
       2                  30
       3                  51
       4                  71
       5                  61

data <- textConnection( # textConnection : text 형태로 받아서 저장
  "스포츠음료종류  관측도수 
      1               41
      2               30
      3               51
      4               71
      5               61
  ")

class(data) 출력값 : [1] "textConnection" "connection" 

x <- read.table(data, header = T)

x # 스포츠음료종류   관측도수
- 출력값 - 

  스포츠음료종류 관측도수
1              1       41
2              2       30
3              3       51
4              4       71
5              5       61

str(x)
- 출력값 - 
'data.frame':	5 obs. of  2 variables:
 $ 스포츠음료종류: int  1 2 3 4 5
 $ 관측도수      : int  41 30 51 71 61
 
 
 chisq.test(x$관측도수)
 

< 카이제곱 분포표>

1) x-squared =20.488 > 9.49 보다 카이제곱 분포표 보다 크므로 연구가설이 채택되고 결과는 스포츠음료의 선호도에 차이가 있음을 알 수 있습니다.

 

2) p-value = 0.0003999 이므로, 0.05보다 작으므로 귀무가설은 긱가되고 연구가설이 채택되고 결과는 스포츠음료의 선호도에 차이가 있음을 알 수 있습니다. 

 

 

 

 

2. 이원카이제곱 검정 - 교차분할표 이용 

 

(1) 독립성 검정(관련성 검정)  

: 동일 집단의 두 변인을 대상으로 관련성이 있는가? 없는가?를 검정하는 방법입니다. 

귀무가설(H0) : 부모의 학력 수준과 자녀의 대학 진학 여부는 관련성이 없다
연구가설(H1) : 부모의 학력 수준과 자녀의 대학 진학 여부는 관련성이 있다

 

위 데이터를 통해서 살펴 보겠습니다. 

 

독립변수(x) = 설명변수, 종속변수(y) = 반응 변수 생성  

x <- data$level2 # 부모의 학력수준
y <- data$pass2  # 자녀의 대학 진학 여부 

CrossTable(x, y, chisq = T)

1) p 의 값이0.2507057으로 0.05 보다 크므로 귀무가설이 채택 되므로 부모의 학력 수준과 자녀의 대학 진학 여부는 관련성이 없다는 결과가 나옵니다. 

 

 

2) 자유도 2(부모님의 학력수(3-1=2) , chi^2 = 2.766951

< 카이제곱 분포표>

 chi^2 값이  2.766951 < 5.99 로 카이제곱 분포표 보다 작으므로 귀무가설이 책택 되어 부모의 학력 수준과 자녀의 대학 진학 여부는 관련성이 없다는 결과가 나옵니다. 

 

 

 

(2) 동질성 검정

: 두 집단의 분포가 동일한가? 분포가 동일하지 않는가?를 검정하는 방법으로 즉, 동일한 분포를 가지는 모집단에서 추출된 것인지를 검정하는 방법

귀무가설 : 교육방법에 따라 만족도에 차이가 없다.
연구가설 : 교육방법에 따라 만족도에 차이가 있다.

 

위의 데이터를 활용하여 살펴보도록 하겠습니다.

(레코드 수 150개, 열 3개(no : 카운팅, method : 교육방법, survey :만족도

 

- 데이터 확인

table(data$method)
-출력값-
 1  2  3  (한반에 50의 학생 1 - PT만 이용교육 , 2 - 실습으로만 교육, 3 - PT, 실습 병행 교육)
 50 50 50  

table(data$survey)
-출력값-
 1  2  3  4  5 (1-매우 만족, 2-만족, 3-보통, 4-불만족, 5-매우 불만족)
 21 29 37 42 21 

 

- 전처리 :  결측치/ method와 survey 변수만 서브셋 생성

data <- subset(data, !is.na(survey), c(method, survey)) # NA 값 배제 , no 배제 

length(data$survey) # [1] 150 (NA(결측치) 값이 없었음)

 

- 변수리코딩 - 코딩 변경 

- method2 필드 추가 
data$method2[data$method == 1] <- "방법1"
data$method2[data$method == 2] <- "방법2"
data$method2[data$method == 3] <- "방법3"


- survey2 필드 추가
data$survey2[data$survey == 1] <- "1. 매우만족"
data$survey2[data$survey == 2] <- "2. 만족"
data$survey2[data$survey == 3] <- "3. 보통"
data$survey2[data$survey == 4] <- "4. 불만족"
data$survey2[data$survey == 5] <- "5. 매우불만족"

 

- 교차분할표 작성 

table(data$method2, data$survey2) - 교차표 생성 -> table(행, 열)
         1. 매우만족 2. 만족 3. 보통  4. 불만족  5. 매우불만족
방법1           5       8      15        16             6
방법2           8      14      11        11             6
방법3           8       7      11        15             9

 

- 교차분할표 생성 

CrossTable(data$method2, data$survey2, chisq = T)

1) 0.5864574 로 0.05보다 크므로 귀무가설을 채택합니다. 그래서 교육방법에 따라 만족도에 차이가 없다. 라는 결과를 가집니다.  

 

 

< 카이제곱 분포표>

2) 6.544668 로 15.51 이 더 크므로 귀무가설을 채택합니다.  그래서 교육방법에 따라 만족도에 차이가 없다. 라는 결과를 가집니다.  

 

 

동질성 검정 - 모수(모집단) 특성치에 대한 추론 검정 

chisq.test(data$method2, data$survey2)

교차분할표 생성하여 나온 결과와 동일합니다. 

 

결과 : p-value = 0.5865 > α(알파: 0.05) : 귀무가설 채택  = 교육방법에 따라 만족도에 차이가 없다. 

728x90
반응형
LIST