Обнаружение выбросов в данных подсчета

21

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

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

counts1=[1 1 1 0 2 1 1 0 0 1 1 1 1 1 0 0 0 0 1 2 1 1 2 1 1 1 1 0 0 1 0 1 1 1 1 0 
         0 0 0 0 1 2 1 1 1 1 1 1 0 1 1 2 0 0 0 1 0 1 2 1 1 0 2 1 1 1 0 0 1 0 0 0 
         2 0 1 1 0 2 1 0 1 1 0 0 2 1 0 1 1 1 1 2 0 3]
counts2=[0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
         1 1 0 0 0]
counts3=[14 13 14 14 14 14 13 14 14 14 14 14 15 14 14 14 14 14 14 15 14 13 14 14 
         15 12 13 17 13 14 14 14 14 15 14 14 13 14 13 14 14 14 14 13 14 14 14 15 
         15 14 14 14 14 14 15 14 1414 14 15 14 14 14 14 14 14 14 14 14 14 14 14 13 16]
counts4=[0 3 1.......]
and so on up to counts3500.

Сначала я подумал, что мне нужно написать цикл на Python или R, который бы применял набор моделей для каждого дистрибутива и выбирал наилучшую подходящую модель в соответствии с AIC или другой (возможно, fitdistrplus в R?). Затем я мог бы спросить, каковы были крайние значения для данного распределения (например, количество, попадающее в хвосты, будет ли число «4» выбросом в распределении counts1 выше?). Однако я не уверен, что это правильная стратегия, и мне пришло в голову, что может быть простая методология определения выбросов в данных подсчета, о которых я не знал. Я много искал и не нашел ничего подходящего для моей проблемы, учитывая количество дистрибутивов, которые я хочу посмотреть.

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

Джо Гомфус
источник

Ответы:

23

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

N(0,1)

x<-c(-2.21,-1.84,-.95,-.91,-.36,-.19,-.11,-.1,.18,
.3,.31,.43,.51,.64,.67,.72,1.22,1.35,8.1,17.6)

(последние два действительно должны быть 0,81 и 1,76, но были случайно введены в заблуждение).

Использование правила обнаружения выбросов на основе сравнения статистики

|Икся-пр(Икся)|SD(Икся)

SDSD

Если бы вы использовали надежную статистику вместо этого:

|Икся-мед(Икся)|Сумасшедший(Икся)

ZSD

(в интересах полноты я должен отметить, что некоторые люди, даже в этом возрасте и в этот день, предпочитают придерживаться необработанной оценки без обработки, равной 4,35, а не использовать более точную оценку, основанную на усечении, но для меня это непонятно )

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

Икс

Yзнак равно2Икс

Y>мед(Y)+3

Икс

YN(мед(Y),1)

λ

λλзнак равно3

п

user603
источник