Який найкращий спосіб визначити людей, що переживають люди в багатовимірних даних?


94

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

Я думаю не про проблему регресії, а про справжні багатовимірні дані. Тож відповіді, що включають надійну регресію чи обчислювальні важелі, не корисні.

Однією з можливостей було б обчислити бали основного компонента і шукати зовнішній вигляд у двовимірному розсіюванні перших двох балів. Це гарантовано працює? Чи є кращі підходи?


3
Якщо матриця розповсюдження не сприймає її, ви можете спробувати 3D-розсіювач. Звичайно, це не вийде з 4D, але тоді ви можете створити 4-й вимір як час і зробити фільм. :)
Шейн

А як щодо (ієрархічного) кластерного аналізу?
Андрій

11
5-й D кольорового відтінку, 6-й D за кольором інтенсивності, 7-й D за розміром точки і ми можемо піти ;-)

Відповіді:


26

Погляньте на пакет mvoutlier, який покладається на впорядковані міцні відстані махаланобіса, як це запропонував @drknexus.


4
Я особисто не вірю в цей пакет! Я думаю, що це лише шум науки. Цей тип теорій дуже хороший для моделювання даних, тоді як лише pffff для реальних даних. Я використовував цей пакет, щоб, наприклад, виявляти людей, що не впадають у життя :-) На жаль половина моїх даних виявлено як люди, що переживають люди :-D це смішно, як люди просто публікують деякі (я не знаю, як це назвати). якщо у вас є якісь коментарі, я буду радий бачити. У нас є багато типів екслієрів, але чи варто їх просто видалити з наших даних? Я вірю НЕ.
Учень

1
Чи можете ви пояснити, коли і чому це працює?
eric_kernfeld

19

Я думаю, що відповідь Робіна Жирара спрацювала б досить добре для 3-х і, можливо, 4-х вимірів, але прокляття розмірності завадило б йому працювати поза цим. Однак його пропозиція привела мене до спорідненого підходу, який полягає у застосуванні перехресної перевірки щільності ядра до перших трьох основних показників компонентів. Тоді з дуже об'ємним набором даних все-таки можна обробити нормально.

Підсумовуючи, для i = 1 до n

  1. Обчисліть оцінку щільності перших трьох основних показників компонентів, отриманих з набору даних без Xi.
  2. Обчисліть ймовірність Xi для щільності, оціненої на кроці 1. Назвіть її Li.

кінець для

Сортуйте Li (для i = 1, .., n), і ті, хто має ймовірність нижче деякого порогового значення, - ті, хто випадає. Я не впевнений, який би був хороший поріг - я залишу це для тих, хто пише про це папір! Однією з можливостей є те, щоб зробити поле для значень журналу (Li) і побачити, які відшаровування виявлені в негативному кінці.


Дякую за цю відповідь (має бути коментар?) Як я вже згадував, як коментар до високого виміру відповіді Річ - це не проблема (навіть 1000 може працювати), якщо ви зробите параметричне структурне припущення.
Робін Жирард

@rob "Я не впевнений, який би був хороший поріг", це було б метою багаторазової процедури тестування, яку я згадав .... але я повністю погоджуюся, що речі потрібно заповнити, і мені дуже подобається виявлення зовнішньої форми в виявлення зовні! хто хоче написати папір :)?
Робін Жирард

4
(-1) Це трохи засмучує, що прийнята відповідь на це питання не є ні корисною (наприклад, занадто розпливчастою і не реалізованою), ні науково правильною (як, навіть, не помилкою: наскільки я знаю, вона навіть не згадується в відповідна література).
user603

6
(-1) це здається невірною відповіддю - цей метод не виявить людей, що не мають права! легко уявити 3D-хмару, схожу на млинець з точок, спроектованих PCA на 2D-площині та на 1 сторонній точці, що знаходиться далеко від площини, але його проекція знаходиться прямо посередині прогнозованої хмари, тому "щільність ядра" точка в площині 2D буде високою, хоча це і зовні.
Кочеде

1
Я думаю, що PCA тут буде проблематичним. PCA - це наближення, яке враховує основний внесок у дисперсію. Але тут сама мета полягає в тому, щоб знайти людей, що не переживають людей - чи не вони "потраплять між тріщинами"?
Омрі Атія

18

Педагогічне резюме різних методів можна знайти в (1)

Для деяких порівняльних чисельних порівнянь різних методів, перелічених там, ви можете перевірити (2) та (3) .

існує багато старих (і менш вичерпних) чисельних порівнянь, які зазвичай зустрічаються в книгах. Ви знайдете, наприклад, на сторінках 142-143 (4).

Зауважте, що всі розглянуті тут методи мають реалізацію з відкритим вихідним кодом, головним чином через пакет rrcov .

  • (1) P. Rousseeuw та M. Hubert (2013) Високі оцінювачі розбиття багатоваріантної локації та розсіювання.
  • (2) М. Губерт, П. Руссов, К. Вакілі (2013). Формати зміщення надійних оцінювачів коваріації: емпіричне дослідження. Статистичні статті.
  • (3) К. Вакілі та Е. Шмітт (2014). Пошук багатоваріантних людей з FastPCS. Обчислювальна статистика та аналіз даних.
  • (4) Maronna RA, Martin RD та Yohai VJ (2006). Надійна статистика: теорія та методи. Вілі, Нью-Йорк.

Я б не рекомендував документи, що базуються на моделюваних даних, я вважаю, що перші два документи базуються на моделюваних даних. Я працюю над реальними даними і РІДНО Я ті, що імітують сильних людей, що перебувають в силі, виявляються у даних. Я особисто ніколи не знаходив набір даних з дуже сильними людьми. Якщо ви знаєте якісь реальні дані, будь ласка, не соромтеся поділитися
Студент

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

1
Я вже задавав загальне запитання. Ви можете знайти моє повідомлення тут stats.stackexchange.com/questions/139645/…
Учень

13

Я б зробив якийсь "залишити один із алгоритму тестування" (n - кількість даних):

для i = 1 до n

  1. обчислити оцінку щільності безлічі даних , отриманих шляхом кидати гетьXi . (Ця оцінка щільності повинна проводитися з деяким припущенням, якщо розмірність висока, наприклад, гауссова припущення, для якого оцінка щільності проста: середня та коваріаційна)
  2. Обчисліть ймовірність для щільності, оціненої на кроці 1Xi . називаємо це .Li

кінець для

сортуйте (для i = 1, .., n) і скористайтеся процедурою тестування декількох гіпотез, щоб сказати, що не добре ...Li

Це буде спрацьовувати, якщо n достатньо велике ... ви також можете використовувати стратегію "залишити k out", яка може бути більш сприятливою, якщо у вас є "групи" людей, що залишилися ...


Як би це вчинити з випадками, коли ви не знаєте, скільки людей у ​​вас є, але коли у пунктах N-1 все ще є ухил, оскільки вони включають людей, що належать до інших?
Бенджамін Баньє

1
якщо n досить велике і кількість сторонніх малих, то це зміщення незначне. Якщо тоді існує велика кількість екслієрів, то, можливо, це не пережиті люди, і все одно, як я вже згадував, ви можете використовувати стратегію відпуску ... (у цьому випадку ви повинні знайти стратегію, щоб уникнути відстеження всіх конфігурацій, які можуть бути бути NP важким ...), і якщо ви не знаєте k, ви можете спробувати багато значень для k і зберегти найбільш релевент.
Робін Жирард

1
Це хороша ідея, але якщо я правильно її зрозумів, то, здається, розширити ідею "зовнішнього", щоб включити будь-яке значення в набір даних, віддалений від інших. Наприклад, у партії {-110 [1] -90, 0, 90 [1] 110} з 43 цілих чисел не буде вашою процедурою ідентифікувати 0 (що є медіаною цих чисел!) Як унікальний "outlier "?
whuber

@whuber гарне питання! без структурного припущення нуль може бути видалений. Однак ви можете припустити, що розподіл унімодальний і обчислити щільність відповідно. У цьому випадку структурне припущення (унімодальність) допоможе процедурі побачити нуль як "нормальне" значення. Зрештою, ти думаєш, що це нормально, бо ти маєш такий тип "структурного припущення" в голові :)?
Робін Жирард

3
Мені непокоїть деякі аспекти цієї процедури; мій приклад якраз вказує на одну з причин. сильно взаємопов'язані, так що неясно , які «процедури тестування декількох гіпотез» була б застосована. Більше того, буде залежати від оцінки щільності - як ви вказуєте - так, що відкриється ціла батарея питань щодо того, як найкраще оцінити щільність для цієї мети. Це проблеми навіть з параметричними одновимірними процедурами виявлення зовнішніх, тому я не очікую, що їх буде легше вирішити в мультиваріантному випадку. L iLiLi
whuber

12

Серед опорних пунктів мінімального об'єму, що обмежує еліпсоїд, можна знайти кандидатів на "чужих людей". ( Ефективні алгоритми пошуку цих точок у досить високих розмірах, як точно, так і приблизно, були винайдені в ряді робіт у 1970-х роках, оскільки ця проблема тісно пов'язана з питанням експериментального проектування.)


12

Я бачив новий підхід, проведений аналізом основних компонентів IT Jolliffe . Ви запускаєте PCA на своїх даних (Примітка. PCA може бути досить корисним інструментом для вивчення даних), але замість того, щоб дивитись на перші кілька основних компонентів (ПК), ви плануєте кілька останніх ПК. Ці ПК - це лінійні зв’язки між вашими змінними з найменшою можливою дисперсією. Таким чином вони виявляють "точні" або близькі до точних багатоваріантних відносин у ваших даних.

Графік балів на ПК для останнього ПК покаже, що люди, які легко переслідують, не легко виявити, переглядаючи кожну змінну окремо. Один із прикладів - зріст і вага - той, хто має "вище середнього" зросту і "нижче середнього" ваги, буде виявлений останнім ПК висоти і ваги (якщо вважати, що вони позитивно співвідносяться), навіть якби їхній зріст і вага не були " крайній "індивідуально (наприклад, людина, яка мала 180см і 60кг).


11

Я не бачив, щоб хтось згадував функції впливу . Я вперше побачив цю ідею у багатоваріантній книзі Гнанадесікана .

В одному вимірі зовнішній вигляд є або надзвичайно великим, або надзвичайно малим значенням. При багатоваріантному аналізі це спостереження, вилучене з основної маси даних. Але яку метрику ми повинні використати, щоб визначити екстремальність для "чужих"? Є багато варіантів. Відстань Махаланобіс - лише одна. Я вважаю, що шукати будь-який тип спорядження марно і контрпродуктивно. Я б запитав, чому ви дбаєте про сторонніх людей? Оцінюючи середнє значення, вони можуть мати великий вплив на цю оцінку. Міцні оцінювачі мають знижену вагу і вміщують людей, які не мають статусу людей, але вони офіційно не перевіряють їх. В даний час в регресії, люди, що відпадають, - як точки важеля - можуть мати великий вплив на параметри схилу в моделі. За двовимірними даними вони можуть надмірно впливати на розрахунковий коефіцієнт кореляції, а в трьох і більше вимірах - коефіцієнт множинної кореляції.

Функції впливу були введені Гампелем як інструмент для надійної оцінки, і Малловс написав приємний неопублікований документ, який виступає за їх використання. Функція впливу - це функція точки, в якій ви знаходитесь, у n-мірному просторі та параметра. Він по суті вимірює різницю між оцінкою параметра з точкою в обчисленні і з опущеною точкою. Замість того, щоб піти на проблему зробити розрахунок двох оцінок і взяти різницю, часто ви можете отримати формулу для цього. Тоді контури постійного впливу підказують вам крайній напрямок щодо оцінки цього параметра і, отже, підказують, де в n-мірному просторі шукати зовнішню сторону.

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


1
+1 Дуже приємна ідея, особливо для послідовної орієнтації на мету аналізу.
whuber

Аналогічна ідея - випадковий вибірковий консенсус ( RANSAC ).
GeoMatt22

8

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


4
Ознайомтеся з функцією «outlier» у пакеті randomForest lib.stat.cmu.edu/R/CRAN/web/packages/randomForest/…
Джордж Донтас

7

Для помірних розмірів, як-от 3, якась техніка перехресної перевірки ядра, як це запропоновано в іншому місці, здається розумною, і це найкраще, що я можу запропонувати.

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

Без якогось розподілу припущення, яке дозволить вам перетворити його на ймовірнісну класифікаційну проблему або хоча б якесь обертання, яке дозволяє розділити ваш простір на "розміри шуму" та "інформативні розміри", я думаю, що геометрія просторів великого розміру збирається заборонити будь-яку легку - або, принаймні, надійну - ідентифікацію людей, що не існують.


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

1
Дуже проникливий, що прокляття розмірності перешкоджає вирішенню без припущень щодо розповсюдження (якщо ви просто не маєте божевільних обсягів даних або розмір невеликий)
Джон Робертсон,

6

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


Так, я міг обчислити відстань кожного махаланобіса кожного спостереження від середнього значення даних. Але спостереження, що мають найбільшу відстань від середньої величини, не обов'язково є багатовимірними людьми. Подумайте про двовимірний розсіювач з високою кореляцією. Аутлер може бути за межами основної хмари точок, але не так далеко від середнього.
Роб Хайндман

5

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

Прикладом може бути карта Кохонена . Хороший орієнтир для R - це "Самоорганізовані та суперорганізуючі карти в R: Кохонен Пакет" .


4

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

Я копіюю щось із цього запитання щодо Stackoverflow, на який я раніше відповідав, який містить приклад R- коду

Спочатку ми створимо деякі дані, а потім помажемо їх зовнішньою формою;

> testout<-data.frame(X1=rnorm(50,mean=50,sd=10),X2=rnorm(50,mean=5,sd=1.5),Y=rnorm(50,mean=200,sd=25)) 
> #Taint the Data 
> testout$X1[10]<-5 
> testout$X2[10]<-5 
> testout$Y[10]<-530 

> testout 
         X1         X2        Y 
1  44.20043  1.5259458 169.3296 
2  40.46721  5.8437076 200.9038 
3  48.20571  3.8243373 189.4652 
4  60.09808  4.6609190 177.5159 
5  50.23627  2.6193455 210.4360 
6  43.50972  5.8212863 203.8361 
7  44.95626  7.8368405 236.5821 
8  66.14391  3.6828843 171.9624 
9  45.53040  4.8311616 187.0553 
10  5.00000  5.0000000 530.0000 
11 64.71719  6.4007245 164.8052 
12 54.43665  7.8695891 192.8824 
13 45.78278  4.9921489 182.2957 
14 49.59998  4.7716099 146.3090 
<snip> 
48 26.55487  5.8082497 189.7901 
49 45.28317  5.0219647 208.1318 
50 44.84145  3.6252663 251.5620 

Часто найкорисніше вивчити дані графічно (ти мозок набагато краще, коли помічаєш людей, що випадають, ніж математика)

> #Use Boxplot to Review the Data 
> boxplot(testout$X1, ylab="X1") 
> boxplot(testout$X2, ylab="X2") 
> boxplot(testout$Y, ylab="Y") 

Потім ви можете використовувати статистику для обчислення критичних відрізаних значень, використовуючи тут тест Лунда (Див. Лунд, RE 1975, "Таблиці для приблизного тесту для випускників у лінійних моделях", Технометрія, т. 17, № 4, стор. 473 -476. І Прескотт, С. 1975, "Орієнтовний тест для випускників у лінійних моделях", Технометрія, т. 17, № 1, с. 129-132.)

> #Alternative approach using Lund Test 
> lundcrit<-function(a, n, q) { 
+ # Calculates a Critical value for Outlier Test according to Lund 
+ # See Lund, R. E. 1975, "Tables for An Approximate Test for Outliers in Linear Models", Technometrics, vol. 17, no. 4, pp. 473-476. 
+ # and Prescott, P. 1975, "An Approximate Test for Outliers in Linear Models", Technometrics, vol. 17, no. 1, pp. 129-132. 
+ # a = alpha 
+ # n = Number of data elements 
+ # q = Number of independent Variables (including intercept) 
+ F<-qf(c(1-(a/n)),df1=1,df2=n-q-1,lower.tail=TRUE) 
+ crit<-((n-q)*F/(n-q-1+F))^0.5 
+ crit 
+ } 

> testoutlm<-lm(Y~X1+X2,data=testout) 

> testout$fitted<-fitted(testoutlm) 

> testout$residual<-residuals(testoutlm) 

> testout$standardresid<-rstandard(testoutlm) 

> n<-nrow(testout) 

> q<-length(testoutlm$coefficients) 

> crit<-lundcrit(0.1,n,q) 

> testout$Ynew<-ifelse(testout$standardresid>crit,NA,testout$Y) 

> testout 
         X1         X2        Y    newX1   fitted    residual standardresid 
1  44.20043  1.5259458 169.3296 44.20043 209.8467 -40.5171222  -1.009507695 
2  40.46721  5.8437076 200.9038 40.46721 231.9221 -31.0183107  -0.747624895 
3  48.20571  3.8243373 189.4652 48.20571 203.4786 -14.0134646  -0.335955648 
4  60.09808  4.6609190 177.5159 60.09808 169.6108   7.9050960   0.190908291 
5  50.23627  2.6193455 210.4360 50.23627 194.3285  16.1075799   0.391537883 
6  43.50972  5.8212863 203.8361 43.50972 222.6667 -18.8306252  -0.452070155 
7  44.95626  7.8368405 236.5821 44.95626 223.3287  13.2534226   0.326339981 
8  66.14391  3.6828843 171.9624 66.14391 148.8870  23.0754677   0.568829360 
9  45.53040  4.8311616 187.0553 45.53040 214.0832 -27.0279262  -0.646090667 
10  5.00000  5.0000000 530.0000       NA 337.0535 192.9465135   5.714275585 
11 64.71719  6.4007245 164.8052 64.71719 159.9911   4.8141018   0.118618011 
12 54.43665  7.8695891 192.8824 54.43665 194.7454  -1.8630426  -0.046004311 
13 45.78278  4.9921489 182.2957 45.78278 213.7223 -31.4266180  -0.751115595 
14 49.59998  4.7716099 146.3090 49.59998 201.6296 -55.3205552  -1.321042392 
15 45.07720  4.2355525 192.9041 45.07720 213.9655 -21.0613819  -0.504406009 
16 62.27717  7.1518606 186.6482 62.27717 169.2455  17.4027250   0.430262983 
17 48.50446  3.0712422 228.3253 48.50446 200.6938  27.6314695   0.667366651 
18 65.49983  5.4609713 184.8983 65.49983 155.2768  29.6214506   0.726319931 
19 44.38387  4.9305222 213.9378 44.38387 217.7981  -3.8603382  -0.092354925 
20 43.52883  8.3777627 203.5657 43.52883 228.9961 -25.4303732  -0.634725264 
<snip> 
49 45.28317  5.0219647 208.1318 45.28317 215.3075  -7.1756966  -0.171560291 
50 44.84145  3.6252663 251.5620 44.84145 213.1535  38.4084869   0.923804784 
       Ynew 
1  169.3296 
2  200.9038 
3  189.4652 
4  177.5159 
5  210.4360 
6  203.8361 
7  236.5821 
8  171.9624 
9  187.0553 
10       NA 
11 164.8052 
12 192.8824 
13 182.2957 
14 146.3090 
15 192.9041 
16 186.6482 
17 228.3253 
18 184.8983 
19 213.9378 
20 203.5657 
<snip> 
49 208.1318 
50 251.5620 

Очевидно, є й інші чужі тести, ніж тест Лунда (Груббс спадає на думку), але я не впевнений, які краще підходять для багатовимірних даних.


1
Уніваріантні боксерки корисні для того, щоб помітити одноманітні люди, що вижили. Але вони можуть повністю пропустити багатоваріантні люди. Ідея регресії нормальна, якби у мене було Y і купа змінних X. Але, як я вже говорив у запитанні, немає Y, тому регрес недоцільний.
Роб Хайндман

@RobHyndman - можна виправити Y (зробити його постійним) і спробувати моделювати мультирегресію без перехоплення . Це прекрасно працює на практиці. По суті, це перетворює принципово непідконтрольну проблему, яка є типовим виявленням аномалій, у наглядову.
аріельф

@arielf Цікаво. У вас є посилання на це?
Роб Хайндман

@RobHyndman не є науковою роботою, але, можливо, краще, ви можете спробувати самостійно. Дивіться мою сторінку github на vw-top-errors@ goo.gl/l7SLlB (зауважте, що в прикладах там є Y, але я використовував ту саму техніку, дуже успішно і для непідконтрольних проблем, виправляючи Y.)
arielf

1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.