상관분석의 정의
두 데이터 간의 상관관계를 보는 상관분석은 통계분석, 데이터분석, 최적화와 같은 데이터 분석의 첫단에서 사용됩니다. 상관계수는 -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)
댓글