Предположим, у меня есть большой набор многомерных данных, по крайней мере, с тремя переменными. Как я могу найти выбросы? Парные диаграммы рассеяния не будут работать, поскольку выброс может существовать в трех измерениях, который не является выбросом ни в одном из двухмерных подпространств.
Я имею в виду не проблему регрессии, а истинные многомерные данные. Таким образом, ответы, включающие надежную регрессию или вычислительные рычаги, не помогают.
Одной из возможностей будет вычисление оценок главных компонентов и поиск отклонения в двумерной диаграмме рассеяния первых двух оценок. Будет ли это гарантированно работать? Есть ли лучшие подходы?
multivariate-analysis
outliers
Роб Хиндман
источник
источник
Ответы:
Посмотрите на пакет mvoutlier , который опирается на упорядоченные надежные расстояния махаланобисов, как предлагает @drknexus.
источник
Я думаю, что ответ Робина Джирарда будет хорошо работать для 3 и, возможно, 4 измерений, но проклятие размерности помешает ему работать за пределами этого. Однако его предложение привело меня к связанному подходу, который заключается в применении перекрестной проверки оценки плотности ядра к первым трем основным оценкам компонентов. Тогда очень большой размерный набор данных все еще может быть обработан хорошо.
В итоге для i = 1 до n
конец для
Сортировать Li (для i = 1, .., n) и выбросы те, которые с вероятностью ниже некоторого порога. Я не уверен, что было бы хорошим порогом - я оставлю это для того, кто пишет статью об этом! Одна возможность состоит в том, чтобы сделать коробочную диаграмму значений log (Li) и посмотреть, какие выбросы обнаружены на отрицательном конце.
источник
Вы можете найти педагогическое резюме различных методов, доступных в (1)
Для некоторых --recent-- численных сравнений различных методов, перечисленных там, вы можете проверить (2) и (3) .
Есть много более старых (и менее исчерпывающих) числовых сравнений, обычно встречающихся в книгах. Например, вы найдете его на страницах 142-143 из (4).
Обратите внимание, что все методы, обсуждаемые здесь, имеют реализацию с открытым исходным кодом R, в основном через пакет rrcov .
источник
Я хотел бы сделать что-то вроде «опустить один алгоритм тестирования» (n - количество данных):
для i = 1 до n
конец для
Это сработает, если n достаточно велико ... вы также можете использовать "стратегию ухода из вне", которая может быть более подходящей, когда у вас есть "группы" выбросов ...
источник
Вы можете найти кандидатов на «выбросы» среди точек поддержки ограничивающего эллипсоида минимального объема. ( Эффективные алгоритмы для нахождения этих точек в довольно больших измерениях, как точных, так и приблизительных, были изобретены во множестве работ в 1970-х годах, потому что эта проблема тесно связана с вопросом в экспериментальном дизайне.)
источник
Я применил новый подход к анализу основных компонентов IT Jolliffe . Вы запускаете PCA для своих данных (Примечание: PCA может быть довольно полезным инструментом для самостоятельного исследования данных), но вместо того, чтобы рассматривать первые несколько основных компонентов (ПК), вы строите последние несколько ПК. Эти ПК представляют собой линейные отношения между вашими переменными с наименьшим возможным отклонением. Таким образом, они обнаруживают «точные» или близкие к точным многовариантные отношения в ваших данных.
График оценок ПК для последнего ПК покажет выбросы, которые не так легко обнаружить, глядя на каждую переменную в отдельности. Одним из примеров является рост и вес - тот, кто имеет «выше среднего» рост и «ниже среднего» вес, будет обнаружен последним ПК роста и веса (при условии, что они положительно коррелируют), даже если их рост и вес не были " Экстрим "индивидуально (например, тот, кто был 180см и 60кг).
источник
Я не видел, чтобы кто-то упоминал функции влияния . Впервые я увидел эту идею в многомерной книге Гнанадесикана .
В одном измерении выброс является либо чрезвычайно большим, либо чрезвычайно малым значением. В многомерном анализе это наблюдение удаляется из основной массы данных. Но какой показатель мы должны использовать, чтобы определить экстремум для выброса? Есть много вариантов. Расстояние Махаланобиса только одно. Я думаю, что поиск любого типа выброса бесполезен и контрпродуктивен. Я хотел бы спросить, почему вы заботитесь о выбросах? При оценке среднего значения они могут оказать большое влияние на эту оценку. Надежные оценки весят и приспосабливают выбросы, но они формально не проверяют их. Теперь в регрессии выбросы - например, точки воздействия - могут оказать большое влияние на параметры наклона в модели. С помощью двумерных данных они могут чрезмерно влиять на расчетный коэффициент корреляции и в трех или более измерениях коэффициент множественной корреляции.
Функции влияния были введены Хэмпелом как инструмент для надежной оценки, и Мэлловс написал хорошую неопубликованную статью, пропагандирующую их использование. Функция влияния - это функция точки, в которой вы находитесь в n-мерном пространстве, и параметра. Он по существу измеряет разницу между оценкой параметра с точкой в расчете и с опущенной точкой. Вместо того, чтобы заниматься вычислением двух оценок и анализировать разницу, часто вы можете получить формулу для нее. Затем контуры постоянного влияния сообщают вам направление, которое является крайним по отношению к оценке этого параметра, и, следовательно, сообщают вам, где в n-мерном пространстве искать выбросы.
Более подробно вы можете посмотреть на мою статью 1983 года в Американском журнале математических и управленческих наук под названием «Функция влияния и ее применение к проверке данных». При проверке данных мы хотели найти выбросы, которые повлияли на предполагаемое использование данных. Я чувствую, что вы должны обратить свое внимание на выбросы, которые сильно влияют на параметры, которые вы хотите оценить, и не заботитесь о других, которые этого не делают.
источник
Это может быть превышение, но вы можете обучить данные без наблюдения и использовать меру близости объектов для обнаружения выбросов. Подробнее здесь .
источник
Для умеренных измерений, таких как 3, какой-то метод перекрестной проверки ядра, предложенный в другом месте, кажется разумным и является лучшим, что я могу придумать.
Для более высоких измерений я не уверен, что проблема разрешима; он приземляется довольно прямо на территорию «проклятия размерности». Проблема заключается в том, что функции расстояния имеют тенденцию очень быстро сходиться к очень большим значениям по мере увеличения размерности, включая расстояния, полученные из распределений. Если вы определяете выброс как «точку со сравнительно большой функцией расстояния относительно других», и все ваши функции расстояния начинают сходиться, потому что вы находитесь в многомерном пространстве, значит, у вас проблемы ,
Без какого-либо предположения о распределении, которое позволит вам превратить его в вероятностную проблему классификации, или, по крайней мере, в какое-то вращение, которое позволит вам разделить ваше пространство на «измерения шума» и «информативные измерения», я думаю, что геометрия многомерных пространств собирается запретить любую простую - или, по крайней мере, надежную - идентификацию выбросов.
источник
Я не уверен, что вы имеете в виду, когда говорите, что вы думаете не о проблеме регрессии, а о «истинных многомерных данных». Моим первоначальным ответом было бы рассчитать расстояние Махаланобиса, поскольку не требуется указывать конкретный IV или DV, но по своей сути (насколько я понимаю) оно связано со статистикой рычагов.
источник
Я не знаю, что кто-то делает это, но я обычно хотел бы попытаться уменьшить размерность, когда у меня есть проблема, подобная этой. Вы можете посмотреть на метод из многократного обучения или нелинейного уменьшения размерности .
Примером может служить карта Кохонена . Хорошая ссылка на R - «Самоорганизующиеся и суперорганизующиеся карты в R: пакет Кохонена» .
источник
Мой первый ответ будет таким: если вы можете сделать многомерную регрессию на данных, то использовать остатки от этой регрессии, чтобы определить выбросы. (Я знаю, что вы сказали, что это не проблема регрессии, так что это может вам не помочь, извините!)
Я копирую часть этого из вопроса Stackoverflow, на который я ранее ответил, у которого есть некоторый пример кода R
Сначала мы создадим некоторые данные, а затем испортим их выбросами;
Часто наиболее полезно просматривать данные графически (ваш мозг гораздо лучше распознает выбросы, чем математика)
Затем вы можете использовать статистику для расчета критических значений отсечки, здесь с помощью теста Лунда (см. Lund, RE 1975, «Таблицы приблизительного теста для выбросов в линейных моделях», Technometrics, том 17, № 4, с. 473). -476 и Прескотт, стр. 1975, «Приблизительное испытание на выбросы в линейных моделях», Technometrics, том 17, № 1, с. 129-132.)
Очевидно, есть и другие посторонние тесты, кроме теста Лунда (на ум приходит Grubbs), но я не уверен, какие из них лучше подходят для многомерных данных.
источник
vw-top-errors
@ goo.gl/l7SLlB (обратите внимание, что в примерах там есть буква Y, но я применил ту же технику, очень успешно при решении неконтролируемых проблем, исправив Y.)Один из приведенных выше ответов касался расстояний махаланобисов ... возможно, еще один шаг вперед и расчет одновременных доверительных интервалов помогут обнаружить выбросы!
источник