Быстрая линейная регрессия, устойчивая к выбросам


50

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

Пока что я сделал, чтобы оценить линию регрессии со всеми данными, затем отбросить точку данных с очень большими квадратами остатков (скажем, верхние 10%) и повторить регрессию без этих точек.

В литературе существует множество возможных подходов: наименьшие квадраты, квантильная регрессия, м-оценки и т. Д. Я действительно не знаю, какой подход мне следует попробовать, поэтому я ищу предложения. Для меня важно, чтобы выбранный метод был быстрым, потому что устойчивая регрессия будет вычисляться на каждом этапе процедуры оптимизации. Большое спасибо!


2
Метод , который вы не упомянуть , является использование студентов ошибок с неизвестными степенями свободы. Тем не менее, это может быть не так быстро, как вам нужно. t

@Procrastinator: (Легко представить конфигурацию выбросов, где) это не будет работать.
user603 19.12.12

@ user603 Это верно для любого метода, нет панацеи;). Я просто указывал на другой метод. +1 к вашему ответу.

3
@Procrastinator: Я согласен с тем, что все методы не будут работать при некоторой степени загрязнения . И «неудача» в этом контексте может быть определена количественно и эмпирически. Но идея состоит в том, чтобы по-прежнему отдавать предпочтение тем методам, которые не будут работать только при более высоких показателях загрязнения.
user603 19.12.12

4
Поскольку это делается многократно во время процедуры оптимизации, возможно, данные в регрессии (в конечном итоге) изменяются медленно. Это предполагает алгоритм, адаптированный к вашей ситуации: начните с некоторой формы устойчивой регрессии, но при выполнении небольших шагов во время оптимизации просто предположите на следующем шаге, что любой предыдущий выброс останется выбросом. Используйте OLS для данных, а затем проверьте, все ли предполагаемые выбросы все еще являются выбросами. Если нет, перезапустите с надежной процедурой, но если это так - что может случиться часто - вы сэкономите много вычислений.
whuber

Ответы:


55

Если ваши данные содержат один выброс, то их можно надежно найти, используя предложенный вами подход (хотя и без итераций). Формальный подход к этому

Кук, Р. Деннис (1979). Влиятельные наблюдения в линейной регрессии . Журнал Американской статистической ассоциации (Американской статистической ассоциации) 74 (365): 169–174.

Для нахождения более чем одного выброса на протяжении многих лет ведущим методом было так называемое семейство подходов с оценкой. Это довольно широкое семейство оценок , который включает Хьюбер оценщик регрессии, Koenker в L1 регрессия, а также подход , предложенный Procastinator в своем комментарии на ваш вопрос. В - оценке с выпуклой функции имеет то преимущество , что они имеют примерно такую же числовую сложность в оценке регулярной регрессии. Большим недостатком является то, что они могут надежно найти выбросы только в том случае, если:М М ρMMMρ

  • уровень загрязнения вашего образца меньше, чем где - это число проектных переменных, р11+pp
  • или если выбросы не выделяются в области проектирования (Ellis and Morgenthaler (1992)).

Вы можете найти хорошую реализацию ( ) оценок регрессии в пакете ( ) . л 1Ml1robustbasequantregR

Если ваши данные содержат больше выбросов, потенциально также выделяющихся из пространства проектирования, то их нахождение равносильно решению комбинаторной задачи (эквивалентно решению оценки с По убыванию / невыпуклая функция). Mρnp+1Mρ

За последние 20 лет (и особенно последние 10) было разработано большое количество быстрых и надежных алгоритмов обнаружения выбросов, чтобы приблизительно решить эту комбинаторную проблему. В настоящее время они широко применяются в самых популярных статистических пакетах (R, Matlab, SAS, STATA, ...).

Тем не менее, численная сложность обнаружения выбросов с помощью этих подходов обычно имеет порядок . Большинство алгоритмов могут быть использованы на практике для значений в подростковом возрасте. Обычно эти алгоритмы являются линейными по (количеству наблюдений), поэтому количество наблюдений не является проблемой. Большим преимуществом является то, что большинство этих алгоритмов смущающе параллельны. Совсем недавно было предложено много подходов, специально разработанных для данных более высокого размера.р нO(2p)pn

Учитывая, что вы не указали в своем вопросе, я перечислю некоторые ссылки для случая . Вот некоторые статьи, которые объясняют это более подробно в этой серии обзорных статей:р < 20pp<20

Rousseeuw, PJ и van Zomeren BC (1990). Разоблачение многовариантных выбросов и точек воздействия . Журнал Американской Статистической Ассоциации , Vol. 85, № 411, с. 633-639.

Rousseeuw, PJ и Van Driessen, K. (2006). Вычисление регрессии LTS для больших наборов данных . Архивирование данных и интеллектуального анализа данных Том 12, выпуск 1, страницы 29–45.

Hubert, M., Rousseeuw, PJ и Van Aelst, S. (2008). Высокопрочные надежные многовариантные методы . Статистическая наука , том. 23, № 1, 92–119

Эллис С.П. и Моргенталер С. (1992). Кредитное плечо и разбивка в регрессии L1. Журнал Американской Статистической Ассоциации , Vol. 87, № 417, с. 143-148.

Недавний справочник по проблеме идентификации выбросов:

Maronna RA, Martin RD и Yohai VJ (2006). Робастная статистика: теория и методы . Вилли, Нью-Йорк.

Эти (и многие другие варианты) методы реализованы (среди прочего) в пакете.robustbase R


4
Теперь это отличный ответ!
Питер Флом - Восстановить Монику

Большое спасибо user603! В моей задаче и в проектном пространстве нет выбросов (потому что объясняющие переменные моделируются из нормального распределения). Так, может быть, я могу попробовать с м-оценщик? В любом случае все остальные ссылки, которые вы мне дали, будут очень полезны, как только я начну работать над более сложными приложениями ( >> 10) моего алгоритма. рp<10p
Маттео Фазиоло,

2
@Jugurtha: В этом случае (нет выброса в области проектирования и ) оценки действительно являются предпочтительным решением. Рассмотрим функцию 'lmrob..M..fit' в пакете robustbase, функцию 'rlm' в пакете MASS или регрессию l1 в пакете quantreg. Я бы все-таки также провел LTS-регрессию в нескольких случаях и сравнил результаты, так как они могут противостоять большему количеству выбросов. Я бы сделал это просто для проверки того, не является ли уровень загрязнения выше, чем вы подозреваете. мp<10M
user603

1
«Большим преимуществом является то, что большинство этих алгоритмов смущающе параллельны». Мне нравится формулировка. ;)
Матин Улхак,

1
@ Матин, ну, в конце концов , это термин искусства . :)
JM не является статистиком

19

Для простой регрессии (один x) есть что-то, что нужно сказать для линии Тейла-Сена с точки зрения устойчивости к y-выбросам и к влиятельным точкам, а также в целом к ​​хорошей эффективности (по нормали) по сравнению с LS для наклона. Точка развала склона составляет почти 30%; до тех пор, пока у перехвата (существует множество возможных перехватов, которые использовали люди) нет более низкой разбивки, вся процедура вполне справляется с значительной долей загрязнения.

Его скорость может показаться плохой - медиана наклонов выглядит как даже с медианой - но я помню, что это можно сделать быстрее если скорость действительно проблема ( , я полагаю)(n2)O(n2)O(n)O(nlogn)

Редактировать: user603 попросил преимущество регрессии Тейла над регрессией L1. Ответ - другая вещь, которую я упомянул - влиятельные моменты:

Theil_vs_L1

Красная линия соответствует (из функции в пакете). Зеленый цвет подходит под наклоном Тейла. Все, что требуется, - это одиночная опечатка в значении x - например, 533 вместо 53 - и такое может произойти. Таким образом, подгонка не является устойчивой к одной опечатке в x-пространстве.L1rqquantregL1


это действительно может быть вычислено за время . Не могли бы вы уточнить, какое преимущество (в одном случае x) имеет оценщик TS, скажем, регрессии ? nlognl1
user603

1
@ user603 Смотрите правку.
Glen_b

(+1) спасибо за редактирование. Важно отметить эту особенность.
user603

1
И в чем преимущество над оценкой MM, такой как lmrob () из пакета robustbase пакета R или даже {не нужно устанавливать ничего, кроме 'base R'} rlm (*, ... method = "MM") из пакета MASS? Они имеют полную точку пробоя (~ 50%) и, вероятно, еще более эффективны при нормальных условиях.
Мартин Мехлер

1
@ MartinMächler Похоже, вы спорите с заявлением, которого я там не делал. Если вы хотите опубликовать ответ, который также содержит сравнение других надежных оценок с высокой разбивкой, особенно тех, которые примерно так же просты для понимания на уровне ОП, я с нетерпением жду его прочтения.
Glen_b

12

Вы смотрели на RANSAC (Википедия) ?

Это должно быть хорошо при расчете разумной линейной модели, даже когда есть много выбросов и шумов, так как она основана на предположении, что только часть данных будет фактически принадлежать механизму.


да , но с добавлением простого повторным взвешиванием шага дает оценщик (ЛЦ) , который является столь же прочным и так гораздо более стабильным и статистически эффективным. Почему бы не сделать?
user603

1

Я считаю, что оштрафован на регресса ошибок. Вы также можете использовать его итеративно и пересчитывать выборки, которые не очень согласуются с решением. Основная идея - дополнить вашу модель ошибками: где - неизвестный вектор ошибок. Теперь вы выполняете регрессию для . Интересно, что вы, конечно, можете использовать «плавленое лассо» для этого, когда вы можете заранее оценить достоверность ваших измерений и поместить это в качестве взвешивания в и для решения новой малозаметной задачи l1

y=Ax+e
e
yAxe22+λe1
W=diag(wi)
yAxe22+λWe1

Дополнительную информацию можно найти здесь: http://statweb.stanford.edu/~candes/papers/GrossErrorsSmallErrors.pdf


Вы пробовали это на примере Glen_b (если вы добавили второй выброс рядом с тем, где он разместил свой) или я опубликовал?
user603 13.09.16

@ user603 нет, я только применил это к более практичным случаям для 3D моделирования из изображений с камеры. Там это очень помогло. Тем не менее, извлеченный урок: если у вас есть несколько возможностей устранить свои выбросы, используйте их.
Мойовски
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.