본문 바로가기
Machine Learning

통계 분석 #3 : 상관분석 정의, 상관계수 해석 기준 with R

by 무적물리 2020. 3. 17.

상관분석의 정의

데이터 간의 상관관계를 보는 상관분석은 통계분석, 데이터분석, 최적화와 같은 데이터 분석의 첫단에서 사용됩니다. 상관계수는 -1~+1 사이의 값으로 양의 상관관계이거나 음의 상관관계이거나 상관관계가 없다고 표현됩니다.


- 상관분석 : 두 변수 간에 관계가 있는지를 알아보고자 할 때 실시하는 분석 방법

- 상관관계 : 두 변수가 서로 관련성이 있다고 추측되는 관계

- 상관계수(r) : 두 변수의 관련된 정도를 나타내주는 값 (Correlation : r)


- 양의 상관관계 예시(r>0) : 지능지수와 성적, 키와 몸무게

- 음의 상관관계 예시(r<0) : 농작물 수확량과 가격, 고도와 기온

- 무의 상관관계 예시(r=0) : 범죄률과 아이스크림 판매량



상관계수 해석 (Rea & Parker, 2005)

상관분석을 하게 되면 상관계수가 도출됩니다. 상관관계의 숫자에 따라 두 데이터 간에 얼만큼의 상관관계가 있는지 정량화해서 보여줍니다. 이는 보통 최적화를 위해서 우선적으로 변수화해야하는 Feature를 선택하기 위한 값으로 사용됩니다.




0.0 ~ 0.1 : 거의 관계없음

0.1 ~ 0.2 : 약한 양의 상관관계

0.2 ~ 0.4 : 보통의 양의 상관관계

0.4 ~ 0.6 : 비교적 강한 양의 상관관계

0.6 ~ 0.8 : 강한 양의 상관관계

0.8 ~ 1.0 : 매우 강한 양의 상관관계


R을 이용한 상관분석

오픈소스인 데이터분석 및 시각화 소프트웨어인 R에서 상관분석을 해보겠습니다. 패키지는 상관 계수 그래프 패키지인 corrplot과 X, Y Plot 패키지인 lattice를 사용하였습니다. 상관분석을 위한 명령어는 Bold로 되어있는 cor(데이터) 입니다.


# 상관 계수 그래프 패키지

install.packages("corrplot")

library(corrplot)


# X, Y Plot을 위한 패키지

install.packages("lattice")

library(lattice)


# mtcars 데이터를 가져오기

install.packages("corrplot")

library(corrplot)

a=mtcars 

a


# gear, carb 상관계수 산출

mcor2=cor(mtcars$gear,mtcars$carb)

mcor2


# 산점도 그리기

xyplot(gear~carb, data=mtcars)


# 회귀선 그리기

lm=plot(mtcars$gear, mtcars$carb)

abline(lm(mtcars$gear~mtcars$carb))


# 데이터 전체 상관분석

mcor=cor(mtcars)

mcor


# 소수점 둘째짜리까지 상관계수 표시

round(mcor,2)


# 상관계수를 도표로 표시

corrplot(mcor)


# ggplot2 패키지로 시각화 패키지

install.packages("ggplot2")

library(ggplot2)

qplot(gear, carb, data=mtcars)


댓글