데이터 분석/R
[R] 이상치 정제하기
eunki
2021. 6. 25. 19:04
728x90
이상치 (Outlier)
정상범주에서 크게 벗어난 값을 의미한다.
이상치를 포함하면 분석 결과가 왜곡될 수 있다.
이상치의 종류로는 존재할 수 없는 값과 극단적인 값이 있다.
1. 이상치가 포함된 데이터 생성
outlier <- data.frame(sex = c(1, 2, 1, 3, 2, 1), # sex 3
score = c(5, 4, 3, 4, 2, 6)) # score 6
outlier

2. 이상치 확인
table(outlier$sex)
'''
1 2 3
3 2 1
'''
table(outlier$score)
'''
2 3 4 5 6
1 1 2 1 1
'''
3. 결측 처리하기
# sex가 3이면 NA 할당
outlier$sex <- ifelse(outlier$sex == 3, NA, outlier$sex)
# score가 1~5 아니면 NA 할당
outlier$score <- ifelse(outlier$score > 5, NA, outlier$score)
outlier

4. 결측치 제외하고 분석
outlier %>%
filter(!is.na(sex) & !is.na(score)) %>%
group_by(sex) %>%
summarise(mean_score = mean(score))

1. 상자그림 생성
mpg <- as.data.frame(ggplot2::mpg)
boxplot(mpg$hwy)

2. 상자그림 통계치 출력
boxplot(mpg$hwy)$stats

3. 결측 처리하기
# 12~37 벗어나면 NA 할당
mpg$hwy <- ifelse(mpg$hwy < 12 | mpg$hwy > 37, NA, mpg$hwy)
table(is.na(mpg$hwy))

4. 결측치 제외하고 분석하기
mpg %>%
group_by(drv) %>%
summarise(mean_hwy = mean(hwy, na.rm = T))

728x90