제목의 표현처럼, 일반적으로 우린 완벽하지 않은 데이터를 다루게 됩니다.
예를 들어 고객이 입력한 개인정보 중 직장명, 직위, 부서명, 주소 등이 정확하게 입력되는 경우가 얼마나 될까요? 1%? 100만명의 데이터가 있다면, 만 명의 자료가 잘 못 입력되어 있다고 얘기할 수 있습니다.
예를 좀 더 세분화해서 위 예시 중 직위로 얘기해 보겠습니다. 가장 손쉽게(? 손쉽긴 하지만 꽤나 많은 수작업이 필요할 겁니다) 접근할 수 있는 방법은 다음과 같습니다.
1. 100만개의 data에서 직위에 대한 분포를 출력
2. 일일이 하나 씩 확인 >> 예를 들어 "사원"이 "시원"으로 잘못 표기되진 않았는지, "과장"이 "고장"으로 표기되진 않았는 지 등...
3. 다 확인한 후엔 간단(?)한 프로그램을 짠다. SAS를 program이라면 다음과 같을 겁니다.
if 직위 = "시원" then 직위_1="사원";
else if 직위="고장" then 직위_1="과장";
else if .....; /*여러번 반복해야겠죠?*/
else 직위_1=직위;
위 프로그램 수행 후 직위 / 직위_1의 데이터(분포)를 확인하고 이상이 없을 시, 직위_1을 사용하게 됩니다.
4. 하지만... 만약 또 다른 데이터가 생성/추가 되면 위 과정을 반복해야 합니다.
주소라면 어떨까요? "강남구"가 아닌 "강낭구", "동대문구"가 아닌 "동다문구"... 등 상상할 수 없는 여러 오타가 생길 수 있습니다.
이러한 사례는 의약학 분야에서도 많이 나타날 수 있습니다. eCRF를 등록할 때 다행이 질병명을 drop-down 방식으로 입력(사실 그 수 많은 질병을 일일이 클릭해서 drop-down하고, 찾아서 클릭하는 것도 엄청난 수고일 겁니다)하지 않는 한 어쩔 수 없이 오탈자가 생길 수 밖에 없습니다.
Data 분석의 70~80%는 데이터 준비(전처리 단계 포함)라고 할 수 있습니다. 이러한 준비 단계를 얼마나 빠르고 정확하게 할 수 있느냐가 여러분들의 분석업무의 질을 결정지을 수 있다고 감히 말씀드릴 수 있습니다. 여러분들은 JMP의 Recode 기능 중 Fixing Misspelled Words를 통해 말씀드린 목적을 이루실 수 있습니다.
서울특별시 주소 DB를 활용한 오탈자 수정 사례
우선 DB에 아래와 같은 데이터가 있다고 가정합니다. 보시다시피 첫 4개의 데이터는 오류 입력된 데이터이고, 나머지 4개의 데이터는 오탈자가 없습니다.
만약 JMP의 Recode 기능이 없다면... 위 사례에서 첫 4개의 오탈자를 바꾸기 위해 각 오탈자 별로 수정해 주는 프로그래밍이 필요합니다. 하지만, JMP를 사용한다면? 이를 손쉽게 하기 위해 서울특별시 주소 DB를 받아 JMP data table로 미리 만들어 놓습니다(아래 스크린샷 참조, 첨부파일로도 제공드립니다).
모든 준비는 끝났습니다. 아래와 같이 실행해 보세요(간략한 동영상 내용도 마지막에 함께 첨부합니다).
1. 오류 입력된 JMP Data Table에서 시군구 변수를 선택(마우스 클릭)
2. JMP >> Cols >> Recode
3. Recode 창에서 RTM(Red Triangle Menu) 클릭 >> Advanced >> Choose Closest
4. Choose Table >> 서울특별시 선택
5. 시군구 선택 후 OK
6. 수정 완료
[동영상] JMP Recode 기능을 활용한 오탈자 수정
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.