На этой странице

Выбросы и пропущенные данные

Некоторые ячейки таблицы не то, чем кажутся, и бывают они двух родов. В ячейке первого рода стоит значение, которое нельзя принимать за чистую монету: опечатка, метка-заглушка или настоящая сумма, но относящаяся к другому вопросу. В ячейке второго рода нет ничего. С такими ячейками сталкиваются ещё до выбора критерия. На результаты они влияют сильнее, чем обычно влияет выбор критерия, и в файл кафе оба рода заложены намеренно. Сначала на этой странице разобрано, что такое выброс, как приложение его находит и как решить, что с ним делать. Затем — что такое пропущенное значение, как приложение ведёт расчёты без него и чем оборачивается его заполнение. Числа взяты из данных кафе после трёх исправлений, кроме тех мест, где нужно показать, что происходит без них.

Что такое выброс

Выброс — это наблюдение, значение которого по переменной лежит далеко от остальной выборки, настолько далеко, что меняет её сводные показатели. Вопрос для любой зависимой переменной один: лежит ли наблюдение рядом с остальными или в стороне от них и меняется ли вывод, если его исключить? В файле кафе наибольшее значение чек_после равно 66.53, а следующее за ним — 20.08. Самое долгое ожидание длилось 19.9 минуты при медиане 4.9. Выбросом значение делает не само расстояние, а то, насколько оно сдвигает сводные показатели. Одна эта сумма, одна строка из двухсот, сдвигает среднее чек_после с 9.75 до 10.03, а стандартное отклонение — с 3.70 до 5.45. Медиана при этом меняется лишь с 9.39 до 9.40, поэтому медиану называют робастной, а среднее — нет.

Выбросы в заголовке строки или столбца — это число наблюдений, отмеченных правилом, которое указано рядом, или проверка того, отмечено ли вообще хоть одно наблюдение. Правило названо в заголовке или подписи (1.5·МКР, модифицированная z-оценка, стьюдентизированные остатки, расстояние Махаланобиса), и все они разобраны на этой странице. Отметка означает, что наблюдение лежит дальше, чем объясняет разброс выборки, но не то, что оно ошибочно.

Выброс бывает трёх родов, и обращаться с ними нужно по-разному. Ошибка — значение, неверное с самого начала: опечатка, путаница с единицами, метка-заглушка вроде 999, которой анкета кафе обозначала «возраст не указан». Ей не место в анализе, и исправление одно — сделать её пропуском. Верное значение, но относящееся к другому вопросу — это заказ кейтеринга. Сумму действительно заплатил участник программы, но касса усреднила её по его визитам как обычную трату, а вопрос «изменила ли смена меню траты за визит» совсем о другом. Исправление здесь — правило, сформулированное одним предложением и применённое к ячейке. Верное значение на своём месте — например, ожидание в 19.9 минуты: в кафе действительно выдался неудачный день. Сюда же относятся семеро участников, заходивших больше 18 раз за восемь недель, — это завсегдатаи кафе. Они составляют хвост распределения, а не ошибку в нём, и, удалив их, аналитик получит ответ на вопрос о кафе без завсегдатаев. Правила ниже находят все три рода одинаково, а различить их можно, только посмотрев на само наблюдение.

У медсестры это пациент, пролежавший в отделении 90 дней, когда обычно лежат пять. У учителя — ученик, получивший 0 за контрольную, которую класс написал на 60–95 баллов. У маркетолога — сессия с десятью тысячами просмотров страниц. Каждый такой случай далёк от своей группы по зависимой переменной, и каждый может оказаться ошибкой, ответом на другой вопрос или настоящим крайним значением. В любой области порядок один: найти, посмотреть, решить по правилу и сообщить о решении.

Поиск выбросов одной переменной

Диапазон значений без выбросов — пара порогов, которые правило проводит вокруг основной массы значений переменной, в записи [нижний, верхний]: всё, что внутри, считается обычными значениями, а всё, что снаружи, отмечается. Такую пару проводят три правила, каждое от своего центра и со своей мерой разброса. Грубый выброс все три находят одинаково, а на краях расходятся. Приложение выводит пару рядом с каждым подсчётом, чтобы фильтром наблюдений можно было оставить значения без выбросов (условие Между нижним и верхним) или, наоборот, выделить выбросы.

Границы Тьюки — правило ящика с усами: границы проходят на 1.5 МКР ниже первого квартиля и выше третьего, а более широкая пара на 3 МКР отделяет экстремальные выбросы. Для 185 значений времени ожидания Q1 = 3.0 и Q3 = 6.9, так что МКР равен 3.9, а верхняя граница — 6.9 + 1.5 × 3.9 = 12.75. За ней два ожидания, 16.3 и 19.9, причём 19.9 лежит и за экстремальной границей 18.6. Границы построены по квартилям, которые выброс сдвинуть не может, поэтому пороги остались бы прежними, будь выброс равен не 19.9, а 199. С этого правила и стоит начинать при любой форме распределения. Для исходного столбца чек_после верхняя граница равна 19.64, и за ней два значения, 20.08 и 66.53. Для чек_до граница равна 17.97, и за ней три значения: 18.03, 18.53 и 18.94. Это реальные траты реальных участников: на краю распределения границы Тьюки не отличают такие значения от ошибок.

Правило z-оценки отмечает значение, у которого z-оценка, то есть расстояние от среднего в стандартных отклонениях, по модулю больше 3. Это правило из учебников и самое слабое из трёх: оно отсчитывает от среднего и делит на SD, а именно эти два числа выброс сдвигает сильнее всего. Пока в столбце возраст остаются пять значений 999, его среднее равно 62.2, а SD — 150.7. У значения 999 z = 6.2, и все пять отмечены. Но участник, чей возраст по ошибке ввели как 150, получил бы z = 0.58 и остался бы незамеченным, а у самого старшего настоящего участника, 68 лет, z = 0.04. На исправленном столбце (среднее 38.2, SD 10.0) то же правило даёт возрасту 150 z = 11.1. Правило работает, только когда выбросы, которые оно должно найти, уже убраны.

Маскирование — так называют этот провал: один выброс прячет другой, раздувая разброс, по которому судят обоих. Поэтому значение 20.08 в чек_после отстоит от среднего на 1.84 SD, пока заказ кейтеринга остаётся в данных, и на 2.80 SD без него. Значение то же, а расстояние выросло в полтора раза, потому что соседний выброс больше не растягивает SD. Правила, построенные на медиане и медианном абсолютном отклонении, маскированию не подвержены: одно значение не может сдвинуть ни ту, ни другую величину.

Модифицированная z-оценка — z-оценка, построенная на этих двух величинах вместо среднего и SD,

M=0.6745×x−medianMAD

и значение отмечается, когда |M| больше 3.5. Множитель 0.6745 приводит MAD к масштабу SD нормального распределения, и порог 3.5 значит то же, что значил бы для z. Пока в столбце возраст остаются значения 999, его медиана равна 36, а MAD — 6. У возраста 150 M = 12.8, у значения 999 M = 108, и ничего не спрятано. Счётчик Модифицированные Z-выбросы (|M| > 3.5) в описательной статистике работает именно по этому правилу. Метод Робастная z в преобразовании данных вычисляет ту же оценку и сохраняет её столбцом. Он делит на 1.4826 × MAD, а это и есть MAD ⁄ 0.6745.

Три правила расходятся как раз там, где нужно суждение аналитика. Для столбца возраст, где заглушки объявлены пропусками, границы Тьюки (верхний порог 63.5) отмечают 65, 67 и 68, правило z-оценки не отмечает ничего (наибольшее z равно 2.96), а модифицированная z-оценка отмечает только 68 (M = 3.60). Все трое — реальные люди в возрасте под семьдесят. В столбце визиты_до границы отмечают семерых участников (19 визитов и больше), модифицированная z-оценка — пятерых (от 22), а z-оценка — троих (от 24). Внутри филиалов границы отмечают 17, 17 и 19 визитов в «Набережной» и 22, 23, 24, 25 и 42 в «Привокзальной». Истинного среди этих подсчётов нет: каждый отражает лишь одно правило, поэтому в отчёте правило называют.

Несколько переменных сразу

Многомерный выброс — наблюдение, обычное по каждой переменной в отдельности, но невозможное в их сочетании. Участник 179 до смены меню тратил 17.41 за визит. Это много, но в пределах границы, которая для 199 участников с обеими тратами равна 17.92. После смены он тратил 6.35 — меньше среднего, но ничего примечательного. Вместе же эти два числа делают его единственным из 199 участников, чьи траты не объясняет связь между столбцами. Корреляция между чек_до и чек_после равна 0.69, и участник, тративший до смены 17.41, «должен» был бы тратить после около 16.37, на десять единиц больше, чем на самом деле. Правила для одной переменной этого не видят. Заметить такое наблюдение может только расстояние, измеренное сразу по обоим столбцам.

Расстояние Махаланобиса — это такое расстояние: насколько далеко наблюдение от центра облака всех наблюдений, в единицах, учитывающих разброс каждой переменной и корреляции между ними. Поэтому сдвиг вдоль длинной оси облака весит меньше, чем такой же сдвиг поперёк неё. Квадрат расстояния сравнивают с распределением χ² с числом степеней свободы, равным числу переменных. Приложение отмечает наблюдение за квантилем 0.999 (для двух переменных это 13.8), так что в чистой выборке из тысячи наблюдений будет отмечено около одного. Квадрат расстояния участника 179 равен 19.1 по классической оценке и 31.8 по робастной, и он отмечен в обоих случаях. У следующего по удалённости участника квадрат расстояния 8.8, и он не отмечен. У классического расстояния есть свой небольшой изъян. Центр и разброс, от которых оно отсчитывается, — это среднее и ковариации, уже сдвинутые самими выбросами, то есть то же маскирование, но в нескольких измерениях. Для классического варианта приложение берёт не приближение χ², а точную границу (здесь 13.4).

Минимальный определитель ковариации (MCD) — робастный способ обойти этот изъян: центр и разброс оцениваются по той половине наблюдений, которая лежит теснее всего. Выброс не участвует в построении мерки, которой его измеряют, и порог χ² применим как есть. Стандартные отклонения двух трат по MCD равны 3.10 и 3.45 против классических 3.57 и 3.70, а корреляция — 0.76 против 0.69. Облако без отбившихся точек плотнее, и участник 179 оказывается от него дальше. Оценку находят случайным поиском, поэтому она зависит от зерна воспроизводимости. Приложение называет на карточке использованную оценку, а если выборка слишком мала для робастной подгонки, возвращается к классической. Так перед подгонкой проверяют наблюдения модули моделирования структурными уравнениями и конфирматорного факторного анализа, анализа надёжности и IRT.

Небрежные ответы

У анкеты есть свой особый выброс — респондент, который не читал вопросов. Каждый его ответ допустим по шкале, поэтому никакая граница по отдельному пункту его не заметит. Выдать его может только паттерн ответов на пункты, которые должны измерять одно и то же. Каждый индекс ниже ищет свой паттерн, и оценивают их вместе: проверка качества ответов в модуле IRT вычисляет их все рядом с расстоянием Махаланобиса. Числа получены на шести пунктах удовлетворённости кафе (шкала от 1 до 5) по ответам в том виде, в каком их дали участники, а пункт медленно отмечен в списке модуля Обратные пункты, как на странице о латентных переменных. Длинная серия и IRV берут ответы как есть, поскольку серия одинаковых ответов — паттерн на самом бланке. Остальные индексы, как и модель, берут медленно с обратным кодированием.

Небрежные ответы — заполнение анкеты без внимания к её содержанию: один и тот же ответ, проставленный сверху донизу страницы, случайные ответы или что-то среднее. Они обычны там, где отвечать утомительно, а ответ ничего не даёт отвечающему, как в большинстве онлайн-опросов. Их признаки — паттерны: серия одинаковых ответов, слишком ровный или слишком беспорядочный разброс, ответы, противоречащие друг другу. Ни один признак не доказывает небрежности: участник, которому всё понравилось, вполне искренне даёт один и тот же ответ на все пункты. Поэтому индексы лишь отмечают респондента, а решает аналитик, посмотрев на ответы.

Длинная серия — длина наибольшей серии одинаковых ответов на идущие подряд пункты, характерный след того, кто отвечает «по прямой». На шести пунктах она принимает значения от 1 (каждый ответ отличается от предыдущего) до 6 (один ответ на всё). У типичного участника кафе самая длинная серия равна 2. Приложение отмечает серию выше верхней границы Тьюки, построенной по длинным сериям самой выборки: квартили равны 2 и 3, граница — 4.5, и у семерых участников серия длиной 5. Четверо из них прервали её только на последнем пункте. Участники 13 и 69 поставили 4 всем пяти прямым пунктам и 2 пункту медленно, а 15 и 165 — пять пятёрок и 1. Здесь в их пользу свидетельствует обратный пункт: соглашаясь со всем остальным, они не согласились с тем, что «обслуживали медленно». Значит, этот вопрос они прочли, а отметка — лишь плата за то, что всё понравилось. Двое других и на обратном пункте ответили в тон серии. Участник 54 поставил 5 первым пяти пунктам и 4 пункту медленно, то есть согласился и с тем, что заказ принесли быстро, и с тем, что обслуживали медленно, а участник 161 дал пять четвёрок и 3. Так отвечает тот, кто перестал читать вопросы, и на этих двоих стоит посмотреть. Седьмой, участник 57, начиная со второго пункта ставил только 3. Обратный пункт позволяет длинной серии отличить небрежного респондента от довольного, но только на ответах в исходном виде. Если бы медленно в файле был уже перекодирован, четверо довольных выглядели бы так, будто дали один ответ на всё, а у двоих других серия выглядела бы прерванной на медленно.

Внутрииндивидуальная вариабельность ответов (IRV) — стандартное отклонение ответов одного человека по всем пунктам, то есть насколько широко он пользуется шкалой. Приложение делит его на наибольший разброс, допустимый шкалой ответов, так что IRV лежит от 0 до 1 при любом числе категорий. У отвечающего «по прямой» IRV равна 0. Очень низкое значение выдаёт ровный паттерн, который длинная серия пропускает, если одинаковые ответы идут не подряд. В кафе квартили равны 0.41 и 0.67, нижняя граница — 0.01, так что отмечено было бы только значение 0, а один и тот же ответ на все шесть пунктов не дал никто. Наименьшее значение, 0.19, у участников 46, 54 и 161, а у четверых, чья серия прерывается на медленно, — 0.37 и 0.75: ответ на обратный пункт на другом краю шкалы увеличивает их разброс. Случайные ответы дают высокую IRV, а не низкую. IRV находит ровный паттерн, а беспорядочный оставлен индексам ниже.

Корреляция «человек–сумма» — корреляция по пунктам между ответами человека и средними ответами всех остальных: с теми ли пунктами он соглашается охотнее, с которыми охотнее соглашается и выборка в целом. У внимательного респондента она положительна, у отвечающего наугад близка к нулю, а у того, кто отвечает наперекор всем, отрицательна. Индексу нужны заметные различия между средними по пунктам, а у шести пунктов кафе их почти нет: средние лежат от 3.34 до 3.79. Оттого корреляции разбросаны широко: медиана 0.22, квартили −0.23 и 0.50, а нижняя граница, −1.31, лежит ниже наименьшего значения, какое вообще может принять корреляция, поэтому не отмечен никто. У отвечающего «по прямой» корреляции нет вовсе, ведь ответ, который не меняется, ни с чем не коррелирует. Поэтому ровные паттерны оставлены длинной серии и IRV.

Индивидуальная надёжность по случайным половинам — согласованность человека с самим собой. Пункты случайно делятся на две половины, ответы человека на одной половине коррелируются с его ответами на другой, корреляция пересчитывается на полную длину, как в надёжности методом расщепления, и результат усредняется по 30 разбиениям. Внимательный респондент на близкие по смыслу пункты отвечает сходно и получает высокое значение, а у отвечающего наугад оно близко к нулю. Индексу нужны хотя бы три пункта в каждой половине, и шесть пунктов кафе — ровно этот минимум. Корреляция по трём парам ответов — в основном шум: медиана в кафе равна −0.14, а нижняя граница, −0.90, лежит ниже наименьшего значения в выборке, −0.65, так что не отмечен никто. Индекс оправдывает себя на длинной анкете. На шести пунктах его разброс, как и у корреляции «человек–сумма», так велик, что граница не дотягивается ни до одного значения.

Две отметки — не всегда два независимых свидетельства. Приложение считает заслуживающими проверки участников с двумя отметками и больше, и на ответах в исходном виде таких в кафе нет: у семерых с длинной серией IRV недостаточно низкая. Будь медленно перекодирован в самом файле, четверо довольных получили бы обе отметки, от длинной серии и от IRV. Но оба индекса видели бы один и тот же паттерн, и тревога была бы ложной: на неё уже ответила сама анкета. Четверо, которых отмечает расстояние Махаланобиса, — другие люди. Квадраты их расстояний по оценке MCD, от 22.6 до 29.6, превышают порог χ² для шести пунктов, 22.5. Их паттерны противоречат корреляциям между пунктами. У участника 145 это 5 за вкус и 2 за свежесть, у участника 168 — 3, 3 и 5 по пунктам о еде, единицы за приветливо и быстро при 2 за медленно, то есть самые низкие оценки обслуживанию при несогласии с тем, что оно было медленным. Кто из них ответил небрежно, а кто искренне, но нестандартно, видно только по самим ответам.

Выбросы в модели

Модель (линия регрессии или набор групповых средних) добавляет ещё один способ оказаться необычным. Наблюдение может быть необычным по исходу, если лежит далеко от того места, куда его помещает модель, или по предикторам, если далеко отстоит от других наблюдений по оси x. Вместе эти два свойства определяют, насколько сильно наблюдение тянет на себя подгонку. Регрессия чек_после на чек_до в кафе показывает все три случая, сначала с заказом кейтеринга (200 участников), затем с очищенной ячейкой заказа (199). Разность между наблюдением и линией — его остаток. Всё, что описано ниже, построено на этой разности и на положении наблюдения.

Стьюдентизированный остаток — остаток, делённый на оценку его собственного стандартного отклонения, чтобы остатки разных наблюдений можно было сравнивать между собой и с распределением t. Само наблюдение при этом в оценку не входит, иначе большой остаток раздувал бы мерку, которой его измеряют. Разница заметна как раз на больших остатках. С заказом кейтеринга исходный остаток участника 136 равен 47.63 при SD остатков модели 4.37. Стьюдентизированный с учётом самого участника, он равен 11.1, а без него, когда SD остатков падает до 2.68, — 18.2. По эмпирическому правилу отмечают |t| > 3. Критерий выбросов в приложении устроен точнее: он сравнивает наибольший стьюдентизированный остаток с распределением t и умножает p-значение на n. Это поправка Бонферрони на то, что ради поиска худшего наблюдения просмотрены все. Так доля ложных отметок остаётся на уровне значимости при любом объёме выборки, тогда как фиксированный порог отмечает постоянную долю любой чистой выборки. Скорректированное p участника 136 равно 10⁻⁴¹. Когда ячейка заказа очищена, наибольший стьюдентизированный остаток у участника 179: −3.80, скорректированное p = 0.039. Это снова многомерный выброс, теперь уже с точки зрения модели. Карточка допущений в сравнительном анализе применяет тот же критерий к остаткам от групповых средних: для чек_после по филиалам она сообщает, что среди 99 участников «Привокзальной» отмечен один, со стьюдентизированным остатком 15.4 и p < 0.001.

Рычаг показывает, насколько наблюдение необычно по своим предикторам. Он лежит от 0 до 1, а в сумме по всем наблюдениям равен числу коэффициентов: чем дальше наблюдение от центра значений x, тем ближе к нему вынуждена пройти линия. Приложение отмечает рычаг больше 2p/n, то есть 0.02 для двух коэффициентов и 200 участников. Наибольший рычаг у участника 133 с самым большим в файле значением чек_до, 18.94: 0.045 с заказом кейтеринга и 0.047 без него. Его стьюдентизированный остаток равен −0.40, то есть наблюдение тянет линию к себе, но линия и без того проходит рядом. Высокий рычаг при малом остатке означает удачно расположенное наблюдение, а не проблему. Число отметок, 17 участников выше 0.02, показывает, где значения x редки, а не где что-то не так.

Влияние — результат обоих свойств вместе: насколько меняется подогнанная модель, если наблюдение удалить. Наклон регрессии чек_после на чек_до равен 0.90 с участником 136 и 0.72 без него. Одна строка сдвигает коэффициент на четверть его величины, а R² — с 0.36 до 0.48. Участник 133 при всём своём рычаге не сдвигает ничего.

Влиятельные точки — наблюдения, удаление которых меняет вывод. Их и ищут диагностики, описанные ниже. Признак влиятельной точки — большой остаток и высокий рычаг. По отдельности каждый из них редко меняет что-то всерьёз, поэтому выброс по исходу при обычном значении x (участник 179, рычаг 0.035) значит меньше, чем значил бы такой же остаток на краю оси.

Расстояние Кука — стандартная единая мера влияния: насколько сдвигаются все подогнанные значения при исключении наблюдения, в масштабе дисперсии ошибки модели. Порог из учебников равен 1. Приложение выводит и порог с поправкой на объём выборки, 4/(n−p) (здесь 0.020), потому что в большой выборке до 1 почти ничто не дотягивает. У участника 136 расстояние Кука равно 2.71. Это единственное наблюдение выше 1 и одно из двух выше 0.020. Когда ячейка заказа очищена, наибольшее расстояние, 0.25, у участника 179: ниже 1, но намного выше 0.020. При этом порог с поправкой пересекают уже двенадцать участников, а не двое. Пока выброс был в данных, его остаток раздувал дисперсию ошибки, на которую делится расстояние каждого наблюдения, и прятал остальных. Это маскирование, только в модели.

DFFITS — изменение подогнанного значения самого наблюдения при его исключении, в единицах стандартной ошибки. Порог отметки — 2p/n, здесь 0.20. У участника 136 DFFITS равен 3.80, у участника 179 — −0.73. Как только они перестают тянуть модель на себя, их подогнанные значения сдвигаются почти на четыре и почти на одну стандартную ошибку соответственно.

DFBETAS — та же идея для каждого коэффициента по отдельности: на сколько стандартных ошибок сдвигается коэффициент при исключении наблюдения. Для каждого наблюдения получается столько чисел, сколько в модели коэффициентов, а обычный порог — 2/n (0.14). Исключение участника 136 сдвигает свободный член на −2.79 стандартной ошибки, а наклон — на +3.56, то есть это наблюдение тянет в основном наклон. Исключение участника 179 сдвигает их на 0.52 и −0.67. Регрессионный модуль сводит влияние к расстоянию Кука и DFFITS. Метаанализ и анализ времени до события выводят DFBETAS для каждого наблюдения, потому что там обычно важно, какую именно оценку сдвигает исследование или испытуемый.

COVRATIO отвечает на другой вопрос: меняет ли наблюдение не сами коэффициенты, а их точность. Это отношение ковариации коэффициентов без наблюдения к их ковариации с ним, так что значение около 1 означает, что наблюдение нейтрально. Приложение использует полосу 1 ± 3p/n, здесь от 0.97 до 1.03. У участника 136 COVRATIO равен 0.147: без него неопределённость коэффициентов сжимается до седьмой части, потому что его остаток раздувал дисперсию ошибки. У участника 133 COVRATIO равен 1.05. Это наблюдение с высоким рычагом на дальнем конце оси x уточняло наклон, и без него оценка становится менее точной. COVRATIO намного ниже 1 выдаёт выброс по исходу, а намного выше 1 — одиночное наблюдение, которое удерживает конец линии.

Что делать с выбросом

Правила находят наблюдение, но ни одно не подсказывает, что с ним делать. Это зависит от того, к какому из трёх родов оно относится.

Сначала посмотреть на наблюдение. Строку просматривают целиком. Заказ кейтеринга нашёлся по максимуму столбца, и одного взгляда на четыре визита участника и сумму хватило, чтобы понять, что это такое. Значения 999 нашлись так же. Ошибочное значение делают пропуском, а не исправляют наугад, если только источник данных не может сообщить, каким оно было на самом деле.

Решать по правилу, которое можно сформулировать, а не по желаемому результату. «Среднее за период „после“ выше 50 — это не трата за визит» — правило. «Наблюдение, из-за которого p перевалило за 0.05» — не правило. Правило записывают до запуска критерия, приводят в отчёте и применяют ко всем наблюдениям, которые под него попадают, включая те, что работают на желаемый вывод.

Исправлять ячейку, а не строку. Перекодировка диапазонов в преобразовании данных, где выходным значением задан пропуск, очищает одну ячейку и сохраняет остальную строку участника. Тогда у каждого анализа, где этот столбец не участвует, остаются все 200 наблюдений, а фильтр наблюдений ради одной ячейки убрал бы хорошую строку. Методы группы Выбросы в разделе Стандартизация делают то же по правилу: Пометка отмечает наблюдения в новом столбце, Усечение делает их пропусками, Винзоризация подтягивает их к порогу. Порог задаётся в процентилях, SD или MAD, и только MAD выбросы сдвинуть не могут.

Или оставить наблюдение и сменить метод. Методам, которые работают с рангами или отсекают хвосты, всё равно, насколько далеко лежит выброс. Критерий Манна — Уитни для чек_после по филиалам даёт p = 0.002 и с заказом кейтеринга, и без него. Коэффициент ρ Спирмена между тратами до и после равен 0.68 в обоих случаях, тогда как r Пирсона — 0.60 с заказом и 0.69 без него. 20%-е усечённое среднее изменения трат равно 1.02 и 1.00. В модели робастная регрессия снижает вес наблюдения тем сильнее, чем больше оно расходится с остальными, и сообщает этот вес. Такое решение обосновать проще, чем удаление строки. Цена любого из этих методов — небольшая потеря мощности на чистых данных, а выигрыш в том, что вывод больше не держится на одном участнике.

Сообщить о решении и о том, что оно изменило. Читатель должен видеть наблюдение, правило и то, как изменился результат.

Анализ чувствительности — проведение анализа двумя способами, с наблюдением и без него или с правилом и без него, и сообщение о том, устоял ли вывод. С заказом кейтеринга парное изменение трат составляет +1.32 за визит (SD 4.37), t(199) = 4.28, p < 0.001, а без него +1.09 (SD 2.86), t(198) = 5.37, p < 0.001. Среднее и разброс сдвигаются, а вывод — нет, и в отчёте достаточно сказать об этом одним предложением. Разница между филиалами по чек_после равна 2.19 с заказом и 1.63 без него, p = 0.005 и p = 0.002 по критерию Уэлча. Если два прогона расходятся, это расхождение и есть результат: вывод зависит от одного наблюдения, и в отчёте нужно указать, от какого, и объяснить, почему его оставили или исключили.

Пропущенные данные

Пропущенное значение — пустая ячейка: вопрос без ответа, несделанное измерение или значение, которое решено не учитывать. Приложение считает пропуском только пустую ячейку, а любую другую — значением, что бы оно ни означало. Поэтому, пока правило не объявило 999 пропуском, для приложения это были пятеро участников в возрасте 999 лет. После трёх исправлений в файле 28 пустых ячеек в 28 строках: 7 в оценка, 15 в ожидание, 5 в возраст и одна в чек_после. Больше одного пропуска нет ни у кого. Пропущенное значение — не ноль, и как ноль его в среднее не включают. Это наблюдение, которого в столбце нет, и первым делом оно меняет объём выборки.

Пропусков — число ячеек столбца без значения, а там, где таблица это предусматривает, рядом стоит их процент от числа строк. Смотреть на него нужно вместе с N: в сумме они дают число строк. Если пропуски составляют большую долю строк, это предупреждение обо всех остальных числах строки, ведь они вычислены только по оставшимся наблюдениям.

Пропущенные данные — состояние набора данных с такими ячейками и название настройки, от которой зависит, как с ними поступает каждый анализ: попарное удаление, построчное удаление или импутация, сразу для всего сеанса. Выбор меняет n под каждым результатом, а при импутации и сами результаты, поэтому в отчёте его называют.

Коды пропусков — значения, которыми анкета или выгрузка обозначает пропуск: 999, −1, N/A, пустая строка. Приложение не может знать, что это коды. Действие Объявить коды пропусков в преобразовании данных превращает каждый такой код в настоящую пустую ячейку, и он перестаёт участвовать в средних, корреляциях и графиках как значение. Случай с 999 разобран в руководстве по данным кафе. Если у данных есть кодовая книга с перечнем кодов, прочитать её стоит прежде всего остального.

Полные наблюдения — строки, где заполнены все переменные, которые использует анализ. Из 200 участников кафе все пятнадцать столбцов заполнены у 172. У 193 есть оценка, у 185 — ожидание, а у 178 — обе. Любой анализ работает на полных наблюдениях, и вопрос только в том, полных по каким переменным. Это и решают два правила удаления.

Попарное удаление берёт для каждой статистики строки, полные по тем переменным, которые нужны именно ей: среднее по оценка — по 193 строкам, среднее по ожидание — по 185, а их корреляцию — по 178 строкам, где есть обе. Так сохраняется больше всего данных, и этот вариант в приложении выбран по умолчанию. Цена его в том, что в одной таблице могут оказаться разные объёмы выборки, например у каждой ячейки корреляционной матрицы своё n. Кроме того, матрица, собранная по разным подмножествам, может не соответствовать ни одной реальной выборке. Поэтому анализы, которые подгоняют сразу всю матрицу (факторный анализ, кластерный анализ), попарное удаление не принимают и переходят на построчное. Анализ надёжности попарное удаление принимает, но статистики уровня шкалы вычисляет только по полным наблюдениям.

Построчное удаление берёт для всех расчётов только строки, полные по всем выбранным переменным. Если выбрать все пятнадцать столбцов кафе, каждая статистика будет вычислена на одних и тех же 172 участниках, нужен ли ей один столбец или все. Тогда каждое число в выводе описывает одну и ту же выборку, и в этом достоинство метода. Цена его в том, что одна плохо заполненная переменная среди выбранных (необязательный вопрос, показатель, измеренный лишь у части участников) выбрасывает каждую строку, где она пуста. Приложение предупреждает, если так удаляется половина наблюдений или больше. Обычно проблему решает не смена правила, а отказ от этой переменной.

Смещает ли удаление результат, а не просто уменьшает выборку, зависит от того, почему ячейки пусты. Механизмов пропуска различают три.

Полностью случайные пропуски (MCAR) ни от чего не зависят: пропущена страница, уронили пробирку. Удаление неполных строк тогда стоит только точности, потому что полные наблюдения — случайная выборка из всех. Пропуски кафе в ожидание и оценка полностью случайны по построению: спецификация файла расставила их случайно. И всё же пятнадцать участников, пропустивших вопрос об ожидании, до смены меню тратили за визит 7.21 против 8.83 у остальных, p = 0.049 по критерию Уэлча. Это случайность, иначе и быть не может, ведь известно, как сделан файл. В этом и урок: небольшой набор пропусков может казаться связанным с чем-то, а по одним только данным нельзя доказать, что пропуски случайны. Такое утверждение держится на знании того, откуда пропуски взялись.

Случайные пропуски (MAR) — вероятность пропуска зависит от того, что в данных есть (старшие участники чаще пропускают онлайн-опрос, касса одного филиала чаще теряет записи), но при известных значениях этих переменных не зависит от самого пропущенного значения. Удаление тогда даёт небольшое смещение, поскольку среди полных наблюдений больше тех, кто охотнее отвечает. Метод, который учитывает это по наблюдаемым столбцам (FIML, о нём ниже, или множественная импутация), смещения не даёт.

Неслучайные пропуски (MNAR) — пропуск зависит от самого пропущенного значения: на вопрос об ожидании не ответили те, кто ждал дольше всех, анкету не вернули самые недовольные. Никакой метод не восстановит этого по данным, потому что нужная информация находится в отсутствующих ячейках. В таком случае в отчёте признают, что механизм правдоподобен, и приводят результат как границу. У ожиданий кафе такой проблемы нет. Но если бы 15 пропусков были 15 самыми долгими ожиданиями, медиана 4.9 минуты описывала бы кафе, которого не существует.

Импутация заменяет пропуск значением, чтобы строку можно было использовать целиком. Настройка заполняет все пропуски столбца одним числом (средним, медианой, модой или константой), и дальше приложение работает так, будто пропусков не было. Чем это оборачивается, видно на столбце ожидание. Если заполнить его 15 пропусков средним 5.20, среднее по построению останется 5.20, а SD уменьшится с 2.91 до 2.80: пятнадцать значений точно в центре ничего не добавляют к разбросу. В результате стандартная ошибка среднего падает с 0.214 до 0.198, то есть показывает точность, которой данные не дают. Корреляция между оценка и ожидание меняется с −0.30 на 178 участниках до −0.29 на 193: её тянут к нулю пятнадцать точек, в которых связи нет. Кроме того, у заполненного столбца появляется пик. Интервал 4–6 минут на его гистограмме содержит 69 участников вместо 54 в настоящих данных, и пятнадцать из них одинаковы. Так действует любое заполнение одним значением. Медиана искажает распределение в той же мере, а константа создаёт такой же пик в выбранной точке. Такое заполнение уместно, когда следующему шагу нужен полный столбец (балл по шкале, выгрузка, ряд с лагом), но не для самого анализа, где удаление по крайней мере показывает настоящее n.

Метод подстановки — выбор одного из этих способов заполнения: Среднее значение и Медиана для числового столбца, Мода для любого, Константа для значения, введённого вручную. Действие Заполнить пропущенные ячейки в преобразовании данных предлагает те же способы и ещё несколько. Заполнять можно внутри каждой группы второй переменной (среднее ожидание 4.84 для «Набережной» и 5.57 для «Привокзальной» вместо 5.20 для обоих филиалов) или ближайшим предыдущим либо следующим значением упорядоченного столбца. Результат записывается в данные как правило, и в отчёте можно точно указать, что было заполнено.

Множественная импутация заполняет каждый пропуск не один раз, а многократно, всякий раз случайным значением, разброс которого отражает неопределённость заполнения. Анализ проводится на каждой заполненной копии, а результаты объединяются, так что стандартные ошибки учитывают неопределённость, которую скрывает единственное заполнение. В большинстве областей это основной метод для пропусков типа MAR, но в приложении его нет: импутация здесь только одним значением, и эта страница прямо об этом предупреждает.

FIML (метод максимального правдоподобия с полной информацией) — альтернатива, доступная в модулях, которые подгоняют модели. Здесь ничего не заполняют и не удаляют: модель подгоняется к каждой строке по тем ячейкам, которые в ней есть, и участник с четырнадцатью заполненными столбцами из пятнадцати вносит информацию всех четырнадцати. При MAR метод не даёт смещения и не теряет наблюдений. В моделировании структурными уравнениями и конфирматорном факторном анализе его можно выбрать вместо построчного удаления, а сводка модели называет способ обработки пропусков, который фактически применён.

Отчёт

В отчёте называют каждое правило и число отмеченных им случаев. Для выбросов это правило (1.5·МКР, модифицированная z-оценка при |M| > 3.5, расстояние Кука выше 4/(n−p), расстояние Махаланобиса при p < 0.001 по оценке MCD), отмеченные наблюдения, что с каждым сделано и почему, а также изменился ли вывод, если их оставить. Например: «Одна средняя трата за период „после“ перекодирована в пропуск, поскольку это не трата за визит. Парная разность составила +1.09 (SD 2.86) без неё и +1.32 (SD 4.37) с ней и значима в обоих случаях». Для пропущенных данных — сколько ячеек пусто в каждой переменной, правило удаления или способ заполнения, итоговое n под каждым результатом и что известно о причинах пропусков. Если n отличается от числа строк, это нельзя оставлять читателю на догадку.

Где это встречается в DataSuite