Швидка лінійна регресія, міцна для людей, що втратили лих


50

Я маю справу з лінійними даними з випереджаючими людьми, деякі з яких мають більше 5 стандартних відхилень від розрахункової лінії регресії. Я шукаю техніку лінійної регресії, яка зменшує вплив цих точок.

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

У літературі існує безліч можливих підходів: найменше обрізані квадрати, квантильна регресія, m-оцінки тощо. Я дійсно не знаю, який підхід мені слід спробувати, тому я шукаю пропозиції. Для мене важливим є те, що обраний метод повинен бути швидким, оскільки надійний регрес буде обчислюватися на кожному кроці процедури оптимізації. Дуже дякую!


2
Метод, який ви не згадали, - це використання помилок Student- з невідомими ступенями свободи. Однак це може бути не таким швидким, як потрібно. t

@Procrastinator: (Неважко собі уявити конфігурацію випускників, де) це не вийде.
user603

@ user603 Це справедливо для будь-якого методу, немає панацеї;). Я просто вказав на інший метод. +1 до вашої відповіді.

3
@Procrastinator: Я погоджуюся, що всі методи не зможуть досягти певної швидкості забруднення . І "провал" у цьому контексті можна визначити кількісно та емпірично. Але ідея полягає в тому, щоб все-таки віддати перевагу тим методам, які зазнають невдачі лише при більш високих темпах забруднення.
user603

4
Оскільки це робиться неодноразово під час процедури оптимізації, можливо, дані регресії (зрештою) змінюються повільно. Це підказує алгоритм, адаптований до вашої ситуації: почніть з певної форми стійкої регресії, але, роблячи невеликі кроки під час оптимізації, просто припустіть на наступному кроці, що будь-який попередній авангардист залишатиметься позаду. Використовуйте OLS за даними, а потім перевірте, чи очікувані люди все ще залишаються поза межами. Якщо ні, перезапустіть надійну процедуру, але якщо так - що може траплятися часто - ви збережете багато обчислень.
whuber

Відповіді:


55

Якщо ваші дані містять єдиний зовнішній вигляд, то їх можна надійно знайти, використовуючи запропонований підхід (без ітерацій, проте). Формальний підхід до цього є

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

Для того, щоб знайти більше, ніж один чужий, протягом багатьох років провідним методом була так звана оцінка сімейного підходу. Це досить широке сімейство оцінювачів, яке включає М оцінку регресії Губера, регресію L1 Коенкера, а також підхід, запропонований Прокастінатором у своєму коментарі до вашого запитання. В М - оцінці з опуклими р функціями має ту перевагу , що вони мають приблизно таку ж числову складність в оцінці регулярної регресії. Великим недоліком є ​​те, що вони можуть надійно знайти людей, які:MMMρ

  • рівень забруднення вашого зразка менше деp- кількість проектних змінних,11+pp
  • або якщо ті, хто не виходить за рамки дизайнерського простору (Елліс та Моргенталер (1992)).

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

Якщо ваші дані містять більше зовні також потенційно виходить на проектний простір, то знаходження їх означає розв’язання комбінаторної задачі (рівнозначно рішенняM-оцінювача зфункцієюповторного облудження / невипуклогоρ). np+1Mρ

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

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

З огляду на те, що ви не вказали у своєму запитанні, я перелічу деякі посилання на випадок p < 20 . Ось деякі статті, які пояснюють це більш детально у цій серії оглядових статей:pp<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! У моїй проблемі і в дизайнерському просторі немає залишків (тому що пояснювальні змінні імітуються з нормального розподілу). То, може, я можу спробувати з m-оцінкою? У будь-якому випадку всі інші посилання, які ви мені дали, будуть дуже корисні, як тільки я почну працювати над більш складними програмами ( p >> 10) свого алгоритму. p<10p
Маттео Фасіоло

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

1
"Великою перевагою є те, що більшість цих алгоритмів бентежно паралельні". Мені подобається формулювання. ;)
Mateen Ulhaq


19

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

(n2)O(n2)O(n)O(nlogn)

Редагувати: user603 попросив перевагу регресії Теїла над регресією L1. Відповідь - інше, що я згадав - впливові моменти:

Theil_vs_L1

L1rqquantregL1


нжурналнл1

1
@ user603 Дивіться правки.
Glen_b

(+1) дякую за редагування. Важливо вказати цю особливість.
user603

1
І яка перевага перед MM-кошторисом, таким як lmrob () з R Robustbase або навіть {не потрібно встановлювати нічого, крім 'base R'} rlm (*, ... method = "MM") з пакету MASS? Вони мають повну точку пробою (~ 50%) і, ймовірно, навіть ефективніші за норми.
Мартін Махлер

1
@ MartinMächler Схоже, ви сперечаєтесь з претензією, яку я там не висував. Якщо ви хочете запропонувати відповідь, яка також містить порівняння інших надійних оцінювачів, особливо тих, які приблизно так просто зрозуміти для когось на рівні ОП, я б з нетерпінням прочитав його.
Glen_b

12

Ви подивилися на RANSAC (Wikipedia) ?

Це повинно бути добре для обчислення розумної лінійної моделі, навіть коли існує велика кількість відхаркувань та шуму, оскільки вона будується на припущенні, що лише частина даних фактично належить до механізму.


Так, але додавання простого кроку повторного зважування дає оцінювач (LTS), який є настільки ж надійним і настільки ж стабільнішим та статистично ефективним. Чому б не зробити?
user603

1

л1

у=Ах+е
е
у-Ах-е22+λе1
W=гiаг(шi)
у-Ах-е22+λWе1

Більше інформації можна знайти тут: http://statweb.stanford.edu/~candes/papers/GrossErrorsSmallErrors.pdf


Ви пробували це на прикладі Glen_b (якщо ви додасте друге набір поруч із тим, де він розмістив) чи я розмістив повідомлення?
user603

@ user603 ні, я просто застосував це на більш практичних випадках для 3D-моделювання із зображень камер. Там це дуже допомогло. Однак засвоєний урок такий: Якщо у вас є кілька можливостей усунути людей, що втратили життя, використовуйте їх.
mojovski
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.