본문 바로가기
프로그래밍 언어/R

R 12. 통계적 가설 검정

by Jinger 2024. 2. 2.

서론

   통계 분석을 이용해 가설을 검정하는 방법을 알아보자.


통계적 가설 검정

기술 통계와 추론 통계

    통계 분석은 기술 통계와 추론 통계로 나눌 수 있다. 데이터를 요약해 설명하는 통계 기법을 '기술 통계(Descriptive statistics)'라고 한다. '추론 통계(Inferential statics)'는 단순히 숫자를 요약하는 것을 넘어 어떤 값이 발생할 확률을 계산하는 통계 기법이다. 일반적으로 통계 분석을 수행했다는 것은 추론 통계를 이용해 가설 검정을 했다는 의미이다. 기술 통계 분석에서 집단 간 차이가 있는 것으로 나타났더라도 이는 우연에 의한 차이일 수 있다. 데이터를 이용해 신뢰할 수 있는 결론을 내리려면 유의확률을 계산하는 통계적 가설 검정 절차를 거쳐야 한다.

더보기
  • 기술 통계의 예로 사람들이 받는 월급을 집계해 전체 월급 평균을 구하는 것을 '기술 통계 분석'이라 한다.
  • 추론 통계의 예로 수집된 데이터에서 성별에 따라 월급에 차이가 나타났을 때, 이런 차이가 우연히 발생할 확률을 계산한다. 만약 이런 차이가 우연히 나타날 확률이 작다면 성별에 따른 월급 차이가 통계적으로 유의하다고 결론을 내린다. 반대로 이런 차이가 우연히 나타날 확률이 크다면 성별에 따른 월급 차이가 통계적으로 유의하지 않다고 결론을 내린다.

통계적 가설 검정

   유의확률을 이용해 가설을 검정하는 방법을 '통계적 가설 검정(Statistical hypothesis test)'라고 한다. '유의 확률(Significance probablity, p-value)'은 실제로는 집단 간 차이가 없는 데 우연히 차이가 있는 데이터가 추출될 확률을 의미한다.

   통계 분석을 실시한 결과 유의확률이 크게 나타나면 '집단 간 차이가 통계적으로 유의하지 않다'라고 해석한다. 이는 실제로 차이가 없더라도 우연에 의해 이 정도의 차이가 관찰될 가능성이 크다는 것을 의미한다. 반대로 유의확률이 작다면 '집단 간 차이가 통계적으로 유의하다'라고 해석한다. 이는 실제로 차이가 없는데 우연히 이 정도의 차이가 관찰될 가능성이 적다, 우연이라고 보기 힘들다는 의미이다.


t 검정

    't 검정(t-test)'은 두 집단의 평균에 통계적으로 유의한 차이가 있는 지 알아볼 때 사용하는 통계 분석 기법이다. R에 내장된 't.test()'를 이용해 t 검정을 할 수 있다.

# 데이터 불러오기
mpg <- as.data.frame(ggplot2::mpg)

# 변수 추출
library(dplyr)
mpg_diff <- mpg %>% select(class, cty) %>% filter(class %in% c("compact", "suv"))

head(mpg_diff)
## 결과 생략

table(mpg_diff)
## 결과 생략

# t 검정
t.test(data = mpg_diff, cty ~ class, var.equal = T)
## 아래 이미지 참고

mpg_diff2 <- mpg %>% select(fl, cty) %>% filter(fl %in% c("r", "p"))	# r:regular, p:premium

table(mpg_diff2)
## 결과 생략

# t 검정
t.test(data = mpg_diff2, cty ~ fl, var.equal = T)
## 아래 이미지 참고

   'p-value'가 유의확률을 의미한다. 일반적으로 유의확률 5%를 판단 기준으로 삼고, 'p-value'가 0.05 미만이면 '집단 간 차이가 통계적으로 유의하다'라고 해석한다.

   'compact'자동차와 'suv'자동차의 'p-value'가 2.2 * 10 ^ -16 이므로 c'ompact'과 'suv' 간 평균 도시 연비 차이가 통계적으로 유의하다고 할 수 있다. 또한 'sample estimates' 부분을 보면 각 집간의 'cty' 평균이 나타나있다. 'compact'는 20인 반면 'suv'는 13이므로 'suv'보다 'compact'의 도시 연비가 더 높다고 할 수 있다.

   일반 휘발유와 고급 휘발유 자동차 간 도시 연비 차이에서 'p-value'가 0.2875, 즉, 28.75%를 넘겼기에 일반 휘발유와 고급 휘발유를 사용하는 자동차 간 도시 연비 차이가 통계적으로 유의하지 않다고 할 수 있다. 'sample estimates' 부분을 보면 고급 휘발유의 도시 연비 평균이 0.6정도 높지만 이런 정도의 차이는 우연히 발생했을 가능성이 크다.

상관 분석

    '상관분석(Correlation Analysis)'은 두 연속 변수가 서로 관련이 있는지 검정하는 통계 분석 기법이다. 상관분석을 통해 도출한 상관계수(Correlation Coefficient)로 두 변수가 얼마나 관련되어 있는지, 관령성의 정도를 파악할 수 있다. 상관계수는 0~1 사이의 값을 지니고 1에 가까울수록 관련성이 크다는 것을 의미한다. 상관계수가 양수면 정비례, 음수면 반비례 관계임을 의미한다. R에 내장된 'cor.test()'를 이용하면 상관분석을 할 수 있다.

economics <- as.data.frame(ggplot2::economics)
cor.test(economics$unemploy, economics$pce)
## 아래 이미지 참고

    p-value가 0.05 미만이므로, 실업자 수와 개인 소비 지출의 상관이 통계적으로 유의하다. 'cor'이 상관계수이다. 상관계수 양수로 0.61이므로, 실업자 수와 개인 소비 지출은 한 변수가 증가하면 다른 변수가 증가하는 정비례 관계임을 알 수 있다.

    여러 변수의 관련성을 한 번에 알아보고자 할 경우, 모든 변수의 상관 관계를 나타낸 상관 행렬(Correlation Matrix)을 만든다. 상관행렬을 보면 어떤 변수 끼리 관련이 크고 적은 지 파악할 수 있다. R에 내장된 'mtcars' 데이터와  'corrplot'패키지을 통해 상관행렬을 만들어 보자.

# 데이터 확인
head(mtcars)
## 결과 생략

# 상관행렬 생성
car_cor <- cor(mtcars)
round(car_cor, 2) # 소수점 셋째 자리에서 반올림해 출력
## 결과 생략

# 히트맵 만들기
install.packages("corrplot")
library(corrplot)

corrplot(car_cor)

    히트맵을 보면 상관계수가 클수록 원의 크기가 크고 색깔이 진하다. 상관관계가 양수면 파란색, 음수면 빨간색 계열로 표현되어 있다. 원의 크기와 색깔을 보면 상관관계의 정도와 방향을 쉽게 파악할 수 있다.


주섬주섬

  • 상관계수가 작거나 0에 가까울 수록 두 변수 간의 관계는 의미가 없다고 할 수 있다.
  • 대표적으로 t 검정과 상관관계에 대해서만 알아보았다. 그 외에 통계적 가설 검정은 데이터 분석 공부를 통해 배우는 것을 추천한다.
반응형

'프로그래밍 언어 > R' 카테고리의 다른 글

R 초보자 꿀팁  (0) 2024.02.02
R 13. 기타  (0) 2024.02.02
R 11. 인터랙티브 그래프  (0) 2024.02.02
R 10. 지도 시각화  (0) 2024.02.02
R 9. 텍스트 마이닝  (0) 2024.02.02

댓글