상관과 회귀

예측 분석의 기본이 되는 상관과 회귀의 개념을 알아봅니다


수강중

5. 상관계수 시각화하기

  • 장점: 보기가 좋음, 한 눈에 파악하기 쉬움, 타인에게 보여주기 좋음

패키지 설치

install.packages(c('corrgram', 'corrplot'))

불러오기

library(corrgram)
library(corrplot)
Registered S3 methods overwritten by 'ggplot2':
  method         from 
  [.quosures     rlang
  c.quosures     rlang
  print.quosures rlang
Registered S3 method overwritten by 'seriation':
  method         from 
  reorder.hclust gclus
corrplot 0.84 loaded

데이터 불러오기

vars2 <- c("Assists","Atbat","Errors","Hits", "Homer", "logSal", "Putouts","RBI","Runs","Walks","Years")
cor.data <- baseball[,vars2]

상관관계 매트릭스 구하기

cor.mat <- cor(cor.data, use = 'complete.obs')
cor.mat
        Assists     Atbat     Errors       Hits       Homer        logSal     
Assists  1.00000000 0.3421174  0.703504693 0.30397495 -0.161601753  0.04995942
Atbat    0.34211738 1.0000000  0.325576978 0.96396913  0.555102154  0.41491402
Errors   0.70350469 0.3255770  1.000000000 0.27987618 -0.009743082 -0.02080208
Hits     0.30397495 0.9639691  0.279876183 1.00000000  0.530627358  0.44956563
Homer   -0.16160175 0.5551022 -0.009743082 0.53062736  1.000000000  0.33983344
logSal   0.04995942 0.4149140 -0.020802084 0.44956563  0.339833444  1.00000000
Putouts -0.04339014 0.3096075  0.075305857 0.29968754  0.250931497  0.22451071
RBI      0.06290174 0.7960154  0.150154692 0.78847819  0.849107434  0.44414262
Runs     0.17925786 0.8998291  0.192608787 0.91063014  0.631075883  0.42556924
Walks    0.10252256 0.6244481  0.081937197 0.58731051  0.440453717  0.43242817
Years   -0.08511772 0.0127255 -0.156511957 0.01859809  0.113488420  0.53735125
        Putouts     RBI        Runs        Walks     Years      
Assists -0.04339014 0.06290174  0.17925786 0.1025226 -0.08511772
Atbat    0.30960746 0.79601539  0.89982910 0.6244481  0.01272550
Errors   0.07530586 0.15015469  0.19260879 0.0819372 -0.15651196
Hits     0.29968754 0.78847819  0.91063014 0.5873105  0.01859809
Homer    0.25093150 0.84910743  0.63107588 0.4404537  0.11348842
logSal   0.22451071 0.44414262  0.42556924 0.4324282  0.53735125
Putouts  1.00000000 0.31206456  0.27115986 0.2808555 -0.02001921
RBI      0.31206456 1.00000000  0.77869235 0.5695048  0.12966795
Runs     0.27115986 0.77869235  1.00000000 0.6970151 -0.01197495
Walks    0.28085548 0.56950476  0.69701510 1.0000000  0.13479270
Years   -0.02001921 0.12966795 -0.01197495 0.1347927  1.00000000
  • use = 'complete.obs'
    • NA가 포함되어 있는 경우에 그 데이터를 전부 지워줌
    • 데이터가 많으면 이 방법을 사용해도 괜찮음
  • 결과값에서 정보를 파악하는 것이 어려움

corrplot 패키지를 이용한 시각화

corrplot(cor.mat, type = 'upper', order = 'hclust', tl.col='black', tl.srt = 45)
  • type = 'upper'
    • 매트릭스의 대각선 위에 있는 정보만 사용
  • order = 'hclust'
    • 상관관계가 강한 변수들끼리 묶어서 표현
  • tl.col='black', tl.srt = 45
    • 그래픽과 관련된 옵션이기 때문에 추가하지 않아도 괜찮음
  • 결과
    • Assists는 Errors, Atbat(네트에 얼마나 맞추는가)등의 수비력과 관련이 있고 Assists가 높은 사람은 Homer(홈런)등의 공격력과는 거리가 멀음
    • Years가 떨어지면 근력이 떨어지므로 Assists가 떨어짐
    • logSal(연봉)은 대부분의 변수와 상관관계가 높음
    • Homer는 RBI(타점), Walks(출루)와 상관관계가 높음

corrgram 패키지를 이용한 시각화

corrgram(cor.mat, order = 'HC', lower.panel = panel.shade, upper.panel = NULL, text.panel = panel.txt, main = '')
  • order = 'HC'
    • 상관관계가 강한 변수들끼리 묶어서 표현
  • upper.panel = NULL
    • 대각선 위쪽을 비움
  • 양의 상관을 가지면 우상향 사선
  • 음의 상관을 가지면 우하향 사선

파이그래프 추가

corrgram(cor.mat, order = 'HC', lower.panel = panel.shade, upper.panel = panel.pie, text.panel = panel.txt)
  • 상관 관계를 파이그래프의 색으로 표현

corrgram 검색 자료

  • 어떤 옵션이 있는지 확인 가능

corrplot을 이용한 시각화

corrplot(cor.mat, col = colorRampPalette(c("firebrick3", "white", "navy"))(10), type = 'lower')
  • colorRampPalette에서 firebrick3이라는 함수를 이용하여 white와 navy색을 사용함
  • type = 'lower'
    • 아래쪽에만 표현
  • 결과
    • 파란색은 양의 상관
    • 빨간색은 음의 상관

상관계수 시각화를 통해

  • 어떤 변수들이 어떻게 연결되는지 알 수 있음
  • 어떤 변수끼리 관련이 강한지 등을 파악할 수 있음