Прибуток:
- Можливість розпізнавати відсутні типи даних (MCAR/MAR/MNAR), викиди та помилки кодування та використовувати AI з правильними даними для створення коду очищення та діагностики
- Можливість побачити, як кожен крок очищення (видалення, призначення, перетворення), запропонований штучним інтелектом, вплине на результат аналізу та встановити оборотний і задокументований робочий процес
- Підтримуючи те, що рішення щодо очищення ґрунтуються на знанні процесу, який генерує дані, і що штучний інтелект є помічником під наглядом, а не сліпим автоматом
Кожен досвідчений аналітик знає одну істину: більшу частину часу емпіричного проекту займає не моделювання, а очищення даних (робота з виправлення помилок, упущень і невідповідностей у даних і підготовки їх до аналізу). Як грубе правило, близько 70-80% часу витрачається на розуміння, очищення та перетворення даних; лише 20-30% залишається для аналізу. У цьому розділі ми крок за кроком побачимо, як штучний інтелект (ШІ) полегшує цей важкий тягар, але які рішення повинні залишатися за вами і чому.
Давайте спочатку наведемо два основних факти. По-перше, рішення щодо очищення базуються на ваших знаннях процесу, який створює дані: лише ви знаєте, чому значення відсутнє, чому число занадто велике. ШІ не бачить даних, не знає контексту; Пише код, не приймає рішень. По-друге, кожен крок очищення може змінити результат аналізу. Видалення викиду може інвертувати коефіцієнт; Заповнення пропущених середніх значень може штучно зменшити дисперсію. Тому очищення має бути оборотним і задокументованим: ніколи не торкайтеся необроблених даних, виконуйте кожен крок у коді, записуйте вплив кожного кроку.
Покроковий процес очищення
1. Знайте дані. Спочатку перегляньте структуру: кількість рядків (спостереження) і стовпців (змінні), тип кожної змінної (числова, категорійна, дата), підсумкову статистику, кількість пропущених. Ви можете попросити ШІ цей код «профілю даних»; Але ви читаєте вихідні дані та ставите запитання на зразок "чому ця змінна прийшла як текст?"
2. Розуміти та класифікувати відсутні дані. Відсутні дані поділяються на три типи. MCAR (випадкова відсутність): відсутність не пов’язана з чимось, наприклад випадковий збій датчика. MAR (випадково пропущені): відсутність залежить від інших спостережуваних змінних, наприклад, літні люди частіше залишають запитання порожнім, але вам відомий вік. MNAR (пропадає не випадково): відсутність залежить від самого неспостережуваного значення, наприклад, високооплачувані не повідомляють про свій дохід. Ця різниця є критичною, оскільки вона визначає метод вирішення, і ШІ не може вирішити це за вас.
3. Розібратися з недоліком. Опції: видалення по списку, середнє/медіанне імпутування, множинне імпутування на основі моделі. Видалення в MCAR є відносно безпечним, але зменшує розмір вибірки. Множинне призначення більш доречне в MAR. Жоден простий метод не гарантує неупередженості в MNAR; Необхідно змоделювати механізм дефіциту або принаймні провести аналіз чутливості. Заповнювати погане легко, але небезпечно: воно зменшує дисперсію, послаблює стосунки та приховує невизначеність.
4. Вивчіть викиди. Викид – це спостереження, яке стоїть дуже далеко від інших. Розділіть два запитання: чи це помилка (у введених даних було вказано вік 999) чи це реальне, але виключне значення (дохід мільярдера)? Виправлення помилок; Не видаляйте справжні викиди, оскільки вони представляють дані. Видалення викиду, «тому що це вас турбує», спотворює дані в бік результату.
5. Кодування та послідовність. Стандартизуйте категорії («чоловіки», «чоловіки», «E» в одному коді), приведіть дати в один формат, одиниці в одну шкалу, виявляйте повторювані рядки. Це найменш ризикована фаза, де ШІ допомагає найкраще.
6. Задокументуйте та заморозьте. Записуйте кожен крок за допомогою коду та рядка коментарів, зберігаючи необроблені та очищені дані окремо. Отже, коли суддя запитує "чому ці спостереження були викинуті?" у вас готова відповідь.
Застереження: не приймайте рішення щодо чищення на основі результатів. Видалення рядка з написом «Коли ви видаляєте цей рядок, коефіцієнт стає значним» — це найпідступніша форма p-хакінгу, яку ми побачимо в наступному розділі.
Порівняльна таблиця: відсутні методи даних
метод
Коли це доречно?
ризик
Роль ШІ
Видалити рядок
MCAR, низький рівень відсутності
Вибірка стає меншою, зміщення в MAR/MNAR
Пише код; ви вирішуєте
Призначення середнього/медіани
Швидкий попередній аналіз
Зменшує дисперсію, приховує зв’язок
Це легко, але не рекомендується; має попередити
Множинне призначення (MI)
MAR, важливі змінні
Якщо встановити неправильно, це введе в оману
Рекомендує код і пакет (миші)
Моделювання механізму
МНАР
Складний, інтенсивний на припущення
Тільки чернетка; потрібен експерт
Чотири підказки, які можна копіювати
1. Профілювання даних:
Ваша роль: помічник з очищення даних. Я не передаю дані, мені потрібен код R. У мене є data.frame під назвою 'digit'; змінні: id, вік (числовий), дохід (числовий), освіта (категорійний), регіон (категорійний), дата (дата). Завдання: написати код, який видає тип, пропущене число та швидкість для кожної змінної, підсумкову статистику для числових і частотну таблицю для категоріальних. Додайте рядок коментаря.
2. Діагностика відсутніх даних:
Напишіть код, який перевіряє відсутній шаблон для даних «цифри» вище: - відсоток відсутніх кожної змінної, - просту таблицю/графік, що показує зв'язок відсутності з іншими змінними. Я подивлюсь на вихід коду та розрізню MCAR/MAR/MNAR; Ви просто створюєте діагностичний інструмент, а НЕ вирішуєте метод призначення.
3. Перевірка викидів (не видалення):
Напишіть код для змінної «дохід», яка перевіряє викиди БЕЗ ВИДАЛЕННЯ: коробковий графік, межі на основі IQR і таблицю зі списком викидів + значень. Я подивлюсь, чи це помилки, чи справді. Додати автоматичне видалення.
4. Стандартизація кодування:
У змінній 'education' значення записуються змішано: «Початкова школа», «початкова школа», «ПОЧАТКОВА», «Старша школа», «середня школа», «Університет», «вуз». Напишіть код R, який перекодує їх у послідовні категорії; Чітко покажіть таблицю зіставлення, щоб я міг підтвердити кожне перетворення. Встановіть для незнайомого значення значення "НЕВІДОМО".
Слабка підказка / Сильна підказка
Слабка підказка:
Очистіть дані, заповніть прогалини, відкиньте викиди.
Ця вимога небезпечна: вона дає штучному інтелекту сліпу владу. Який тип бракує, яке наповнення, яка суперечлива правда - нічого з цього не зрозуміло. Результатом може бути таємно упереджений набір даних.
Потужна підказка:
Ваша роль: помічник прибиральника, ви не приймаєте рішення. Ідіть крок за кроком і напишіть код, який звітує про вплив КОЖНОГО кроку: 1) показуйте відсутній шаблон (НЕ видаляйте/заповнюйте), 2) перераховуйте кандидатів-викидів (НЕ видаляйте), 3) виправляйте невідповідності категорії з таблицею зіставлення. Друкуйте кількість рядків і підсумкову статистику після кожного кроку, щоб я міг побачити та підтвердити зміни. Автоматична вставка призначення/видалення.
Різниця очевидна: сильна воля позиціонує ШІ як контрольованого помічника, виробляючи оборотні та задокументовані кроки.
три міні-чохла
Випадок 1 — Перехоплення середнього призначення. Дані одного аналітика про доходи 5000 осіб не вистачали 18%. Він сказав ШІ «заповнити прогалини»; ШІ усереднив їх усіх. Результат: дисперсія доходу зменшилася на 22%, а коефіцієнт зв'язку освіта-дохід виявився слабшим, ніж був. Правильно: недолік був MAR (через освіту), потрібно було заповнити множинним призначенням (миші). Урок: спосіб наповнення залежить від механізму.
Випадок 2 — Очищення викиду скасовує результат. У даних про одну фірму було 3 дуже великі фірми (0,6% від загальної кількості спостережень). Вони були видалені за пропозицією «очищення» ШІ; Коефіцієнт економії на масштабі змінився з позитивного на негативний. Однак ці 3 компанії були справжніми та важливою частиною галузі. Правильний спосіб полягав у тому, щоб звітувати як з повною, так і надійною оцінкою замість видалення. Урок: справжні викиди – це дані, а не шум.
Випадок 3 — мовчазна помилка кодування. На одній панелі змінна дати була у двох різних форматах («2020-03-01» і «01/03/2020»). Коли комбінований код, створений штучним інтелектом, сприйняв їх за різні значення, 1400 спостережень не збіглися, і темпи зростання стали смішними. Це не мало б значення, якби аналітик не перевіряв кількість рядків. Урок: підрахунок спостережень і перевірка розуму після кожного кроку є обов’язковими.
Поширені помилки
- Сліпо заповнюючи прогалину середнім. Це зменшує дисперсію, приховує невизначеність і створює зміщення в MAR/MNAR. Спочатку класифікуйте механізм.
- Видалення викиду, «тому що це заважає». Справжні викиди представляють дані; видалення - це викривлення результату. Виправте те, що не так, збережіть те, що справжнє.
- Натискання необроблених даних. Ніколи не змінюйте необроблені дані; Виконайте все очищення з кодом в окремій копії, щоб до нього можна було повернутися.
- Не вимірювання впливу кроків. Якщо кількість рядків і підсумкова статистика не перевіряються після кожного кроку, накопичуватимуться мовчазні помилки.
- Прибирання в результаті. Логіка "Коли ви додаєте цей рядок, результат стає кращим" є p-hacking; Очищення слід планувати до і незалежно від результату аналізу.
Порада: зберігайте таблицю «до/після», яка містить ту саму базову статистику (середнє значення, медіана, кількість спостережень, кілька кореляцій) поруч до та після очищення. Несподіваний стрибок - найкращий провісник прихованої помилки.
Підсумовуючи
Очищення даних є найбільш трудомістким етапом емпіричної роботи, який потребує прийняття рішень. Штучний інтелект є потужним генератором коду, але він не може вирішувати: ви класифікуєте відсутній тип даних (MCAR/MAR/MNAR), визначаєте, чи є викид помилковим чи справжнім, кожен крок залишається оборотним і документується. Замість того, щоб надавати ШІ «чіткі» повноваження, створіть покроковий робочий процес, вплив якого вимірюється та перевіряється. Перевірка кількості спостережень і підсумкових статистичних даних після кожного кроку є найкращою протиотрутою від тихих помилок.
Аплікаційне завдання
Виберіть принаймні дві змінні, які містять пропущені та викидні значення в наборі даних (ваші власні дані або вибірковий набір). Запитуйте діагностичний код від AI за допомогою підказки «крок за кроком, не видаляйте/заповнюйте» вище та запустіть його. Класифікуйте недолік як MCAR/MAR/MNAR і напишіть своє обґрунтування одним реченням. Розгляньте суперечливі кандидати одного за іншим і вирішіть, який з них помилковий, а який справжній. Нарешті, створіть таблицю «до-після» до/після очищення та повідомте про будь-які несподівані зміни.
контрольний список
- [ ] Я очистив необроблені дані в окремій копії, не змінюючи її.
- [ ] Я класифікував дефіцит як MCAR/MAR/MNAR і вибрав відповідний метод.
- [ ] Я досліджував викиди один за одним, чи були вони помилками чи справжніми; Я не видалив його наосліп.
- [ ] Я перевіряв кількість спостережень і підсумкову статистику після кожного кроку очищення.
- [ ] Я задокументував усі кроки за допомогою коду та рядка коментаря; оборотний.
- [ ] Я ґрунтувався на очищенні на знаннях процесу, який створює дані, а не на результатах аналізу.