일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Programming
- SQL
- rps.apk
- ZIP
- android
- db
- __name__
- r
- Android 디컴파일
- ADB
- Python
- sys
- CodeEngn
- select
- 인자 전달
- SECCON
- Database
- 스키마 생성
- 데이터 무결성
- RPS
- 데이터베이스
- __main__
- Android 서명
- 무결성 제약조건
- 릴레이션 생성
- main
- Pay1oad
- enumerate
Archives
- Today
- Total
블로그
데이터 정제하기 - 극단치 본문
극단치
논리적으로 존재할 수 있지만 극단적으로 크거나 작은 값을 '극단치'라고 합니다.
데이터에 극단치가 있으면 분석 결과가 왜곡될 수 있기 때문에 분석하기 전에 제거해야합니다.
극단치를 제거하려면 먼저 어디까지를 정상 범위로 볼 것인지 정해야합니다. 가장 쉬운 방법은 논리적으로 판단해 정하는 것입니다. 두번째는 통계적인 기준을 이용하는 것입니다.
상자 그림으로 극단치 기준 정하기
상자 그림은 데이터의 분포를 직사각형의 상자 모양으로 표현한 그래프입니다. 상자 그림을 보면 데이터의 분포를 한눈에 알 수 있습니다.
상자 그림에는 중심에서 멀리 떨어진 극단치가 점으로 표현되는데, 이를 이용해 극단치의 기준을 정할 수 있습니다.
먼저
mpg
데이터의hwy
변수로 상자 그림을 만들어 보겠습니다.boxplot()
에 상자 그림으로 표현할 변수를 지정하면 됩니다.
boxplot(mpg$hwy)
상자그림 | 값 | 설명 |
---|---|---|
상자 아래 세로 점선 | 아랫수염 | 하위 0~25% 내에 해당하는 값 |
상자 밑면 | 1사분위수(Q1) | 하위 25% 위치 값 |
상자 내 굵은 선 | 2사분위수(Q2) | 하위 50% 위치 값(중앙값) |
상자 윗면 | 3사분위수(Q3) | 하위 75% 위치 값 |
상자 위 세로 점선 | 윗수염 | 하위 75~100%내에 해당하는 값 |
상자 밖 가로선 | 극단치 경계 | Q1,Q3 밖 1.5 IQR 내 최댓값 |
상자 밖 점 표식 | 극단치 | Q1,Q3 밖 1.5 IQR 내 벗어난 값 |
stats
를 사용해 통계치를 출력해보기
boxplot(mpg$hwy)$state # 상자 그림 통계치 출력
[,1]
[1,] 12
[2,] 18
[3,] 24
[4,] 27
[5,] 37
attr(,"class")
1
"integer"
출력 결과의 위에서 아래 순으로, 아래쪽 극단치 경계, 1사분위수, 중앙값, 3사분위수, 위쪽 극단치 경계를 의미합니다. 이 값을 통해서 12 ~ 37을 벗어나면 극단치로 분류된다는 것을 알 수 있습니다.
결측 처리하기
상자 그림을 이용해 정상 범위를 파악했으니 이 범위를 벗어난 값을 결측 처리하겠습니다.
# 12~37 벗어나면 NA할당
mpg$hwy <- ifelse(mpg$hwy < 12 | mpg$hwy > 37 , NA, mpg$hwy)
table(is.na(mpg$hwy))
FALSE TRUE
231 3
극단치가 결측 처리된 데이터를 얻었으니 마지막으로 결측치를 제외하고 간단한 분석을 해보겠습니다.
mpg %>%
group_by(drv) %>%
summarise(mean_hwy = mean(hwy, na.rm = T))
# A tibble: 3 x 2
drv mean_hwy
<chr> <dbl>
1 4 19.2
2 f 27.7
3 r 21
출처
김영우, 쉽게 배우는 R 데이터 분석, 이지퍼블리싱, 2019
'Computer engineering > R' 카테고리의 다른 글
R Package VIM (0) | 2019.04.18 |
---|---|
심심해서 해본 간단한 데이터 분석 (0) | 2019.04.16 |
데이터 정제하기 - 이상치 (0) | 2019.04.11 |
데이터 정제하기 - 결측치 (2) | 2019.04.11 |
dplyr 패키지 활용하기 (0) | 2019.04.04 |
Comments