Как следует учитывать выбросы в линейном регрессионном анализе?

73

Часто статистическому аналитику передают набор данных и просят соответствовать модели, используя метод, такой как линейная регрессия. Очень часто набор данных сопровождается заявлением об отказе, похожем на «О, да, мы испортили сбор некоторых из этих точек данных - делай, что можешь».

Эта ситуация приводит к припадкам регрессии, на которые сильно влияет присутствие выбросов, которые могут быть ошибочными данными. Учитывая следующее:

  • С научной и моральной точек зрения опасно выбрасывать данные только по той причине, что они «плохо выглядят».

  • В реальной жизни люди, которые собирали данные, часто не могут ответить на такие вопросы, как «при создании этого набора данных, с какими точками вы столкнулись, точно?»

Какие статистические тесты или эмпирические правила можно использовать в качестве основы для исключения выбросов в линейном регрессионном анализе?

Существуют ли какие-либо особые соображения для полилинейной регрессии?

остроносая плоскодонная шлюпка
источник
Связанный: возможный обман этого: stats.stackexchange.com/questions/37865/… | R howto: stats.stackexchange.com/questions/53227/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Ответы:

33

Вместо того, чтобы исключать выбросы, вы можете использовать надежный метод регрессии. Например, в R вместо функции может использоваться rlm()функция из пакета MASSlm() . Метод оценки можно настроить так, чтобы он был более или менее устойчивым к выбросам.

Роб Хиндман
источник
Если я использую функцию rlm (), я вижу, что коэффициенты и их t-тесты производятся. Но как я могу получить f-тест, значения R-квадрата отсюда? Я полагаю, что я не могу просто извлечь эти значения f-критерия и квадрата R из простых итоговых результатов 'lm', если я прав.
Эрик
1
Для устойчивой регрессии допущения, лежащие в основе F-теста, больше не выполняются, и R ^ 2 можно определить несколькими способами, которые больше не являются эквивалентными. См. Stats.idre.ucla.edu/stata/faq/… для некоторого обсуждения этого для Stata.
Роб Хиндман,
См. Также stats.stackexchange.com/a/68367/159
Роб Хиндман
Но я нахожу команду f.robftest из пакета sfsmisc, которая выдает результат f-теста. Могу ли я использовать этот результат для определения статистики f-теста для rlm? Кроме того, я, кажется, получаю R квадрат, просто вводя значения в математическую формулу R квадрат как 1 - сумма (остатки (rlm (у ~ х)) ^ 2) / сумма ((у-среднее (у)) ^ 2) , Для значений t-критерия, чтобы проверить значимость коэффициентов, я получаю значения t-критерия из сводки (rlm (y ~ x)), которую я сравниваю со значениями t из 95% доверительных уровней или около того. Могу ли я использовать эти методы?
Эрик,
22

Иногда выбросы являются плохими данными и должны быть исключены, например, опечатки. Иногда это Уэйн Гретцки или Майкл Джордан, и их следует оставить.

Методы обнаружения выбросов включают в себя:

Одномерный -> боксплот. вне 1,5-кратного межквартильного диапазона является выбросом.

Bivariate -> scatterplot с эллипсом уверенности. за пределами, скажем, 95% -ого эллипса доверия является выбросом.

Многомерный -> расстояние Махаланобиса D2

Отметьте эти наблюдения как выбросы.

Запустите логистическую регрессию (на Y = IsOutlier), чтобы увидеть, есть ли какие-либо систематические шаблоны.

Удалите те, которые вы можете продемонстрировать, что они не представляют какую-либо подгруппу.

Нил Макгиган
источник
И если у вас все еще есть выбросы, рассмотрите возможность использования модели, отличной от линейной. Например, если вы используете модель со степенным законом, подобным поведению, Майкл Джордан больше не является выбросом (с точки зрения способности моделей приспосабливаться к нему).
drevicko
1
Согласитесь с большинством сказанного здесь, но я хотел бы добавить дополнительное предостережение о том, что «выход за пределы интерквартильного диапазона в 1,5 раза является выбросом » - это соглашение , а не правило с какой-либо теоретической основой. Это не должно использоваться в качестве оправдания для исключения точек данных.
mkt - Восстановить Монику
20

Я действительно думаю, что есть что сказать, просто исключив выбросы. Линия регрессии должна суммировать данные. Из-за кредитного плеча у вас может возникнуть ситуация, когда 1% ваших данных влияет на уклон на 50%.

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

«Эта линия регрессии очень хорошо подходит для большинства данных. В 1% случаев появится значение, которое не соответствует этой тенденции, но эй, это безумный мир, ни одна система не идеальна»

Крис Били
источник
1
«Эй, это безумный мир, ни одна система не идеальна» +1 за это, мой друг! :)
bartektartanus
1
Рассмотрим другие модели, хотя. Мир полон удаленных «выбросов», которые были реальными данными, что привело к неспособности предсказать что-то действительно важное. Многие природные процессы имеют степенное поведение, подобное поведению с редкими экстремальными явлениями. Может показаться, что линейные модели соответствуют таким данным (хотя и не слишком хорошо), но их использование и удаление «выбросов» означает пропуск тех экстремальных событий, о которых обычно важно знать!
drevicko
10

Находчивый,

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

Я думаю, что лучший способ начать - спросить, имеют ли смысл даже выбросы, особенно с учетом других переменных, которые вы собрали. Например, действительно ли разумно, чтобы в вашем исследовании была женщина весом 600 фунтов, набранная из различных клиник спортивных травм? Или не странно ли, что человек перечисляет 55 лет или профессиональный опыт, когда ему только 60 лет? И так далее. Надеемся, что у вас есть разумные основания для того, чтобы либо выбросить их, либо заставить компиляторы данных перепроверить записи для вас.

Я также хотел бы предложить надежные методы регрессии и прозрачную отчетность по пропущенным наблюдениям, как предложили Роб и Крис соответственно.

Надеюсь, это поможет, Бренден

Brenden
источник
6

Я опубликовал метод определения выбросов в нелинейной регрессии, и его также можно использовать при подборе линейной модели.

HJ Motulsky и RE Браун. Обнаружение выбросов при подборе данных с помощью нелинейной регрессии - новый метод, основанный на надежной нелинейной регрессии и частоте ложных обнаружений . BMC Bioinformatics 2006, 7: 123

Харви Мотульский
источник
5

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

Первый - это расстояние Кука. Вы можете найти довольно хорошее объяснение этого в Википедии: http://en.wikipedia.org/wiki/Cook%27s_distance .

Чем выше расстояние Кука, тем более влиятельным (влияние на коэффициент регрессии) является наблюдение. Типичная точка отсечения для удаления наблюдения - это расстояние Кука = 4 / n (n - размер выборки).

Второй - DFFITS, который также хорошо освещен в Википедии: http://en.wikipedia.org/wiki/DFFITS . Типичной точкой отсечения для рассмотрения удаления является значение DFFITS, в 2 раза превышающее sqrt (k / n), где k - это число переменных, а n - размер выборки.

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

Sympa
источник
3

Мусор, мусор из ....

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

Вот некоторые типы шумов во входных данных мусора, которые обычно не соответствуют нормальному распределению:

  • Цифры отсутствуют или добавляются с данными, введенными вручную (с коэффициентом 10 или более)
  • Неправильные или неправильно преобразованные единицы (граммы против килограммов против фунтов; метры, футы, мили, км), возможно, из-за слияния нескольких наборов данных (Примечание. Считалось, что Марс-орбитер был потерян таким образом, поэтому даже ученые-ракетчики НАСА могут сделать это ошибка)
  • Использование кодов, таких как 0, -1, -99999 или 99999, чтобы обозначать что-то не числовое, например «не применимо» или «столбец недоступен», и просто выводить их в линейную модель вместе с действительными данными

Написание спецификации для того, что является «действительными данными» для каждого столбца, может помочь вам пометить недействительные данные. Например, рост человека в сантиметрах должен быть в диапазоне, скажем, 100-300см. Если вы нашли 1,8 для высоты, то это опечатка, и хотя вы можете предположить, что это 1,8 м и изменить ее на 180 - я бы сказал, что обычно безопаснее выбрасывать ее и лучше всего документировать как можно большую часть фильтрации.

Павел
источник
1

Для линейной регрессии вы можете использовать повторную срединную подгонку по прямой линии.

babelproofreader
источник
0

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

Исходя из опыта, исключение должно быть ограничено случаями неправильного ввода данных. Повторное взвешивание выбросов в модели линейной регрессии является очень хорошим компромиссным методом. Применение этого в R предлагается Робом. Отличный пример здесь: http://www.ats.ucla.edu/stat/r/dae/rreg.htm

Если исключение необходимо, «одно практическое правило» относится к статистике Dfbeta (измеряет изменение оценки при удалении выброса), так что если абсолютное значение статистики DfBeta превышает 2 / sqrt (n), то это подтверждает удаление выброс.

mkrasmus
источник