18.통계데이터분석 - 독립성검정과 적합성검정 - 적합성검정.Rmd
0.01MB
18.통계데이터분석---독립성검정과-적합성검정---적합성검정.html
1.27MB
18.통계데이터분석 - 독립성검정과 적합성검정 - 적합성검정
2022-07-31
https://www.youtube.com/watch?v=RyTpZLzsBgo&list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&index=19
1. 적합성검정(goodness of fit test)의 특징
- 적합성검정의 특징
- 범주형변수가 하나일 때 범주별 비율분포에 대한 가설검정 수행 가능
- 예) 소비자 단체에서 150명의 휴대전화 사용자 대상 이용중인 이동통신회사를 조사함. 조사결과 a사 이용자는 60명, b사 이용자는 55명, c사 이용자는 35명이었음. 이 데이터로 세 이동통신 회사의 시장점유율이 동일한 지 검정할 수 있음
- 적합성검정: 이처럼 관측한 빈도를 토대로 모집단에서의 집단별 비율분포를 검정하는 것
2. 적합성검정을 수행하는 절차
2-1. chisq.test() - 적합성검정 수행
https://youtu.be/RyTpZLzsBgo?list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&t=60
- 인수설명
- 1st: 집단별 관측빈도 지정. 여기서는 관측된 세 이동통신회사의 이용자수
- 2nd: 검정하고자 하는 집단별 비율
- 검정비율을 따로 지정하지 않으면 집단간 동일하다고 가정함
- 지금은 별도로 검정비율을 정하지 않았기 때문에 세 이동통신 회사의 시장점유율은 동일하다고 가정함
- 예) 이동통신 회사의 시장점유율 관련된 비율의 분포를 chisq.test()를 이용해서 검정
chisq.test(c(60, 55, 35))
##
## Chi-squared test for given probabilities
##
## data: c(60, 55, 35)
## X-squared = 7, df = 2, p-value = 0.0302
- 결과해석
- p값이 0.0302 가 나와 유의수준 0.05 기준으로 0.05 보다 작기 때문에 귀무가설을 기각을 할 수 있음
- 따라서 세 이동통신 회사의 시장점유율을 동일하다고 볼 수 없음
2-2. chisq.test() - 검정비율 포함해 적합성검정 수행
- 그런데 한 시장조사 전문가가 세 이동통신회사의 시장점유율은 a사 45%, b사 30%, c사 25% 라고 주장함
- 검정하고자 하는 검정비율이 더이상 집단간 동일하지 않기 때문에 검정비율을 별도로 인수로 지정을 해야 됨
oc <- c(60, 55, 35) # 집단별 관측빈도(세 이동통신회사의 이용자수)
null.p <- c(0.45, 0.30, 0.25) # 검정비율(전문가가 말한 점유율)
chisq.test(oc, p=null.p)
##
## Chi-squared test for given probabilities
##
## data: oc
## X-squared = 3.2222, df = 2, p-value = 0.1997
- 결과해석
- p값이 0.1997이 나왔고 0.5에 비해 크기 때문에 귀무가설을 기각할 수 없음
- 따라서 시장조사 전문가의 주장은 타당하다고 볼 수가 있음
- 시장조사 전문가가 주장한 a b c 3개 회사의 시장 점유율은 45%, 30%, 25% 라고 볼 수가 있음
2-3. chisq.test() - 1년간 시장점유율 변화가 있있는지 적합성검정 수행
- 소비자단체에서는 매년 이러한 동일한 조사를 수행.하며, 작년 조사에서 85명의 휴대전화 사용자 중 a 사 45명, b사 25명, c사 15명임
- 올해 조사결과가 작년과 동일하다고 할 수 있는지 적합성검정을 통해 검정가능
- 현재의 표본 데이터를 바탕으로 작년의 시장점유유이 올해와 같은지 검정
- 검정비율 인수에 작년 시장점유율을 지정함
- 인수설명
- 1st: 집단별 관측빈도 지정. 여기서는 올해 세 이동통신회사의 이용자수
- 2nd: 검정하고자 하는 집단별 비율. 여기서는 작년 시장점유율율
chisq.test(oc, p=c(45, 25, 15)/85)
##
## Chi-squared test for given probabilities
##
## data: oc
## X-squared = 10.178, df = 2, p-value = 0.006165
- 결과해석
- 검정결과 유의확률이 0.006165 로써 귀무가설을 기각 할 수 있음
- 따라서 1년 동안의 시장 점유율의 변화가 있었다라고 볼 수 있음
2-4. margin.table() - 다차원 테이블에서 원하는 차원만 추출해 요약표 생성
2-4-1. margin.table() - 머리색깔 차원만 추출
- 다차원의 테이블 객체에 저장된 데이터셋에 대한 적합성검정을 위해서는 먼저 검정하고자 하는 변수를 추출해서 1차원의 벡터 형태로 만들어야 함
str(HairEyeColor)
## 'table' num [1:4, 1:4, 1:2] 32 53 10 3 11 50 10 30 10 25 ...
## - attr(*, "dimnames")=List of 3
## ..$ Hair: chr [1:4] "Black" "Brown" "Red" "Blond"
## ..$ Eye : chr [1:4] "Brown" "Blue" "Hazel" "Green"
## ..$ Sex : chr [1:2] "Male" "Female"
- 인수설명:
- 1st: 테이블 객체 지정
- 2nd: 추출하고자 하는 차원 지정
- HairEyeColor데이터셋은 세계 차원으로 구성돼 있고 (머리 색깔, 눈 색깔, 성별), 여기서는 margin.table()로 머리 색깔 데이터만을 추출
hairs <- margin.table(HairEyeColor, margin= 1)
hairs
## Hair
## Black Brown Red Blond
## 108 286 71 127
2-4-2. 추출한 차원 데이터로 여러가지 가설 검정 수행
- 이렇게 얻은 머리 색깔 데이터를 바탕으로 여러가지 가설 검정 수행 가능
- 예) 한 생리학자는 “미국의 인구 분포 상 검은 생머리는 25%, 갈색 머리는 50%, 붉은색 머리는 10%, 금발 머리는 15% 정도를 차지한다 라고 주장을 하고 있음
- 이 데이터를 바탕으로 해서 이러한 머리 색깔에 분포에 대한 생리학자의 주장이 맞는지 적합성검정을 수행하여 확인 가능
- 인수설명
- 1st: 표본데이터
- 2nd(p인수): 검정하고자 하는 비율
chisq.test(hairs, p=c(0.25, 0.50, 0.10, 0.15))
##
## Chi-squared test for given probabilities
##
## data: hairs
## X-squared = 29.934, df = 3, p-value = 1.425e-06
- 결과해석
- p값이 유의수준 0.05에 비해서 매우 작아 귀무가설을 기각하고 대립가설을 채택 하게 됨
- 즉, 생리학자가 주장하는 이러한 머리색깔 분포하에서는, 표본데이터와 같은 머리색깔 빈도분포(Black 108, Brown 286, Red 71, Blond 127)를 얻을 가능성이 p값만큼 작고 드물어, 귀무가설을 받아들일 수 없다라고 판단을 내림
- 그래서 생리학자가 주장하는 머리색깔 분포는 받아들이기 어렵다고 결론내림
2-5. chisq.test() - 데이터프레임으로 저장된 데이터셋을 활용한 적합성검정 수행
- 데이터프레임 형태로 저장된 데이터셋에 대해서 적합성검정 수행을 위해 검정하고자 하는 변수를 추출해 1차원 벡터 형태로 변환해야 함
- survey 데이터셋의 Smoke 변수 활용
- Smoke: 흡연습관 정보가 기록되어 있음
library(MASS)
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 ...
- 먼저 테이블 함수를 이용해서 1차원의 빈도표 생성
smokers <- table(survey$Smoke)
smokers
##
## Heavy Never Occas Regul
## 11 189 19 17
- 이렇게 추출한 흡연자 빈도 데이터를 이용해 흡연자 분포에 대한 다양한 가설을 검정할 수가 있음
- 예) 비흡연자가 70% 를 차지하고 3가지 유형의 나머지 흡연자는 각각 10%씩이라고 알려져 있다면 이러한 가설을 chisq.test()로 검정 할 수 있음
- 인수설명
- 1st: 표현 데이터 지정
- 2nd(p인수): 검정하고자 하는 비율 지정
- 두번째 있는 비율(0.7)이 비흡연자 를 나타내는 비율임
chisq.test(smokers, p=c(0.1, 0.7, 0.1, 0.1))
##
## Chi-squared test for given probabilities
##
## data: smokers
## X-squared = 12.898, df = 3, p-value = 0.004862
- 결과해석
- 검정 결과, p 값이 0.004862로 유의수준 0.05에 비해 작아 귀무가설 기각 가능
- 따라서 흡연자 및 비흡연자의 분포 비율은 이와 같이 알려진 것과 다르다” 라고 결론 내릴 수 있음