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