Я имею дело с линейными данными с выбросами, некоторые из которых находятся на расстоянии более 5 стандартных отклонений от расчетной линии регрессии. Я ищу технику линейной регрессии, которая уменьшает влияние этих точек.
Пока что я сделал, чтобы оценить линию регрессии со всеми данными, затем отбросить точку данных с очень большими квадратами остатков (скажем, верхние 10%) и повторить регрессию без этих точек.
В литературе существует множество возможных подходов: наименьшие квадраты, квантильная регрессия, м-оценки и т. Д. Я действительно не знаю, какой подход мне следует попробовать, поэтому я ищу предложения. Для меня важно, чтобы выбранный метод был быстрым, потому что устойчивая регрессия будет вычисляться на каждом этапе процедуры оптимизации. Большое спасибо!
источник
Ответы:
Если ваши данные содержат один выброс, то их можно надежно найти, используя предложенный вами подход (хотя и без итераций). Формальный подход к этому
Для нахождения более чем одного выброса на протяжении многих лет ведущим методом было так называемое семейство подходов с оценкой. Это довольно широкое семейство оценок , который включает Хьюбер оценщик регрессии, Koenker в L1 регрессия, а также подход , предложенный Procastinator в своем комментарии на ваш вопрос. В - оценке с выпуклой функции имеет то преимущество , что они имеют примерно такую же числовую сложность в оценке регулярной регрессии. Большим недостатком является то, что они могут надежно найти выбросы только в том случае, если:М М ρM M M ρ
Вы можете найти хорошую реализацию ( ) оценок регрессии в пакете ( ) . л 1M l1
robustbase
quantreg
R
Если ваши данные содержат больше выбросов, потенциально также выделяющихся из пространства проектирования, то их нахождение равносильно решению комбинаторной задачи (эквивалентно решению оценки с По убыванию / невыпуклая функция). Mρ⌊np+1⌋ M ρ
За последние 20 лет (и особенно последние 10) было разработано большое количество быстрых и надежных алгоритмов обнаружения выбросов, чтобы приблизительно решить эту комбинаторную проблему. В настоящее время они широко применяются в самых популярных статистических пакетах (R, Matlab, SAS, STATA, ...).
Тем не менее, численная сложность обнаружения выбросов с помощью этих подходов обычно имеет порядок . Большинство алгоритмов могут быть использованы на практике для значений в подростковом возрасте. Обычно эти алгоритмы являются линейными по (количеству наблюдений), поэтому количество наблюдений не является проблемой. Большим преимуществом является то, что большинство этих алгоритмов смущающе параллельны. Совсем недавно было предложено много подходов, специально разработанных для данных более высокого размера.р нO(2p) p n
Учитывая, что вы не указали в своем вопросе, я перечислю некоторые ссылки для случая . Вот некоторые статьи, которые объясняют это более подробно в этой серии обзорных статей:р < 20p p<20
Недавний справочник по проблеме идентификации выбросов:
Эти (и многие другие варианты) методы реализованы (среди прочего) в пакете.
robustbase
R
источник
Для простой регрессии (один x) есть что-то, что нужно сказать для линии Тейла-Сена с точки зрения устойчивости к y-выбросам и к влиятельным точкам, а также в целом к хорошей эффективности (по нормали) по сравнению с LS для наклона. Точка развала склона составляет почти 30%; до тех пор, пока у перехвата (существует множество возможных перехватов, которые использовали люди) нет более низкой разбивки, вся процедура вполне справляется с значительной долей загрязнения.
Его скорость может показаться плохой - медиана наклонов выглядит как даже с медианой - но я помню, что это можно сделать быстрее если скорость действительно проблема ( , я полагаю)(n2) O(n2) O(n) O(nlogn)
Редактировать: user603 попросил преимущество регрессии Тейла над регрессией L1. Ответ - другая вещь, которую я упомянул - влиятельные моменты:
Красная линия соответствует (из функции в пакете). Зеленый цвет подходит под наклоном Тейла. Все, что требуется, - это одиночная опечатка в значении x - например, 533 вместо 53 - и такое может произойти. Таким образом, подгонка не является устойчивой к одной опечатке в x-пространстве.L1 L1
rq
quantreg
источник
Вы смотрели на RANSAC (Википедия) ?
Это должно быть хорошо при расчете разумной линейной модели, даже когда есть много выбросов и шумов, так как она основана на предположении, что только часть данных будет фактически принадлежать механизму.
источник
Я считаю, что оштрафован на регресса ошибок. Вы также можете использовать его итеративно и пересчитывать выборки, которые не очень согласуются с решением. Основная идея - дополнить вашу модель ошибками: где - неизвестный вектор ошибок. Теперь вы выполняете регрессию для . Интересно, что вы, конечно, можете использовать «плавленое лассо» для этого, когда вы можете заранее оценить достоверность ваших измерений и поместить это в качестве взвешивания в и для решения новой малозаметной задачиl1
Дополнительную информацию можно найти здесь: http://statweb.stanford.edu/~candes/papers/GrossErrorsSmallErrors.pdf
источник