상세 컨텐츠

본문 제목

[개미의 걸음 ADsP 3과목] EDA & 결측치 및 이상치 처리

자격증/ADsP

by IT개미 데이터 2021. 2. 13. 17:17

본문

728x90

탐색적 자료분석[EDA, Explonatory Data Analysis]

데이터가 가지고 있는 특성을 파악하기 위해 해당 변수의 분포 등을 시각화하여 분석하는 분석 방법

  • 미국의 존 튜키교수가 1977년 발표한 저서에 EDA가 처음으로 언급
  • 당시 주로 사용하던 확증적분석[CDA, Confirmatory Data Analysis]는 가설을 검증하는데 주로 사용되었지만
    EDA는 자료를 하나의 목적으로 보징낳고 여러 방면으로 바라보기 위해 고안되었다.
  • 다양한 차원과 값을 조합하여 특이한 점이나 의미있는 사실을 도출하고 분석의 최종 목적을 달성해가는 과정
  • 데이터의 특징과 내재하는 구조적 관계를 알아내기 위한 기법들의 총칭
  • 데이터에 대한 전반적인 이해를 통해 분석 가능한 데이터인지 확인하는 단계
    [함수를 적용하는 것이 아닌 데이터 자체를 확인하는 것!]
  • 데이터에 포함된 변수의 유형이 어떻게 되는지를 찾아가는 과정
  • 탐색적 데이터 분석을 통해 얻은 정보를 이용해 통계적 가설이나 모형을 설정해 연구하거나 의사결정에 이용해 정보의 정확도를 측정
  • 알고리즘이 학습을 얼마나 잘하는지는 전적으로 데이터 품질과 데이터에 담긴 정보량에 달림
  • Boxplot을 그리면 이상치의 식별이 쉬움
  • summary( )함수를 사용하면 데이터의 기초통계량을 파악 가능
        수치형변수 : 최소값, 1사분위수, 2사분위수(중앙값), 3사분위수, 최대값, 평균
        명목형변수 : 명목값, 데이터 개수
  • head( )함수를 사용하면 많은 데이터 중 일부의 데이터만 가져올 수 있음
        기본적으로 6개의 데이터가 보여지며 보고싶은 데이터의 개수 지정 가능
  • EDA는 시간이 오래 걸리는 일이므로 최근에는 EDA를 자동으로 신속하게 수행해 유의미한 값만 파악해 데이터 마트로 만든 후 모델링 업무로 진행하는게 일반적
  • 데이터를 시각화(Box Plot, 상자그림)하면 이상치 식별이 용이

 

    EDA의 4가지 주제

저항성 강조 저항적인 자료/분석은 자료의 일부 변동에 따른 영향을 비교적으로 적게 받는 것을 의미
즉, 이상치, 결측치, 입력 오류등의 영향을 적게 받음
ex> median, 사분위수, IQR 등
잔차[오차] 계산 잔차[개별 관측값의 흐름에서 벗어난 값]가 있을 때 왜 이런 값이 발생했는지 파악하는 것
Residual Analysis[Regression Analysis] : 잔차분석[회귀분석]
자료변수의 재표현 자료 분석을 단순화할 수 있도록 원래의 변수를 적당한 척도로 바꾸는 것을 의미
ex> Z-score[표준점수] 등
그래프를 통한 현시성 그래픽 표현을 통해 자료 안에 숨겨진 정보를 효율적으로 활용할 수 있게 해줌
현시성은 데이터 시각화라고도 불림
ex> 줄기와 잎 그림, Boxplot 등 

   

    EDA VS Traditional Analysis

Traditional Analysis EDA
Frequency Distribution Stem and leaf plot
Histogram Boxplot
Mean Median
Standard Deviation InterQuartile Range[IQR]

 

 

 

결측치 처리

결측치는 NA, 99999999, 공백, Unknown, Not Answer 등으로 표현

  • 결측치 처리는 전체 작업 속도에 크게 영향을 미침
  • 결측치를 처리하기 위해 시간을 많이 사용하는 것은 비효율적!
  • 간혹 결측값 자체가 의미가 있는 경우도 있음
        → ex> 카드 가입자 중 이용실적이 전혀 없는 경우
  • NaN[Not a Number]는 결측값이 아니라 숫자형 데이터 자리에 숫자 외의 문자가 오는 경우를 의미
  • 결측치 처리방법은 크게 단순 대치법과 다중 대치법이 있음 

 

결측치 처리 방법

① 단순 대치법[Single Imputation]

  1) 완전분석법(completes analysis)

  • 결측치가 존재하는 레코드를 삭제하는 방법

  2) 평균 대치법(Mean Imputation)

  • 관측, 실험 등을 통해 얻어진 데이터의 평균으로 결측치를 대치하는 방법
  • 조건부 평균 대치법 : 회귀분석을 활용한 대치법
    비조건부 평균 대치법 : 관측데이터의 평균을 활용한 대치법

  3) 단순확률 대치법(Single Stochastic Imputation)

  • 평균대치법에서 추정량 표준 오차의 과소 추정문제를 보완하고자 고안된 방법
  • Hot-deck, Nearest neighbor 등의 종류가 있음

② 다중 대치법[Multiple Imputation]

  • 단순 대치법을 여러 번 대치하여 여러 개의 완전한 자료를 생성하는 방법
        ex> n번 대치를 통해 n개의 완전한 자료 생성
  • 1단계 : 대치(Imputation Step)
    2단계 : 분석(Analysis Step)
    3단계 : 결합(Combination Step) 

 

R에서의 결측치 처리

complete.cases( ) 데이터가 완전한 데이터인지 확인하는 함수
데이터 셋 안에 결측값이 있으면 FALSE, 없으면 TRUE로 반환
is.na( ) 결측치가 있는지 확인하는 함수
결측치을 NA로 인식해 결측값이 있으면 TRUE, 없으면 FALSE로 반환
centralImputation( )
[DMwR 패키지]
NA값을 Central Value로 대치하는 함수
숫자는 중위수, 요인(factor)은 최빈값으로 대치
knnImputation( )
[DMwR 패키지]
NA값을 k최근 이웃 분류 알고리즘을 사용하여 대치하는 함수
k개 주변 이웃까지의 거리를 고려하여 가중 평균한 값을 사용
amelia( )
[Amelia 패키지]
TIME-SERIES-CROSS-SECTIONAL DATA SET에서 활용
랜덤포레스트(random forest)모델은 결측값이 존재할 경우, 바로 에러가 발생
randomForest 패키지의 rfImpute( )함수를 활용해 NA 결측치를 대치한 후 알고리즘에 적용
    → randomForest모형의 경우, 결측치가 있으면 에러가 발생
    → rfImpute( )함수는 randomForest 패키지에서 결측치(NA)를 대치하도록 하는 함수 

 

 

 

이상치 처리

이상치는 정상범주에서 크게 벗어난 값을 의미[설명변수의 관측치에 비해 종속변수의 값이 상이한 값]

  • 의도하지 않게 잘못 입력한 것을 이상치라고 함[Bad Data]
  • 의도하지 않게 입력되었으나 분석 목적에 부합되지 않아 제거해야 하는 것을 이상치라고 함[Bad Data]
  • 의도하지 않은 현상이지만 분석에 포함해야 하는 것을 이상치라고 함
  • 의도된 이상값을 이상치라고 함
  • Bad Data로 판명된 데이터는 삭제하는 것이 바람직!!
  • 이상치는 반드시 제거해야 하는 것이 아니므로 분석의 목적에 맞게 적절한 판단이 필요
  • 이상치는 제거하는 것보다 조정 방법을 사용해 값을 대치하는 것이 데이터 손실율도 적고, 설명력도 높아짐

 

이상치 관측

① ESD[Extreme Studentized Deviation]

  • 평균으로부터 3 표준편차 떨어진 값

② 기하평균과 표준편차를 활용

  • 이상값 정의 : "기하평균 - 2.5 X 표준편차 < data < 기하평균 + 2.5 X 표준편차"를 벗어난 값
  • geo_mean을 활용해 기하평균을 구함

③ 사분위수를 활용

  • 이상치는 변수의 분포를 벗어난 값으로 상자 그림을 통해 확인 가능
  • 상자 그림의 outer fence 밖에 있는 값(이상치) 제거
  • 이상값 정의 : "Q1 - 1.5(Q3 - Q1) < data < Q3+1.5(Q3 - Q1)"를 벗어난 값

 

이상치 처리 방법

이상치를 처리하는 방법에는 크게 절단(trimming)과 조정(winsorizing)이 있음

① Trimming

  • 이상치 절단 방법에는 기하평균과, 상단*하단 %를 이용한 제거가 있음
  • 상단*하단 %를 이용할 때는 상하위 5%(총 10%)에 해당하는 데이터를 제거

② Winsorizing

  • 상한값과 하한값을 벗어나는 값들을 하한, 상한값으로 대치
  • 상자수염그림에서 IQR의 약 1.5배를 벗어난 데이터를 이상치로 분류
  • IQR[Inter Quartile Range]는 3Q에서 1Q를 뺀 값
  • 1Q, 3Q로부터 IQR의 1.5배되는 지점을 상한값, 하한값이라고 함 

 

 

이상치 활용의 예

사기탐지 - 평상시의 신용카드 구매패턴과 다른 패턴을 조사하여 도난여부 확인

침입탐지 - 컴퓨터 네트워크에 대한 예외적인 행위를 감시하는 경우를 탐지

 의    료 - 환자에게 보이는 예외적인 이상 증세를 발견함으로써 건강 이상 발견 

 

 

728x90

관련글 더보기

댓글 영역