본문 바로가기

R

R 상관분석(Correlation) 시각화

상관분석이란?


상관분석(Correlation Analysis)은 확률론과 통계학에서 두 변수간에 어떤 선형적 관계를 갖고 있는 지를 분석하는 방법이다. 두변수는 서로 독립적인 관계로부터 서로 상관된 관계일 수 있으며 이때 두 변수간의 관계의 강도를 상관관계(Correlation, Correlation coefficient)라 한다. 상관분석에서는 상관관계의 정도를 나타내는 단위로 모상관계수 ρ를 사용한다.


상관관계의 정도를 파악하는 상관계수(Correlation coefficient)는 두 변수간의 연관된 정도를 나타낼 뿐 인과관계를 설명하는 것은 아니다. 두 변수간에 원인과 결과의 인과관계가 있는지에 대한 것은 회귀분석을 통해 인과관계의 방향, 정도와 수학적 모델을 확인해 볼 수 있다.

위키백과 참조


R에서 상관분석


R에서는 상관분석하는 방법은 몇가지 함수만 알면 간단하게 할 수 있다.

이 글에서는 R에서 기본으로 제공하는 mtcars 데이터 셋을 이용하고자 한다.

mtcars 데이터 셋은 미국의 1973~74년 자동차 모델에 대한 디자인 성능 연비등의 정보를 나타내고 있다.


우선 mtcars 데이터 셋을 확인해보자

 R-fiddle 버그로 종종 소스코드가 안 보이는 증상이 있음.

str(mtcars)
head(mtcars)

데이터 컬럼 수는 11개이며 32개의 로우 데이터로 구성되어 있다.


그럼 해당 변수들 간의 상관분석을 해보자

cor 함수를 이용하면 간단하게 상관분석을 할 수 있다.


 R-fiddle 버그로 종종 소스코드가 안 보이는 증상이 있음.

mcor <- cor(mtcars)
round(mcor, 2)



상관분석 결과를 간략하게 확인해보면 아래와 같다.

1 또는 -1에 가까울 수록 두 변수간의 상관관계가 있음을 알 수 있다.

> round(mcor, 2)
       mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
mpg   1.00 -0.85 -0.85 -0.78  0.68 -0.87  0.42  0.66  0.60  0.48 -0.55
cyl  -0.85  1.00  0.90  0.83 -0.70  0.78 -0.59 -0.81 -0.52 -0.49  0.53
disp -0.85  0.90  1.00  0.79 -0.71  0.89 -0.43 -0.71 -0.59 -0.56  0.39
hp   -0.78  0.83  0.79  1.00 -0.45  0.66 -0.71 -0.72 -0.24 -0.13  0.75
drat  0.68 -0.70 -0.71 -0.45  1.00 -0.71  0.09  0.44  0.71  0.70 -0.09
wt   -0.87  0.78  0.89  0.66 -0.71  1.00 -0.17 -0.55 -0.69 -0.58  0.43
qsec  0.42 -0.59 -0.43 -0.71  0.09 -0.17  1.00  0.74 -0.23 -0.21 -0.66
vs    0.66 -0.81 -0.71 -0.72  0.44 -0.55  0.74  1.00  0.17  0.21 -0.57
am    0.60 -0.52 -0.59 -0.24  0.71 -0.69 -0.23  0.17  1.00  0.79  0.06
gear  0.48 -0.49 -0.56 -0.13  0.70 -0.58 -0.21  0.21  0.79  1.00  0.27
carb -0.55  0.53  0.39  0.75 -0.09  0.43 -0.66 -0.57  0.06  0.27  1.00


위 데이터만으로 충분히 분석할 수 있지만 이왕이면 차트로 표현해보자

R에서는 기본적으로 plot을 지원하며 ggplot2와 같은 차트 패키지를 많이 지원하고 있다.

여기서는 상관분석 차트 표현을 위하여 corrplot 패키지를 사용하려 한다.


R-fiddle 버그로 종종 소스코드가 안 보이는 증상이 있음.

library(corrplot)
mcor <- cor(mtcars)
round(mcor, 2) 
corrplot(mcor, method='shade', shade.col=NA, tl.col='black', tl.srt=45)



차트를 확인해보면 아래와 같다. 양수 1에 가까울 수록 파란색 계열로 음수 1에 가까울 수록 붉은색 계열의 색상으로 표현됨을 알 수 있으며 위 데이터 결과보다 차트로 보는것으로 변수간의 상관관계를 쉽게 확인할 수 있다.




'R' 카테고리의 다른 글

R DB Connection  (0) 2014.01.28
R 데이터프레임(DF) grep & gsub  (0) 2014.01.17
R evel함수활용 : String Source Code Execute  (2) 2014.01.17