Печалби:
- Възможност за разпознаване на липсващи типове данни (MCAR/MAR/MNAR), отклонения и грешки в кодирането и използване на AI с правилните данни за създаване на код за почистване и диагностика
- Възможност да видите как всяка стъпка на почистване (изтриване, присвояване, трансформация), предложена от изкуствения интелект, ще повлияе на резултата от анализа и ще установи обратим и документиран работен процес
- Поддържане на това, че решенията за почистване се основават на познаване на процеса, който генерира данни, и че изкуственият интелект е контролиран асистент, а не сляп автомат
Всеки опитен анализатор знае една истина: по-голямата част от времето на един емпиричен проект не е моделиране, а почистване на данни (работата по коригиране на грешки, пропуски и несъответствия в данните и подготовката им за анализ). Като грубо правило, около 70-80% от времето отива за разбиране, почистване и трансформиране на данни; само 20-30% остават за същинския анализ. В този раздел ще видим стъпка по стъпка как изкуственият интелект (AI) облекчава това тежко бреме, но кои решения трябва да останат за вас и защо.
Нека първо поставим два основни факта. Първо, решенията за почистване се основават на познанията ви за процеса, който произвежда данните: само вие знаете защо дадена стойност липсва, защо дадено число е твърде голямо. AI не вижда данните, не знае контекста; Пише код, не взема решения. Второ, всяка стъпка на почистване може да промени резултата от анализа. Изтриването на отклонение може да обърне коефициента; Попълването на липсващите със средната стойност може изкуствено да намали дисперсията. Така че почистването трябва да бъде обратимо и документирано: никога не докосвайте необработените данни, правете всяка стъпка в код, записвайте въздействието на всяка стъпка.
Процес на почистване стъпка по стъпка
1. Познайте данните. Първо вижте структурата: брой редове (наблюдения) и колони (променливи), тип на всяка променлива (числова, категорична, дата), обобщена статистика, брой липсващи. Можете да поискате от AI този код за „профил на данни“; Но вие четете изхода и задавате въпроси като "защо тази променлива дойде като текст?"
2. Разберете и класифицирайте липсващите данни. Липсващите данни са разделени на три вида. MCAR (Напълно случайна липса): липсата не се дължи на нищо, например случайно повреден сензор. MAR (произволно липсващи): липсата зависи от други наблюдавани променливи, например по-възрастните хора оставят въпрос празен по-често, но вие знаете възрастта. MNAR (Lipsing Not At Random): липсата зависи от самата ненаблюдавана стойност, например хората с високи доходи не отчитат доходите си. Това разграничение е критично, защото определя метода на решение и AI не може да реши това вместо вас.
3. Справете се с дефицита. Опции: изтриване по списък, средно/средно импутиране, базирано на модел множествено импутиране. Изтриването в MCAR е относително безопасно, но намалява размера на извадката. Множественото присвояване е по-подходящо в MAR. Няма прост метод, който да гарантира безпристрастност в MNAR; Трябва да се моделира механизмът на дефицит или поне да се направи анализ на чувствителността. Запълването на лоши неща е лесно, но опасно: намалява различията, отслабва връзките и прикрива несигурността.
4. Разгледайте отклоненията. Изключителното е наблюдение, което стои много далеч от останалите. Разделете двата въпроса: Това грешка ли е (възрастта 999 е написана във въведените данни) или е реална, но извънредна стойност (доход на милиардер)? Коригиране на грешки; Не изтривайте истинските отклонения, защото те представляват данни. Изтриването на отклонението „защото ви притеснява“ изкривява данните към резултата.
5. Кодиране и последователност. Стандартизирайте категориите („Мъжки“, „мъжки“, „E“ всички в един код), пренесете датите в един формат, единиците в една скала, открийте дублиращи се редове. Това е най-малко рисковата фаза, където AI помага най-добре.
6. Документирайте и замразете. Записвайте всяка стъпка с код и ред за коментар, като отделяте необработените и почистените данни. Така че, когато реферът попита "защо тези наблюдения бяха премахнати?" имате готов отговор.
Внимание: Не вземайте решения за почистване въз основа на резултатите. Изтриването на ред с надпис „Когато изтриете този ред, коефициентът става значителен“ е най-коварната форма на p-хакване, която ще видим в следващата част.
Сравнителна таблица: липсващи методи за данни
Метод
Кога е подходящо?
риск
Роля на AI
Изтриване на ред
MCAR, нисък процент липсващи
Пробата става по-малка, отклонение в MAR/MNAR
Пише кода; вие решавате
Присвояване на средна/медиана
Бърз предварителен анализ
Намалява дисперсията, скрива връзката
Лесно е, но не го препоръчвам; трябва да предупреди
Множествено възлагане (MI)
MAR, важни променливи
Ако не е инсталиран правилно, това ще бъде подвеждащо
Препоръчва код и пакет (мишки)
Моделиране на механизми
MNAR
Сложен, интензивен на предположения
Само чернова; изисква се експерт
Четири подкани за копиране
1. Профилиране на данни:
Вашата роля: асистент за почистване на данни. Не споделям данните, искам R кода. Имам data.frame, наречена "цифра"; променливи: id, възраст (числова), доход (числова), образование (категорична), регион (категорична), дата (дата). Задача: напишете код, който произвежда тип, липсващо число и процент за всяка променлива, обобщена статистика за числови и честотна таблица за категориални. Добавете ред за коментар.
2. Диагностика на липсващи данни:
Напишете код, който изследва липсващия модел за „цифрените“ данни по-горе: - процентът на липсващи данни за всяка променлива, - проста таблица/графика, показваща връзката на липсата с други променливи. Ще разгледам изхода на кода и ще направя разлика между MCAR/MAR/MNAR; Вие просто създавате инструмента за диагностика, НЕ решавайте метода на присвояване.
3. Проверка на отклонения (не изтриване):
Напишете код за променлива „доход“, който изследва отклоненията БЕЗ ИЗТРИВАНЕ: графика, базирани на IQR граници и таблица, изброяваща наблюдения на отклонения + стойности. Ще видя дали това са грешки или реални. Добавете автоматично изтриване.
4. Стандартизация на кодирането:
В променливата „образование“ стойностите са написани смесено: „Начално училище“, „основно училище“, „ОСНОВНО“, „Гимназия“, „гимназия“, „Университет“, „университет“. Напишете R код, който ги прекодира в последователни категории; Покажете ясно таблицата за съпоставяне, за да мога да потвърдя всяка реализация. Задайте стойността, която не разпознавате, на „НЕИЗВЕСТНО“.
Слаба подкана / Силна подкана
Слаба подкана:
Почистете данните, попълнете празнините, изхвърлете отклоненията.
Това изискване е опасно: дава сляпа власт на ИИ. Какъв тип липса, какъв вид пълнеж, каква противоречива истина - нищо от това не е ясно. Резултатът може да бъде тайно предубеден набор от данни.
Мощна подкана:
Вашата роля: помощник по почистването, вие не взимате решения. Отидете стъпка по стъпка и напишете код, който отчита въздействието на ВСЯКА стъпка: 1) покажете липсващия модел (НЕ изтривайте/попълвайте), 2) избройте кандидати за извънредни стойности (НЕ изтривайте), 3) коригирайте несъответствията на категорията с таблицата за картографиране. Отпечатайте броя на редовете и обобщената статистика след всяка стъпка, за да мога да видя и потвърдя промяната. Автоматично вмъкване на присвояване/изтриване.
Разликата е ясна: силната воля позиционира AI като контролиран асистент, произвеждайки обратими и документирани стъпки.
три мини калъфа
Случай 1 — Прихващане на средното присвояване. Данните за доходите на един анализатор за 5000 души липсваха 18%. Той каза на AI да "попълни празнините"; AI ги осредни всички. Резултат: дисперсията на дохода намаля с 22%, а коефициентът на връзката образование-доход се оказа по-слаб, отколкото беше. Правилният начин: дефицитът беше MAR (поради образование), трябваше да се запълни чрез многократно присвояване (мишки). Урок: методът на пълнене зависи от механизма.
Случай 2 — Почистването на отклонение обръща констатацията. Имаше 3 много големи фирми (0,6% от общото наблюдение) в данните за една фирма. Те бяха изтрити от предложението за "почистване" на AI; Коефициентът на икономии от мащаба се превърна от положителен в отрицателен. Тези 3 компании обаче бяха реални и важна част от индустрията. Правилният начин беше да се докладва както с пълна, така и със стабилна оценка, вместо да се изтрива. Урок: истинските отклонения са данни, а не шум.
Случай 3 — Безшумна грешка при кодиране. В един панел променливата за дата дойде в два различни формата („2020-03-01“ и „01/03/2020“). Когато комбинираният код, произведен от AI, ги обърка с различни стойности, 1400 наблюдения не съвпаднаха и темповете на растеж станаха абсурдни. Нямаше да има значение, ако анализаторът не провери броя на редовете. Урок: преброяването на наблюденията и проверките на разума след всяка стъпка са задължителни.
Често срещани грешки
- Сляпо запълване на празнината със средното. Той намалява дисперсията, скрива несигурността и създава отклонение в MAR/MNAR. Първо класифицирайте механизма.
- Изтриване на отклонението „защото пречи“. Истинските отклонения представляват данните; изтриването е огъване на резултата. Коригирайте грешното, запазете истинското.
- Докосване на необработени данни. Никога не променяйте необработените данни; Направете цялото почистване с кода в отделно копие, за да може да се върне към него.
- Без измерване на въздействието на стъпките. Ако броят на редовете и обобщената статистика не се проверяват след всяка стъпка, ще се натрупат тихи грешки.
- Почистване като резултат. Логиката на "Когато добавите този ред, резултатът става по-добър" е p-hacking; Почистването трябва да се планира преди и независимо от резултата от анализа.
Съвет: Съхранявайте таблица „преди/след“, която поставя едни и същи основни статистики (средна стойност, медиана, брой наблюдения, няколко корелации) една до друга преди и след почистването. Неочакван скок е най-добрият предвестник на скрита грешка.
В обобщение
Почистването на данни е най-отнемащата време и изискваща вземане на решения фаза от емпиричната работа. AI е мощен генератор на код в това отношение, но не може да управлява: вие класифицирате липсващия тип данни (MCAR/MAR/MNAR), определяте дали отклонението е грешка или реално, поддържате всяка стъпка обратима и документирана. Вместо да давате на AI сляпо „ясно“ правомощия, установете работен процес стъпка по стъпка, чието въздействие се измерва и валидира. Проверката на броя наблюдения и обобщената статистика след всяка стъпка е най-добрият антидот срещу тихите грешки.
Задача за приложение
Изберете поне две променливи, които съдържат липсващи и извънредни стойности в набор от данни (ваши собствени данни или примерен набор). Поискайте диагностичен код от AI чрез подканата „стъпка по стъпка, не изтривайте/попълвайте“ по-горе и го стартирайте. Класифицирайте недостатъка като MCAR/MAR/MNAR и напишете обосновката си в едно изречение. Разгледайте противоречивите кандидати един по един и решете кой е грешка и кой е истински. Накрая изгответе таблица „преди-след“ преди/след почистване и докладвайте, ако има някакви неочаквани промени.
контролен списък
- [ ] Изчистих необработените данни в отделно копие, без да ги променям.
- [ ] Класифицирах дефицита като MCAR/MAR/MNAR и съответно избрах метода.
- [ ] Разгледах отклоненията един по един дали са грешки или реални; Не съм го изтрил сляпо.
- [ ] Проверих броя на наблюденията и обобщената статистика след всяка стъпка на почистване.
- [ ] Документирах всички стъпки с код и ред за коментар; обратими.
- [ ] Базирах почистването на познаване на процеса, който произвежда данните, а не на резултата от анализа.