Practice makes perfect
[R] 카이제곱(chi-square 검정) 본문
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) : 귀무가설 채택 = 교육방법에 따라 만족도에 차이가 없다.
'빅데이터 > R' 카테고리의 다른 글
[R] 집단 간 차이 분석 (part_1 단일 집단 분석) (0) | 2020.07.15 |
---|---|
[R] 추정(estimation) + (표본크기 결정) (0) | 2020.07.15 |
[R] 교차분석(Cross Table Analyze) (0) | 2020.07.14 |
[R] 척도별 기술 통계량 구하기 (0) | 2020.07.14 |
[R] 평균, 분산, 표준변차 (0) | 2020.07.13 |