반응형
결측값
- 입력이 누락된 값 (not available)
- 결측값이 데이터에 포함되어 있을 경우 산술 연산을 수행할 수 없어 분석 결과가 왜곡될 수 있다.
- 결측값 인식 함수인 is.na(x), complete, cases(x) 함수를 통해 결측값을 확인할 수 있다.
- airquality : 뉴욕의 공기질을 측정한 데이터
- is.na(x) : 결측값이면 T , 아니면 F 반환
- 행 별로 결측이 없는 지 출력 (5행은 있으므로 F)
결측값 처리
- PimaIndiansDiabetes2 데이터를 사용하여 특정 컬럼 삭제
단순 대치법
- 결측값을 그럴듯한 값으로 대체하는 통계적 기법
- 완전 분석법(결측값이 있는 행 삭제), 평균 대치법(결측 값을 평균 값으로 변경) 등 존재
- dim : 전체 행의 수 확인 , na.omit : 결측값이 존재하는 모든 행 삭제
- 결측값이면 평균값으로 대체, 결측값이 아니면 원본 유지 방법
- ifelse 방식과 리스트 요소 직접 접근 방식 두 가지가 존재한다.
이상값
- 데이터의 범위에서 많이 벗어난 값
- 분석 모형을 구축할 때 나쁜 영향을 끼치는 경우가 많으므로 전처리 단계에서 처리가 필요
이상값 판별
- 통계적 기법의 ESD, 기하평균, 사분위수 등 활용
- ESD : 평균에서 3 표준편차보다 큰 값들을 이상값으로 판별
- abs(x-mean(x)) / sd (x) < 3 을 통한 ESD 계산 방식
> box_score$out # $out 변수를 이용한 이상값 확인
[1] 200
> box_score$stats # $stats 변수를 이용한 5가지 수치
[,1]
[1,] 60 # 최솟값
[2,] 65 # 제 1사분위
[3,] 70 # 제 2사분위 (중위수)
[4,] 75 # 제 3사분위
[5,] 75 # 최댓값
<박스 플롯의 최솟값과 최댓값 내의 데이터 필터링>
> min_score <- box_score$stats[1]
> max_score <- box_score$stats[5]
> library(dplyr)
> df_score %>% filter(score >= min_score
+ & score <= max_score)
name score
1 Bell 65
2 Cherry 60
3 Don 70
4 Jake 75
<IQR 함수를 이용한 이상값 - 1.5IQR 또는 2IQR 기준)
> min_score <- median(df_score$score) - 2 * IQR(df_score$score)
> max_score <- median(df_score$score) + 2 * IQR(df_score$score)
> df_score %>% filter(score >= min_score & score <= max_score)
반응형