관련글
1. 들어가며
위의 관련글에서 두 표본(독립표본)의 평균 차이 검증에 대한 이론을 살펴보았다. 이제 R을 이용해 t-test를 실행하고 효과 크기(effect size)를 간편하게 산출해보자.
2. 예제 데이터
데이터는 UC Irvine Machine Learning Repository에서 제공하는 adult 데이터를 활용한다. 아래 코드는 웹 사이트에서 데이터를 읽어 들이고 변수 이름을 지정한다.
adult <- read.csv(url("https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"), header=F)
colnames(adult)<-c("age","workclass","fnlwgt","education","education_num",
"marital_status","occupation","relationship",
"race","sex","capital_gain","capital_loss",
"hours_per_week","native_country")
데이터의 구조를 살펴보면 다음과 같다. 32,561개의 데이터와 15개의 변수를 갖느다.
이중에서 성별(sex)에 따른 education_num의 평균 차이를 검증해 보자.
3. 두 표본의 등분산성 검증
t-test를 시행하기 전에 우선 두 표본의 분산이 동일한지 검증해야 한다. var.test 함수를 이용하며 "education_num ~ sex" formular를 이용한다.
var.test(education_num ~ sex, data = adult, alternative="two.sided")
var.test의 귀무가설(영가설)은 분산이 동일하다는 것이다. 위의 코드를 실행하면 결과는 아래와 같다.
영가설이 맞다는 전체(두 표본의 모분산은 동일하다)하에 F값은 0.79894이며 이 값 이상을 표본에서 얻을 확률 p < 2.2e-16 이다. 즉 0.05보다 작기 때문에 영가설은 기각한다. 즉 분산은 동일하지 않다.
4. 두 표본의 평균 차이 검증
t.test 함수를 이용하는데 몇 가지 옵션이 있다. alternative="two.sided"는 양측 검증을 의미하며 단측 검증은 가설에 따라 less 또는 greater를 지정하면 된다. var.equal은 등분산인지 아닌지 지정하는 것으로서 위에서 분산이 동일하지 않다는 결과를 얻었으므로 var.equal=F 로 지정한다. 이 t-test의 영가설은 "두 표본의 모평균은 동일하다"이다.
t.test(education_num ~ sex, data=adult, alternative="two.sided",var.equal=F)
코드를 실행하면 다음과 같은 결과를 얻는다. 가장 중요한 값은 t 값의 유의확률인데 0.02137 즉, 0.05보다 작기 때문에 영가설, 즉 표본의 모평균이 동일하다는 가설을 기각하고 차이가 있다는 대안가설을 받아 들인다.
5. 효과크기
위의 결과를 보면 Female의 평균이 10.03574, Male의 평균이 10.10289로서 평균 차이는 아주 작지만 표본의 수가 워낙 크기 때문에 (n=32,561) 두 표본의 모평균 차이는 유의하다는 결론을 얻기 아주 쉽다. 따라서 이 경우에는 t값의 유의확률보다는 효과 크기가 더 의미가 중요하다고 볼 수 있다.
효과크기는 effsize 패키지의 cohen.d 함수를 이용한다.
library(effsize)
cohen.d(education_num ~ sex,data = adult)
코드를 실행하면 다음과 같은 결과를 얻는다. 효과크기 값은 - 0.026으로서 무시할 수 있는 수준(ngligible), 즉 효과크기가 매우 적다. 따라서 두 표본의 모평균 차이는 통계적으로 유의하게 나지만 실제적인 차이의 크기는 아주 작은 수준이라고 할 수 있다.
'R_데이터 분석 기술' 카테고리의 다른 글
리커트(likert) 척도 데이터 분석 (0) | 2022.06.11 |
---|---|
R 확인적 요인분석(CFA) (0) | 2022.05.13 |
R 크론바흐 알파 값 계산 (0) | 2022.05.13 |
R 랜덤포레스트(randomforest) (0) | 2022.05.03 |
R_의사결정나무 분석(rpart) (0) | 2022.05.02 |
R 회귀분석 (0) | 2022.04.13 |
R 교차표 작성 (0) | 2022.04.08 |
댓글