이득:
- 누락된 데이터 유형(MCAR/MAR/MNAR), 이상값 및 코딩 오류를 인식하고 올바른 데이터와 함께 AI를 사용하여 정리 코드 및 진단을 생성하는 기능
- 인공지능이 제안하는 각 정리 단계(삭제, 할당, 변환)가 분석 결과에 어떤 영향을 미치는지 확인하고 되돌릴 수 있고 문서화된 워크플로우를 구축하는 기능
- 정리 결정은 데이터를 생성하는 프로세스에 대한 지식을 기반으로 하며, 인공 지능은 맹인 자동 장치가 아니라 감독되는 보조자라는 점을 유지합니다.
숙련된 분석가라면 누구나 한 가지 진실을 알고 있습니다. 실증적 프로젝트의 대부분의 시간은 모델링이 아니라 데이터 정리(데이터의 오류, 누락, 불일치를 수정하고 분석을 위해 준비하는 작업)라는 것입니다. 대략적으로 보면 데이터 이해, 정리, 변환에 약 70~80%의 시간이 소요됩니다. 실제 분석에는 20~30%만 남습니다. 이 단원에서는 인공 지능(AI)이 이러한 무거운 부담을 어떻게 완화하는지, 그리고 어떤 결정은 여전히 귀하의 몫이며 그 이유는 무엇인지 단계별로 살펴보겠습니다.
먼저 두 가지 기본적인 사실을 짚어보겠습니다. 첫째, 정리 결정은 데이터를 생성하는 프로세스에 대한 지식을 기반으로 합니다. 값이 누락된 이유, 숫자가 너무 큰 이유는 사용자만이 알 수 있습니다. AI는 데이터를 보지 못하고, 맥락을 알지 못합니다. 코드를 작성하지만 결정을 내리지는 않습니다. 둘째, 각 세척 단계마다 분석 결과가 달라질 수 있습니다. 이상값을 삭제하면 계수가 반전될 수 있습니다. 누락된 부분을 평균으로 채우면 분산을 인위적으로 줄일 수 있습니다. 따라서 정리는 되돌릴 수 있고 문서화되어야 합니다. 원시 데이터를 절대 건드리지 말고, 코드에서 각 단계를 수행하고, 각 단계의 영향을 기록하세요.
단계별 청소 작업 흐름
1. 데이터를 알아라. 먼저 구조를 확인하세요. 행(관찰) 및 열(변수) 수, 각 변수 유형(숫자, 범주형, 날짜), 요약 통계, 누락된 항목 수. 이 "데이터 프로필" 코드를 AI에 요청할 수 있습니다. 하지만 출력을 읽고 "왜 이 변수가 텍스트로 나왔지?"와 같은 질문을 하게 됩니다.
2. 누락된 데이터를 이해하고 분류합니다. 누락된 데이터는 세 가지 유형으로 구분됩니다. MCAR(Missing Completely At Random): 누락은 다른 원인으로 인한 것이 아닙니다. 예를 들어 센서가 무작위로 고장났습니다. MAR(Missing At Random): 누락 여부는 관찰된 다른 변수에 따라 달라집니다. 예를 들어 노인들은 질문을 더 자주 공백으로 두지만 나이를 알고 있습니다. MNAR(Missing Not At Random): 누락 여부는 관찰되지 않은 값 자체에 따라 달라집니다. 예를 들어 고소득자는 소득을 보고하지 않습니다. 이 구별은 해결 방법을 결정하고 AI가 이를 결정할 수 없기 때문에 매우 중요합니다.
3. 결핍을 처리하십시오. 옵션: 목록별 삭제, 평균/중앙값 대치, 모델 기반 다중 대치. MCAR에서의 삭제는 상대적으로 안전하지만 표본 크기가 줄어듭니다. MAR에서는 다중 할당이 더 적합합니다. MNAR의 편견을 보장하는 간단한 방법은 없습니다. 결핍 메커니즘을 모델링하거나 최소한 민감도 분석을 수행해야 합니다. 평균 채우기는 쉽지만 위험합니다. 차이를 줄이고 관계를 약화시키며 불확실성을 숨깁니다.
4. 이상치를 조사합니다. 이상값은 다른 관측값과 매우 멀리 떨어져 있는 관측값입니다. 두 가지 질문을 분리하십시오. 이것은 오류(데이터 항목에 999년이 기록됨)입니까, 아니면 실제이지만 특이한 값(억만장자의 소득)입니까? 버그를 수정하세요. 실제 이상값은 데이터를 나타내므로 삭제하지 마세요. "불편하기 때문에" 이상값을 삭제하면 데이터가 결과 쪽으로 왜곡됩니다.
5. 코딩 및 일관성. 범주("남성", "남성", "E"를 모두 하나의 코드로 표준화)를 표준화하고, 날짜를 하나의 형식으로, 단위를 하나의 척도로 가져오고, 중복 행을 감지합니다. 이는 AI가 가장 도움이 되는 가장 덜 위험한 단계입니다.
6. 문서화하고 동결합니다. 원시 데이터와 정리된 데이터를 별도로 유지하면서 코드와 주석 줄로 각 단계를 기록합니다. 그래서 심판이 "이러한 관찰 결과는 왜 삭제되었나요?"라고 묻습니다. 답변이 준비되었습니다.
주의: 결과에 따라 청소 결정을 내리지 마십시오. "이 줄을 삭제하면 계수가 중요해집니다"라고 말하는 줄을 삭제하는 것은 p-해킹의 가장 교활한 형태입니다. 이에 대해서는 다음 단원에서 살펴보겠습니다.
비교표: 누락된 데이터 방법
방법
언제가 적절한가요?
위험
AI의 역할
행 삭제
MCAR, 낮은 누락률
샘플이 작아지고 MAR/MNAR의 편향
코드를 작성합니다. 당신이 결정
평균/중앙 할당
빠른 예비 분석
차이를 줄이고 관계를 숨깁니다.
쉽지만 권장하지는 않습니다. 경고해야 한다
다중 할당(MI)
MAR, 중요한 변수
올바르게 설치되지 않으면 오해의 소지가 있습니다.
추천 코드 및 패키지(마우스)
메커니즘 모델링
MNAR
복잡하고 가정집약적인
초안만 해당; 전문가가 필요하다
복사 가능한 프롬프트 4개
1. 데이터 프로파일링:
귀하의 역할: 데이터 정리 도우미. 나는 데이터를 공유하지 않고 R 코드를 원합니다. 'digit'라는 data.frame이 있습니다. 변수: ID, 나이(숫자), 수입(숫자), 교육(범주형), 지역(범주형), 날짜(날짜). 작업: 각 변수에 대한 유형, 누락된 숫자 및 비율, 숫자 변수에 대한 요약 통계, 범주형 변수에 대한 빈도표를 생성하는 코드를 작성합니다. 코멘트 라인을 추가하세요.
2. 누락된 데이터 진단:
위의 '숫자' 데이터에 대한 누락 패턴을 조사하는 코드를 작성하십시오. - 각 변수의 누락 비율 - 누락과 다른 변수의 관계를 보여주는 간단한 표/그래프. 코드의 출력을 보고 MCAR/MAR/MNAR을 구분하겠습니다. 진단 도구만 제작할 뿐 할당 방법을 결정하지 마세요.
3. 이상값 검사(삭제 아님):
삭제하지 않고 이상값을 검사하는 변수 'income'에 대한 코드를 작성합니다: 상자 그림, IQR 기반 경계 및 이상값 관측치 + 값을 나열하는 테이블. 이것이 실수인지 진짜인지 확인해 보겠습니다. 자동 삭제를 추가합니다.
4. 코딩 표준화:
'교육' 변수에는 "초등학교", "초등학교", "PRIMARY", "고등학교", "고등학교", "대학교", "대학"이라는 값이 혼합되어 기록됩니다. 이를 일관된 범주로 다시 코딩하는 R 코드를 작성합니다. 각 전환을 확인할 수 있도록 매핑 테이블을 명확하게 표시합니다. 인식하지 못하는 값을 "UNKNOWN"으로 설정하세요.
약한 프롬프트 / 강한 프롬프트
약한 프롬프트:
데이터를 정리하고, 공백을 채우고, 이상값을 삭제합니다.
이러한 요구는 위험합니다. AI에 맹목적인 권한을 부여하는 것입니다. 어떤 유형의 누락, 어떤 종류의 채우기, 어떤 모순된 진실 등 그 어느 것도 명확하지 않습니다. 결과는 비밀리에 편향된 데이터 세트일 수 있습니다.
강력한 프롬프트:
귀하의 역할: 청소 보조원, 귀하는 의사 결정자가 아닙니다. 단계별로 진행하여 각 단계의 영향을 보고하는 코드를 작성하세요. 1) 누락된 패턴을 표시하고(삭제/채우지 마세요), 2) 이상치 후보를 나열하고(삭제하지 마세요), 3) 매핑 테이블과의 카테고리 불일치를 수정하세요. 변경 사항을 보고 확인할 수 있도록 각 단계 후에 행 수와 요약 통계를 인쇄하세요. 자동 할당/삭제 삽입.
차이점은 분명합니다. 강한 의지는 AI를 감독된 보조자로 배치하여 되돌릴 수 있고 문서화된 단계를 생성합니다.
세 개의 미니 케이스
사례 1 - 평균 할당 트랩. 한 분석가의 5,000명 소득 데이터에는 18%가 누락되었습니다. 그는 AI에게 "간극을 메우라"고 말했습니다. AI가 모두 평균을 냈습니다. 결과: 소득의 변동은 22% 감소하였고, 교육소득 관계계수도 이전보다 약한 것으로 나타났다. 올바른 방법: 부족한 점은 MAR(교육으로 인해)이었고 다중 과제(마우스)로 채워야 했습니다. 교훈: 충전 방법은 메커니즘에 따라 다릅니다.
사례 2 - 이상값 정리를 통해 결과가 반전됩니다. 한 회사 데이터에는 매우 큰 회사가 3개(전체 관찰의 0.6%) 있었습니다. 이는 AI의 "청소" 제안에 의해 삭제되었습니다. 규모의 경제 계수는 양수에서 음수로 바뀌었습니다. 그러나 이 3개 회사는 실제로 존재했으며 업계에서 중요한 부분을 차지했습니다. 올바른 방법은 삭제하는 대신 전체 추정과 견고한 추정을 모두 사용하여 보고하는 것이었습니다. 교훈: 실제 이상값은 노이즈가 아니라 데이터입니다.
사례 3 - 자동 코딩 오류. 한 패널에서 날짜 변수는 두 가지 형식("2020-03-01" 및 "01/03/2020")으로 제공되었습니다. AI가 생성한 조합 코드가 서로 다른 값으로 착각하자 1400개의 관측치가 불일치해 성장률이 말도 안 되는 수준이 됐다. 분석가가 행 수를 확인하지 않아도 문제가 되지 않습니다. 교훈: 각 단계 후에는 관찰 횟수와 건전성 검사가 필수입니다.
일반적인 실수
- 맹목적으로 평균으로 격차를 채우는 것입니다. 이는 분산을 줄이고, 불확실성을 숨기고, MAR/MNAR에 편향을 생성합니다. 먼저 메커니즘을 분류합니다.
- "귀찮기 때문에" 이상값을 삭제합니다. 실제 이상값은 데이터를 나타냅니다. 삭제는 결과를 구부리는 것입니다. 잘못된 것을 바로잡고, 진짜를 지키세요.
- 원시 데이터를 활용합니다. 원시 데이터를 수정하지 마십시오. 되돌릴 수 있도록 코드를 별도의 복사본으로 정리하십시오.
- 단계의 영향을 측정하지 않습니다. 각 단계 후에 행 수와 요약 통계를 확인하지 않으면 자동 오류가 누적됩니다.
- 결과적으로 청소. "이 줄을 추가하면 결과가 좋아진다"는 논리가 p-해킹입니다. 청소는 분석 결과 이전과 독립적으로 계획되어야 합니다.
팁: 정리 전후에 동일한 기본 통계(평균, 중앙값, 관측치 수, 몇 가지 상관 관계)를 나란히 표시하는 "전/후" 테이블을 유지하세요. 예상치 못한 점프는 숨겨진 오류의 가장 좋은 전조입니다.
요약하면
데이터 정리는 경험적 작업 중 가장 시간이 많이 걸리고 의사결정이 필요한 단계입니다. AI는 이에 대한 강력한 코드 생성기이지만 상황을 주도할 수는 없습니다. 누락된 데이터 유형(MCAR/MAR/MNAR)을 분류하고, 이상값이 오류인지 실제인지 확인하고, 각 단계를 되돌릴 수 있도록 유지하고 문서화합니다. AI에게 맹목적인 "명확한" 권한을 부여하는 대신 영향을 측정하고 검증하는 단계별 워크플로를 구축하세요. 각 단계 후에 관찰 수와 요약 통계를 확인하는 것이 자동 오류에 대한 가장 좋은 해결책입니다.
응용과제
데이터 세트(자신의 데이터 또는 표본 세트)에서 누락값과 이상값을 포함하는 변수를 두 개 이상 선택합니다. 위의 "단계별, 삭제/채우기 금지" 프롬프트를 통해 AI에 진단 코드를 요청하고 실행하세요. 결함을 MCAR/MAR/MNAR로 분류하고 그 이유를 한 문장으로 작성하세요. 모순되는 후보들을 하나씩 살펴보고 어느 것이 실수이고 어느 것이 진짜인지 판단해 보세요. 마지막으로 청소 전/후 "전후" 테이블을 생성하고 예상치 못한 변화가 있는지 보고합니다.
체크리스트
- [ ] 원시 데이터를 변경하지 않고 별도의 복사본으로 정리했습니다.
- [ ] 결핍을 MCAR/MAR/MNAR로 분류하고 이에 따른 방법을 선택하였습니다.
- [ ] 나는 그것이 오류인지 실제인지 이상치를 하나씩 조사했습니다. 맹목적으로 삭제한 게 아닙니다.
- [ ] 각 청소 단계 후에 관찰 횟수와 요약 통계를 확인했습니다.
- [ ] 코드와 주석 줄을 사용하여 모든 단계를 문서화했습니다. 거꾸로 할 수 있는.
- [ ] 분석 결과가 아닌 데이터를 생성하는 프로세스에 대한 지식을 바탕으로 클리닝을 진행했습니다.