자료 전처리 (1) 결측값
전처리할 것
- missing values
- skewness(unsymmetric)
- near-zero variance
- 서로 상관이 높은 변수
- n < p -> 차원축소기법이 필요
결측값
자료 전처리는 분석에서 굉장히 중요합니다.
특히 결측값이 존재하는 경우에는 분석에서 많은 문제가 발생하기 쉽습니다.
본 강의에서는 자료에 결측값이 존재하는지, 존재한다면 어떻게 해결할 수 있는지에 대해 알아봅니다.
먼저 R에서 결측값 찾는 방법을 알아봅시다. 임의로 10개의 원소를 가지는 2 by 5 행렬을 만들고 결측값을 만듭니다.
x <- matrix(1:10, 2) # 2 by 5 행렬 생성
x[c(2,7)] <- NA # 2와 7을 NA로 바꿈
x
를 확인합니다.
x
is.na
함수는 NA
가 있으면 TRUE
를 반환, 없으면 FALSE
를 반환합니다.
is.na(x)
which
함수는 그 값과 일치하는 값이 어디에 위치하는지를 알려줍니다. 아래는 NA
의 위치를 알려줍니다.
which(is.na(x))
우리 자료에는 과연 결측치가 있을까요? 확인해보기 위해서는 다음과 같이 입력하면 됩니다. 아래 코드는 결측치의 총 개수를 알려줍니다.
sum(is.na(dat))
다행히도 우리 자료에는 결측치가 없군요. 결측치가 있다면 어떻게 하면 될까요? caret에서는 knnImpute라는 기능을 제공합니다. 이는 조금 후에 알아보도록 하겠습니다.