[R Studio] 상관분석 후 시각화하기(correlation heatmap) (feat. ggcorrplot/corrplot)
상관분석(Correlation Analysis)이란 두 변수가 어떤 관계를 가지고 있는지를 분석하는 방법입니다. 상관분석에서는 두 변수간의 관계의 정도를 상관계수를 이용하여 나타냅니다.
상관계수는 -1에서 +1 사이의 값을 가지며, 그 절대값이 클수록 상관관계가 크다고 할 수 있습니다. 하지만, 상관계수가 인과 관계를 나타내는 것은 아닙니다.
두 변수간의 인과관계를 알기 위해서는 회귀분석을 수행해야 합니다.
R Studio에서 상관분석을 실행해보겠습니다. 이를 위해 R Studio에서 기본적으로 제공하는 mtcars 데이터를 이용하고자 합니다.
먼저, mtcars 데이터를 불러오겠습니다. 저는 이 데이터를 cars라고 명명하겠습니다.
mtcars 데이터는 다음과 같이 구성되어 있습니다.
그럼 해당 변수들간에 상관관계를 분석해보겠습니다. cor() 함수를 이용합니다.
상관분석을 한 데이터를 car_cor라고 저장하겠습니다.
상관분석 결과를 보기 위해 round() 함수를 이용하여 살펴봅니다.
round(상관분석 후 저장한 데이터명, 2)를 입력합니다.
결과가 나타나긴 했으나, 눈에 한눈에 들어오지 않습니다. 좀 더 명확하게 나타내기 위해 이 데이터를 시각화해보겠습니다.
Heatmap을 그리기 위해 ggcorrplot 패키지를 불러옵니다.
혹시 설치가 안되어 있다면, install.package("ggcorrplot")을 통해 설치해주신 다음 불러와주세요.
library(ggcorrplot)
그 후 ggcorrplot() 함수를 이용합니다.
ggcorrplot(상관분석 후 저장한 데이터명)
라고 입력해줍니다.
그럼 다음과 같은 결과가 나타납니다.
좀 더 보기가 간편해졌죠?
다른 방식으로도 그려보겠습니다. 원 형태로 그려볼까 합니다.
ggcorrplot(상관분석 후 저장한 데이터명, method = 'circle') 을 입력해줍니다.
그럼 다음과 같이 나타납니다.
대각선을 기준으로 같은 결과를 나타내기 때문에, 대각선 윗부분은 생략하고 밑 부분만 나타내보겠습니다.
ggcorrplot(상관분석 후 저장한 데이터명, method = "circle", type = "lower")을 입력합니다.
그러면 다음과 같이 밑부분만 남게됩니다.
corrplot()을 통해서도 correlation heatmap을 그릴 수 있습니다.
우선 corrplot 패키지를 불러옵니다.
library(corrplot)
그 다음 corrplot(상관분석 후 저장한 데이터명)을 입력해줍니다.
그러면 다음과 같이 원 형태로 결과가 나타납니다.
또 다른 방식으로 나타내보겠습니다.
corrplot(상관분석 후 저장한 데이터명, type="lower", order="hclust") 라고 입력합니다.
그러면 다음과 같이 대각선 밑부분만 나타나는 heatmap이 나타납니다.
tl.srt = 45을 추가해서 입력해주면 글씨가 45도 각도로 적히는 것을 알 수 있습니다.