라일락 꽃이 피는 날

[R] 이상치 정제하기 본문

데이터 분석/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

'데이터 분석 > R' 카테고리의 다른 글

[R] 대응표본 t-test (t-검정)  (0) 2021.06.27
[R] t-test (t 검정)  (0) 2021.06.27
[R] 데이터 정제하기  (0) 2021.06.25
[R] 그래프 그리기  (0) 2021.06.25
[R] 데이터 전처리 (Preprocessing)  (0) 2021.06.25