자료 전처리 (3) 높은 상관과 preProcess 함수 :: 예측 분석 - mindscale
Skip to content

자료 전처리 (3) 높은 상관과 preProcess 함수

서로 상관이 높은 변수

높은 상관을 가지는 변수들이 같이 들어가면 모형이 불안정해지는 경우가 있습니다. 그 경우에는 서로 상관이 높은 변수들을 찾아보고 필요한 경우에는 제거할 필요가 있습니다.

cor 함수 이용

cor_mat <- cor(dat[,-1])
cor_mat
# 변수가 많아 눈으로 확인하기가 어려움

시각화를 통해 확인

library(corrplot)
corrplot(cor_mat, order = 'hclust')

CARET에서 제공하는 함수(findCorrelation) 사용

caret에서는 이를 간단하게 할 수 있도록 findCorrelation이라는 함수를 제공합니다.
cutoff값을 조절하면서 어떤 변수들이 문제가 될 수 있는지 알아봅시다.

highCor <- findCorrelation(cor_mat, cutoff = 0.9, names = T)
highCor
dat <- subset(dat, select = -c(Magnesium, log_Magnesium)) # bc_Magnesium과 상관이 높은 변수 Magnesium, log_Magnesium를 제거
- cutoff를 조절하면서 어떤 변수들이 문제가 될 수 있는지 확인

n < p 차원축소기법

  • 변수를 조합해 자료를 잘 설명할 수 있는 선형 결합된 것들을 사용하는 PCA를 사용

preProcess

  • 지금까지 한 전처리 기능들을 preProcess 함수를 이용해 쉽게 적용 가능
    trans <- preProcess(dat[,-1], method = c('knnImpute', 'center', 'scale', 'BoxCox', 'pca'), pcaComp=4)
    ppred <- predict(trans, dat[,-1])