Как бы мы ни собирали данные, нередко случается так, что некоторые значения пропущены. Особенно это характерно для различных опросных методик или исследований, растянутых на длительное время. В такие моменты перед аналитиком встает вопрос, по-гамлетовски фундаментальный — «резать или не резать». То есть, что делать с пропущенными значениями — если удалять, то как, если не удалять — каким образом замещать пропуски? Как, в конце концов, будет правильным поступить?
Само собой, сначала надо посмотреть, а насколько случайны пропуски в данных. Для этого могут подойти такие инструменты, как паттерны пропусков, частотный анализ и прочее. В конце концов, если в опросах вариант «не знаю» может интерпретироваться как отказ от коммуникации, то и пропуск может быть маркером каких-либо процессов.
В том случае, если пропуски действительно случайны, то самый простой вариант — это удаление наблюдений с пропущенными значениями. Удаление может быть как попарным (pairwise), так и построчным (listwise). Попарное удаление — когда, например, при корреляционном анализе не учитывается значение, парное пропущенному. Построчное удаление — когда из анализа исключается вся строка, в которой есть пропущенные значения (в случае корреляционного анализа по двум переменным идентично попарному удалению).
В тех ситуациях, когда хочется сохранить массив данных, и каким-то образом заполнить пропущенные значения (импутировать), то есть множество методов, разных по идеологии и по результатам. Простейшие из них:
Во-первых, можно заполнить пропущенные значения средним или медианным значением по столбцу. SPSS также предлагает среднее/медиану по N ближайших значений.
Во-вторых, можно пойти по методу «как у соседей» — объекты имеют одинаковые значения, если похожи по ряду прочих характеристик, отраженных в датасете. В конце концов, если у Пети и у Васи отличные оценки в течение года, и отличная оценка за годовую контрольную, то логично предположить, что и отличник-Коля получил отличную оценку за контрольную.
Третий вариант заполнения пропущенных — с использованием линейной регрессии. Пропущенные значения на первом этапе заполняются средними по переменной (метод Бартлетта) или случайным из диапазона значений переменной (метод ресемплинга), переменная с пропуском принимается как зависимая. Полученными предсказанными значениями и замещаются пропуски.
В SPSS ко всему прочему реализован еще один алгоритм — EM-алгоритм. Основная идея этого алгоритма — изменение с помощью регрессионных методов пропущенных значений и вычисление ковариационной матрицы на каждой итерации, до тех пор, пока изменения в матрице не будут минимальны.
Построчное удаление, на мой взгляд, наиболее корректный вариант решения пропущенных значений. Но временами такое ограничение оказывается чрезмерно строгим — так, мне доводилось работать с датасетом, в котором было 250 наблюдений и 40 переменных, однако наблюдений без пропусков — всего три. Естественно, никакой содержательный анализ на трех наблюдениях невозможен. Однако и импутация в данном случае — решение спорное.
Конечно, импутация пропущенных значений в определенных ситуациях жизненно необходима, однако стоит все же отдавать себе отчет в том, что при большом количестве пропусков (я бы сказал, более 5−10% наблюдений по переменной) анализ данных с импутированными пропусками становится похож на самоподдерживающийся фантазм. В конце концов, использование средних вместо пропусков грозит нивелировать различия между группами, а содержательно анализировать данные линейной регрессии, в которых часть пропусков была заполнена по результатам того же регрессионного анализа — просто бессмысленно.
Хотя, конечно же, самым эффективным решением будет <s>пить чай вместо</s> собирать изначально полные данные — тиранить испытуемых/респондентов, выверять процедуру и код программы сбора данных etc.
Филипп Управителев