📚해당 게시글은 '이지스 퍼블리싱' 출판, 데이터 분석가 '김영우'님이 지은 도서 "Do it! 쉽게 배우는 R 데이터 분석" 을 기반으로 작성된 게시글입니다. 저작권 문제 시 게시글을 삭제 하겠습니다 :)
- 통계적 가설 검정이란?
우선, 통계분석은 기술통계와 추론 통계로 나뉜다.
기술통계: 데이터를 요약해 설명하는 통계 기법 ex. 사람들이 받는 월급을 집계해 전체 월급 평균을 구하는 것
추론통계: 숫자 요약을 넘어 어떤 값이 발생할 확률을 계산하는 통계 기법
ex. 수집된 데이터에서 성별에 따라 월급에 차이가 있는 것으로 나타났을 때, 이런 차이가 우연히 발생할 확률
유의확률을 이용해 가설 검정하는 방법을 통계적 가설 검정이라고 하는데, 유의확률은 실제로는 집단 간 차이가 없는데 우연히 차이가 있는 데이터가 추출될 확률을 의미한다.
차이가 우연히 발생할 확률이 낮다면 > 성별에 따른 월급 차이가 통계적으로 유의하다.
차이가 우연히 발생할 확률이 높다면 > 성별에 따른 월급 차이가 통계적으로 유의하지 않다.
- 두 집단의 평균 비교; t 검정
> 분석내용: compact(소형차)와 suv(SUV차량)가 도시 연비에서 통계적으로 유의한 차이가 있을까?
ggplot2에 내장된 mpg 데이터를 이용해 t 검정을 수행해보았다.
먼저, ggplot2의 mpg 데이터를 데이터 프레임 형식으로 불러와 mpg라고 지정했다.
dplyr 패키지를 로드한 후,
mpg 데이터에서 class, cty 변수만 남기고, class가 compact와 suv인 자동차를 추출했다. select(), filter (), %in% c()
빈도표를 추출하니, mpg 내에는 compact차량 값은 47개, suv차량 값은 62개가 있었다. table()
R에 내장된 t.test() 함수를 이용해 t 검정을 시행했다.
앞에서 추출한 데이터를 지정해주고, ~ 기호를 이용해 비교할 값인 cty 변수와 비교할 집단인 class 변수를 지정했다.
t 검정은 비교하는 집단의 분산이 같은지에 따라 적용하는 공식이 다른데, 여기서는 집단 간 분산이 같다고 가정하고 var.equal = 파라미터를 T로 지정했다.
> 결과: 출력된 검정 결과에서 'p-value'는 앞에서 설명한 유의확률을 의미한다. 2.2e-16이라는 것은, 2.2 앞에 0이 16개 있는 값. 즉, 2.2 x 10의 -16승을 뜻한다.
보통, 유의확률이 0.05 미만인지 이상인지에 따라 통계적으로 유의한지 아닌지를 판단하는데, 이번 분석의 경우, 유의확률이 0.05보다 작으므로, compact와 suv 간 평균 도시 연비 차이가 통계적으로 유의하다고 해석할 수 있다.
sample estimates 결과를 보면, compact 집단은 평균이 20이고, suv 집단은 평균이 13이므로, suv 보다 compact의 도시 연비가 더 높은 것을 알 수 있다.
+ 일반 휘발유와 고급 휘발유의 도시 연비 t 검정
> 분석내용: 일반 휘발유(r)를 사용하는 자동차와 고급 휘발유(p)를 사용하는 자동차 간 도시 연비 차이가 통계적으로 유의한지 알아보았다. 과정은 위와 동일한 방법으로 분석을 시행했다.
> 결과: 유의확률이 0.2875로 0.05보다 커 일반 휘발유와 고급 휘발유를 사용하는 자동차 간 연비 차이가 통계적으로 유의하지 않다.
sample estimates 결과를 보면, 고급 휘발유 자동차의 도시 연비는 일반 휘발유보다 0.6정도 높다는 것을 알 수 있다.
- 두 변수의 관계성 분석; 상관분석
상관분석이란 두 연속 변수가 서로 관련이 있는지 검정하는 통계 분석 기법이다. 상관분석을 통해 도출한 상관계수로 두 변수가 얼마나 관련되어 있는지, 그 관련성의 정도를 파악할 수 있다. 상관계수는 0~1사이의 값을 지니는데, 1에 가까울수록 관련성이 크다는 것을 뜻한다.
> 분석내용: 실업자 수와 개인 소비 지출의 상관관계
우선 ggplot2의 economics 데이터를 데이터프레임 형식으로 불러왔다.
R에 내장된 cor.test()함수를 이용해 실업자(unemploy) 변수와 개인 소비 지출(pce) 변수의 상관관계를 알아보았다.
> 분석결과: t 검정을 할 때와 동일하게, p-value 값을 통해 유의확률이 2.2e-16임을 확인할 수 있고, 밑에 sample estimates 결과에서 상관계수가 약 0.61이라는 것을 알 수 있다.
여기서, 상관계수가 양수이므로, 실업자 수와 개인 소비 지출의 관계는 정비례 관계인 것이다.
+ 상관행렬 히트맵 만들기
여러 변수의 관련성을 한 번에 알아보자 할 경우, 모든 변수의 상관관계를 나타낸 상관행렬을 만든다. 이를 통해 어떤 변수끼리 관련이 크고 적은지 한눈에 파악이 가능하다.
> 분석 내용: cor() 함수를 이용해 상관행렬을 만든 후 round() 함수로 소수점 셋째 자리에서 반올림한 값을 출력하도록 분석을 시행했다. 결과는 모두 사진과 같이 숫자로 뜬다. 값이 양수라면 두 변수 사이는 정비례 관계라는 것을 의미하고, 값이 음수면 두 변수가 반비례 관계라는 것을 의미한다. 그리고, 해당 값들을 한번에 파악하기 위해 히트맵을 사용한다.
히트맵을 사용하기 위해 corrplot 패키지를 설치하고 로드했다. corrplot() 함수를 이용하면 히트맵이 나타난다.
> 분석 결과: 상관계수가 클수록 원의 크기가 크고 색깔이 진해진다. 상관계수가 양수면 파란색, 음수면 빨간색으로 나타난다.
원의 크기와 색깔을 보면 상관 관계의 정도와 방향을 쉽게 파악 할 수 있다.
corrplot() 함수는 파라미터를 사용해 그래프의 형태를 다양하게 바꿀 수 있는데, 우선 method = 파라미터에 number를 지정해 원이 아닌 상관계수가 표현되게 설정해보았다.
이번에는 다양한 파라미터를 적용시켜보았다.
우선, 그래프의 색상을 바꾸기 위해 colorRampPalette() 함수를 이용해 색상 코드 목록을 생성하는 col() 함수를 만들어, 파라미터에 활용해보았다.
> 파라미터 설명
method = : 표현 방법 (color - 색깔로 표현)
col = : 색상 선정 갯수 (col(200) - 색상 200개 선정)
type = : 표시할 행렬 (lower - 왼쪽 아래 행렬만 표시)
order = : 순서 (hclust - 유사한 상관계수끼리 군집화)
addCoef.col = : 상관계수 색깔 (black - 상관계수 검정색으로 표시)
tl.col = : 변수명 색깔 (black - 변수명 검정색으로 표시)
tl.srt = : 변수명 기울임 정도 (45 - 변수명 45도 기울임)
diag = : 대각 행렬 포함/제외 (F- 제외)
마지막에 다양한 파라미터를 적용시킬 때 약간 헷갈렸다. 하지만 이해는 다 한 것 같다!
다음 단원에서는 마크다운으로 데이터 분석 보고서를 만드는 방법에 대해 알아보자 😊
'(통계분석) R' 카테고리의 다른 글
10.17(토) R 내장 함수로 데이터 추출하기, 변수 타입, 데이터의 구조 (0) | 2020.10.17 |
---|---|
10.12(월) 인터랙티브 그래프 (0) | 2020.10.12 |
10.10(토) 지도의 시각화 (0) | 2020.10.11 |
10.09(금) 텍스트 마이닝 (0) | 2020.10.09 |
10.06(화) 성별 직업 빈도, 종교 유무에 따른 이혼율, 지역별 연령대 비율 (0) | 2020.10.06 |