[데이터 분석] Data Exploration Guide - Missing Value Treatment(2)
Missing Value Treatment
만약 우리가 input data로 사용하는 training data set에서 missing data가 있다면, 해당 데이터로 생성된 model은 biased되거나 power/fit을 감소시키는 문제를 발생합니다. 결과적으로 틀린 모델이 생성되고, 잘못된 예측 또는 분류를 하기 때문에 missing value를 어느 과정에서 생성이 될 수 있는지, 어떻게 다뤄야하는지에 대해서 학습을 해야합니다.
Missing values가 발생하는 원인
그렇다면 어느 과정에서 missing values가 발생할까 알아보면, 두가지 data extraction, collection stages에서 발생할 수 있습니다.
1. Data Extraction
데이터를 추출하는 과정에서 많은 문제를 발생할 수 있습니다. 그렇기 때문에 추출하는 과정마다 확인을 해야합니다. hashing procedures을 통해 추출한 내용이 정확한지 확인이 가능합니다. 추출 과정에서 발생하는 오류는 쉽게 보정이 가능합니다.
2. Data Collection
데이터를 수집하는 과정에서 생기는 오류는 해결하기가 어렵습니다. missing values는 네 가지 유형으로 분류가 될 수 있습니다.
- Missing completely at random
변수의 누락 가능성이 모두 동일한 경우입니다. 예를들어 동전을 던져서 앞면이 나오면 데이터를 수집하고, 뒷면이 나오면 데이터를 누락시킨다고 가정했을때, 누락되는 가능성은 모두 동일하기 때문에 해당 경우로 말할 수 있습니다.
- Missing at random
누락되는 비율이 다른 경우를 말합니다. 예를 들어서 여자와 남자에게 나이를 물어본다고 했을때, 여자는 상대적으로 남자보다 나이를 응답을 안할 것 입니다. 이처럼 상대적으로 누락되는 비율이 다른 경우를 말합니다.
- Missing that depends on unobserved predictors
누락되는 값이 랜덤이 아니고, 관측이 안된 입력 값에 관계가 되어 있을때를 말합니다. 예를 들어서 의료 연구에서는 특정 진단 원인이 'discomfort'일 경우, 다음 연구에서 드롭 아웃의 높은 가능성이 있습니다. 이때 모든 값을 래덤하게 주지 않고, 'discomfort'의 input값을 모든 환자에게 사용합니다.
- Missing that depends on the missing value itself
누락된 값의 확률이 직접적으로 누락된 값에 연관이 있을때를 말합니다. 예를 들면 높거나 낮은 인금을 받는 사람은 그들의 수입에 대해서 응답을 안할 수 있습니다.
Missing values를 처리하는 방법
Missing value를 처리하는 방법은 크게 4가지가 있습니다. Deletion, Mean/Mode/Median Imputation, Prediction Model, KNN Imputation
1. Deletion
Deletion은 List Wise Deletion, Pair Wise Deletion 두 가지의 타입이 있다. list wise deletion의 경우에는 missing value가 포함되어 있는 해당 row를 삭제하는 방법이다. 하지만 이 방법은 sample size가 줄어들기 때문에 모델의 파워가 감소하게 된다. pair wise deletion의 방법은 missing value만 제거하고, 확인하는 방법이다. 장점은 sample의 사이즈가 그대로 유지되기 때문에 많은 경우를 분석이 가능하다. 하지만 단점은 sample의 사이즈가 variables마다 다르다는 점이다.
Deletion method의 경우에는 "Missing completely at random"의 경우에만 사용한다. 만약 그 경우가 아니고 다른 경우에 사용하면 model의 ouput이 bias가 될 수 있다. 즉, 각 variables가 random하게 missing value가 등장할때만 사용이 가능하다.
2. Mean/Mode/Media Imputation
imputation의 방법은 missing values를 위의 deletion과는 다르게 채워 넣는 방법을 말합니다. 가장 자주 사용되는 방법으로 attribute의 mean, median, mode의 값을 missing value에 채워 넣는 방법입니다.
- Generalized Imputation
이 방법은 mssing values가 아닌 나머지의 값의 mean, median의 값을 계산하고, missing values에 해당 mean, median 값을 채워 넣는 방법을 말합니다.
- Similar case Imputation
missnig value의 attributes를 남과 여가 있을때, 남과 여를 따로 mean, median의 값을 계산하고, 채워넣는 방법을 말합니다. 예를 들어 Male의 평균이 29.75, Female의 평균이 25일때, Male이 포함되어 있는 row에는 Male의 평균값인 29.75를 Female이 포함되어 있는 row의 값은 25의 값을 채워 넣습니다.
3. Prediction Model
Prediction model은 missing data를 처리하는데 가장 sophisticated method입니다. predictive model을 생성하고, missing data를 estimate합니다. 이 방법은 데이터를 missing value가 포함된 set과 missing value가 포함되지 않은 set으로 구분을 합니다. 첫번째로 missing value가 포함되지 않은 set에 대해서는 model을 생성하기 위한 training data로 사용하고, missing value가 포함된 set에 대해서는 test data로 사용을 합니다. 이 방법은 regression, ANOVA, Logistic regression, 그리고 다양한 모델링 기술에 사용이 가능합니다. 단점은 아래와 같습니다.
1) 모델에서 예측한 값은 실제 값보다 더 well-behaved 합니다.
2) 만약 data set간에 relationships이 없으면, 정말한 값을 예측할 수 없습니다.
4. KNN Imputation
missing values의 가장 연관성이 있는 attributes의 값을 통해서 채워넣는 방식을 말합니다. 두개의 attributes는 distance function을 통해서 계산을 합니다. 이 방법의 장점과 단점은
장점
1) k-nearest neighbour는 qualitative, quantitative attributes 둘다 예측이 가능합니다.
2) predictive model을 따로 생성할 필요가 없습니다.
3) missing values가 포함된 여러개의 attributes에 대해서도 쉽게 처리가 가능합니다.
4) data의 correlation structre를 고려한 예측 방법입니다.
단점
1) 데이터의 모든 attributes의 관계를 보기 때문에 large database에서는 time-consuming이 많습니다.
2) k의 값을 선택을 해야 합니다. K의 값이 너무 크면, 관계 없는 attributes들이 포함될 수 있습니다. 만약 너무 작은 경우에는 관계 있는 attributes들의 값이 손실 될 수 있습니다.
missing value가 생성되는 과정과 처리과정을 알았다면, 다음에는 outliers를 처리하는 방법에 대해서 설명하겠습니다. 우리는 outliers를 무시하체 model을 생성하는 경우가 많습니다. 결과적으로 accruacy를 떨어뜨립니다. 어떻게 하면 outliers를 처리할 수 있을지 보겠습니다.
[참고] http://www.analyticsvidhya.com/blog/2016/01/guide-data-exploration/
'Big Data > 데이터 분석' 카테고리의 다른 글
[데이터 분석] Python 라이브러리 - Pandas, Matplotlib, Numpy 10분만에 배우기 (0) | 2021.05.03 |
---|---|
[데이터 분석] Data Exploration Guide - The Art of Feature Engineering(4) (0) | 2021.05.03 |
[데이터 분석] 머신러닝 예제 - Loan Prediction (0) | 2021.05.03 |
[데이터 분석] Data Exploration Guide - Outlier(3) (0) | 2021.05.03 |
[데이터 분석] Data Exploration Guide - (1) (0) | 2021.05.03 |