GPT 데이터 분석

GPT 통계분석 2 - 데이터 정제 (데이터 클리닝)

skcho 2025. 4. 8. 22:39

 

 

 

※ 본 문서에 포함된 내용은 필자의 GPT 사용 경험을 기반으로 작성된 것이다. 
GPT ADA의 실제 작동 방식은 사용자의 프롬프트, 이전 대화 내용, 버전, 랜덤성 
등에 따라 달라질 수 있으며, 매번 동일한 결과를 보장하지 않는다.


 

데이터는 분석에 앞서 정제(cleaning) 작업을 해야 한다. 정제작업이란 데이터에 있는 처리 과정상의 오류를 찾아내서 수정하는 작업을 말한다. 이러한 정제작업은 그다음 단계인 데이터 변환 및 사전 검토 등을 모두 포함해서 전처리라고도 한다.

 

통계청이나 전문 생산기관에서 제공한 공개용 데이터는 대부분 이러한 정제 과정을 거쳤기 때문에 추가적인 처리가 필요 없는 경우가 많다. 그러나 조사 기관에 의뢰해서 직접 수집한 데이터의 경우, 이러한 작업이 완전하지 않을 수 있어 확인이 필요하다. 데이터에서 발견되는 오류는 여러 가지가 있지만 주로 다음과 같은 것들이 흔히 발생한다.

 

1) 중복 데이터

동일한 데이터가 두 번 이상 들어간 경우나, 같은 사람이 중복 응답한 경우가 있다. ID 변수 등을 활용해 중복을 확인하고 제거한다.

 

2) 응답 범위 외 값

예를 들어 1부터 5까지로 설정된 응답값에 6, 7, 8 등이 들어 있는 경우다. 이는 입력 오류이거나 기타 응답을 잘못 코딩한 것일 수 있다. 확인 후 삭제하거나 무응답 처리 등의 조치를 취한다.

 

3) 변수 타입 오류

숫자형 변수에 문자가 섞여 있는 경우, 또는 시간 단위로 응답해야 할 변수에 '1.5시간' 같은 형식이 들어간 경우가 있다. 이런 오류는 분석 전에 반드시 정리해야 한다.

 

4) 조건부 응답 오류

응답하지 않아야 할 조건의 사람이 응답한 경우도 있다. 예를 들어 '해당 없음'인 질문에 응답한 경우 등이 여기에 해당한다.

 

5) 논리 오류 (합계 불일치 등)

하루 활동 시간 합계가 24시간을 초과하거나, 출생연도와 현재 나이가 맞지 않는 경우 등 논리적인 불일치가 있는 데이터는 검토 후 적절하게 조치한다. 

 

6) 결측값  

설문에서 무응답, 비해당 등으로 처리된 값(예: 8, 9)은  결측값으로 지정해야 한다. 결측값은 그대로 둘지, 추정(imputation)할지 여부를 결정한다.

 

7) 이상값  

다른 값보다 현저하게 크거나 작은 극단적인 값(outlier)이 있을 수 있다.  

 

이러한 모든 오류를 완벽하게 찾는 것은 어려울 수 있지만, 중복 여부, 응답값의 유효성, 무응답 처리 방식, 변수 형식 등은 기본적으로 점검할 필요가 있다.

 

8) 자유응답(개방형 문항)의 코딩

 

설문에서 개방형으로 입력된 텍스트 응답(예: '기타' 항목)은  코드화 작업이 필요하다. GPT는 이러한 작업을 매우 직관적이고 효율적으로 수행할 수 있다. 예를 들어 "아르바이트, 파트타임, 시간제 근무"를 하나의 범주로 통합하거나, 자주 언급된 키워드를 중심으로 응답 유형을 제안하게 할 수 있다. 응답 수가 많을 경우, GPT에게 "이 자유응답 문항을 5개 카테고리로 나눠줘" 혹은 "주요 응답 유형별 코드표를 만들어줘"라고 지시하면 된다. 이를 통해 수작업 코딩 과정을 줄이고, 보다 체계적인 코딩 작업이 가능해진다

 

유사한 응답 항목(예: '충남대', '충남대학교', '충대')을 그룹핑하거나 클러스터링하는데도 GPT가 도움이 된다.  GPT는 OpenRefine의 'facets' 기능처럼 유사 표현들을 한 화면에 모아 보여주고, 사용자가 수동으로 통합 여부를 결정할 수 있게 해 줄 수 있다.  엑셀에서는 이와 같은 유사 문자열을 한 번에 확인하거나 정리하기 어렵고, 파이썬은 진입 장벽이 있지만 GPT는 이를 자연어 명령으로 간단히 처리할 수 있어 큰 장점이 된다.

또한 다음과 같은 문자열 처리 작업도 가능하다:

  • "경기도 성남시" → '시도'와 '시군구'로 자동 분리
  • "010-3193-4466" → 마지막 네 자리만 별도 변수로 추출

이처럼 GPT는 단순한 통계 분석뿐 아니라, 엑셀 기반 데이터 정리·코딩·재구조화 작업까지 수행할 수 있기 때문에, 전처리 작업의 패러다임 자체를 바꾸는 혁신적 도구라 할 수 있다. 이 기능은 코딩을 모르는 사람도 전문가 수준의 데이터 전처리를 수행할 수 있게 만들어주며, 데이터 분석에서 가장 많은 시간을 차지하던 정제 및 변환 과정을 빠르고 정확하게 처리하게 해준다.

 

 GPT를 활용한 정제 작업의 장점  

 

통계 패키지를 사용할 경우, 위에서 언급한 오류를 점검하려면 별도의 코드를 작성해야 하고, 오류 항목을 하나씩 찾아서 검토하는 과정이 필요하다. 이는 시간이 오래 걸릴 뿐만 아니라, 코딩에 익숙하지 않은 사람에게는 어려운 작업일 수 있다.

GPT는 이러한 정제 작업을 상대적으로 간편하게 처리할 수 있다. 예를 들어, 응답값 범위를 확인하려면 기존에는 변수마다 범위를 설정한 후 벗어난 값을 탐지하는 과정을 거쳐야 했지만, GPT에게 "응답값 범위를 벗어난 데이터를 찾아줘"라고 요청하면 자동으로 처리할 수 있다.

이때 변수 정보 파일이 큰 도움이 된다. 다음과 같은 지시 예시를 활용할 수 있다:

"정제를 해야 한다. 데이터를 점검해줘.

  1. 중복 여부: id로 중복 여부 확인
  2. 응답값 범위: 변수 정보 파일의 응답값 기준에 따라 확인
  3. 조건부 응답: 응답 조건은 변수 정보 파일에 있음
  4. 데이터 형식: 측정 수준에 맞는 자료형인지 확인
  5. 응답의 일관성: x1 + x2 + x3이 x4를 초과하지 않도록"

이러한 지시는 채팅창에 직접 입력해도 되고, 양이 많거나 반복되는 경우에는 별도 엑셀 파일로 만들어서 전달할 수도 있다. 또한 설문지를 GPT에게 제공하면, 설문 내용에 기반해 각 문항의 응답값 범위, 응답 조건, 응답 간 논리적 일관성 기준 등을 자동으로 추출하여 정제 기준표를 만들게 할 수도 있다. 이를 위해 설문지를 PDF 형식으로 업로드하고, 해당 문서를 기반으로 정제 기준표를 생성해달라고 요청하면 된다. (이 경우 설문이 GPT가 읽고 해독할 수 있는 즉 GPT 우호적으로 작성되어 있어야 한다. 이에 대해서는 별도의 글에서 설명한다).

 

정제 결과의 저장과 백업

 

GPT를 활용한 데이터 전처리에서 가장 중요한 것은 정제된 결과만이 아니라, 그 작업에 사용된 코드를 안전하게 보존하는 것이다. 데이터 파일이나 문서는 다시 확보할 수 있어도, 어떤 기준과 순서로 전처리를 했는지에 대한 파이썬 코드가 없으면 동일한 결과를 재현하기 어렵다.

 

코드 파일 저장

 

GPT는 사용자의 요청에 따라 전처리 작업에 사용한 코드를 .py 파일로 저장해줄 수 있다. 예를 들어 다음과 같은 요청이 필요하다:

  • “방금 사용한 정제 코드를 .py 파일로 저장해줘.”
  • “이 코드를 cleaning.py라는 파일로 저장하고 다운로드 링크를 줘.”

이 요청이 없으면 GPT는 코드를 화면에 보여줄 뿐 저장하지 않으며, 코드 내용은 작업 세션 종료와 함께 사라질 수 있다. GPT ADA 환경에서 생성된 .csv, .xlsx, .docx 파일은 GPT가 저장 명령을 수행하면 다운로드 링크를 제공한다. 이 링크는 사용자가 직접 클릭하여 파일을 내려받을 수 있다. 다만 GPT가 명확하게 파일 저장 코드를 실행하지 않는 경우가 있다. 반드시 다운한 다음 열어서 확인해 보아야 한다.  작업에 사용된 코드는 GPT가 보관하지 않는다. 따라서 정제 과정이 끝나면 코드를 요청해서 저장해 두어야 한다.  

 * 이 글은 곧 출판될 'GPT를 이용한 사회과학 데이터 분석방법: 회귀분석편'의 일부입니다.