Выявление выбросов для нелинейной регрессии

11

Я занимаюсь исследованиями в области функциональной реакции клещей. Я хотел бы сделать регрессию для оценки параметров (скорость атаки и время обработки) функции Роджерса типа II. У меня есть набор данных измерений. Как я могу лучше всего определить выбросы?

Для моей регрессии я использую следующий сценарий в R (нелинейная регрессия): (набор дат представляет собой простой текстовый data.txtфайл с двумя столбцами, называемый файлом со N0значениями (количество исходной добычи) и FRзначениями (количество съеденной добычи в течение 24 часов):

library("nlstools")
dat <- read.delim("C:/data.txt")    
#Rogers type II model
a <- c(0,50)
b <- c(0,40)
plot(FR~N0,main="Rogers II normaal",xlim=a,ylim=b,xlab="N0",ylab="FR")
rogers.predII <- function(N0,a,h,T) {N0 - lambertW(a*h*N0*exp(-a*(T-h*N0)))/(a*h)}
params1 <- list(attackR3_N=0.04,Th3_N=1.46)
RogersII_N <-  nls(FR~rogers.predII(N0,attackR3_N,Th3_N,T=24),start=params1,data=dat,control=list(maxiter=    10000))
hatRIIN <- predict(RogersII_N)
lines(spline(N0,hatRIIN))
summary(RogersII_N)$parameters

Для построения графиков остатков я использую следующий скрипт:

res <- nlsResiduals (RogersII_N)
plot (res, type = 0)
hist (res$resi1,main="histogram residuals")
    qqnorm (res$resi1,main="QQ residuals")
hist (res$resi2,main="histogram normalised residuals")
    qqnorm (res$resi2,main="QQ normalised residuals")
par(mfrow=c(1,1))
boxplot (res$resi1,main="boxplot residuals")
    boxplot (res$resi2,main="boxplot normalised residuals")

Вопросов

  • Как я могу наилучшим образом определить, какие точки данных являются выбросами?
  • Могу ли я использовать в R тесты, которые являются объективными и показывают, какие точки данных являются выбросами?
Иоахим
источник

Ответы:

9

Несколько тестов на выбросы, в том числе Диксона и Грубба, доступны в outliersпакете в R. Список тестов см. В документации к пакету. Ссылки, описывающие тесты, приведены на страницах справки для соответствующих функций.

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

MånsT
источник
8

Я тоже не статистик. Поэтому я использую свои экспертные знания о данных, чтобы найти выбросы. Т.е. я ищу физические / биологические / любые причины, по которым одни измерения отличались от других.

В моем случае это, например,

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

Конечно, вы могли бы сказать нам подобные эффекты.

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

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

Хорошо это или нет, чтобы исключить данные (кто хочет найти выбросы только ради того, чтобы их получить?) Во многом зависит от того, какая задача стоит перед вами, и каковы «граничные условия» для этой задачи. Некоторые примеры:

  • Вы только что обнаружили новый подвид Jochimii outlierensis ;-) нет причин исключать их. Исключить все остальные.

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

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

  • В настоящее время у меня есть задача, где у меня есть куча плохих измерений (я знаю физическую причину, почему я считаю измерения плохими), и еще несколько, которые как-то «выглядят странно». Что я делаю, так это то, что я исключаю эти выборки из обучения (предсказуемой) модели, но отдельно тестирую модель с ними, чтобы я мог что-то сказать об устойчивости моей модели к выбросам тех типов, которые, как я знаю, будут происходить каждый раз в в то время . Таким образом, приложение так или иначе должно иметь дело с этими выбросами.

  • Еще один способ взглянуть на выбросы - спросить: «Насколько они влияют на мою модель?» (Плечо). С этой точки зрения вы можете измерить устойчивость или стабильность по отношению к странным тренировочным образцам.

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

cbeleites недоволен SX
источник
Здесь много хорошей информации. Мне особенно нравятся пункты с пулей № 4 и 5.
Gung - Восстановить Монику
4

Для одномерных выбросов есть критерий отношения Диксона и критерий Граббса, предполагающий нормальность. Чтобы проверить выбросы, вы должны принять распределение населения, потому что вы пытаетесь показать, что наблюдаемое значение является экстремальным или необычным для предполагаемого распределения. У меня есть статья в журнале American Statistician в 1982 году, на которую я мог ссылаться здесь ранее, в которой показано, что критерий отношения Диксона можно использовать в небольших выборках даже для некоторых ненормальных распределений. Черник, М.Р. (1982) «Замечание об устойчивости отношения Диксона в малых выборках», Американский статистик, стр. 140. Для многомерных выбросов и выбросов во временных рядах функции влияния для оценок параметров являются полезными мерами для неформального обнаружения выбросов (я не знаю, формальных тестов, построенных для них, хотя такие тесты возможны).«Выбросы в статистических данных» для подробной обработки методов обнаружения выбросов.

Майкл Р. Черник
источник
3

См. Http://www.waset.org/journals/waset/v36/v36-45.pdf , «Об обнаружении выбросов в нелинейной регрессии» [ sic ].

Аннотация

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

Хосейн
источник
+1 Несмотря на очевидные проблемы с английским языком (и в математическом наборе текста), эта статья кажется полезным вкладом в вопрос.
whuber
2

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

Рон Браун и я разработали уникальный метод (который мы называем ROUT - Робастная регрессия и удаление выбросов) для обнаружения выбросов с нелинейной регрессией, не позволяя выбросу слишком сильно влиять на кривую. Сначала подгоните данные с помощью надежного метода регрессии, где выбросы имеют небольшое влияние. Это формирует базовую линию. Затем используйте идеи частоты ложных открытий (FDR), чтобы определить, когда точка находится «слишком далеко» от этой базовой линии, и поэтому является выбросом. Наконец, он удаляет идентифицированные выбросы и традиционно подходит к остальным точкам.

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

Фон. Нелинейная регрессия, как и линейная регрессия, предполагает, что разброс данных вокруг идеальной кривой соответствует гауссову или нормальному распределению. Это предположение приводит к известной цели регрессии: минимизировать сумму квадратов вертикальных или Y-значений расстояний между точками и кривой. Выбросы могут доминировать в расчете суммы квадратов и приводить к ошибочным результатам. Тем не менее, мы не знаем практического метода для обычной идентификации выбросов при подборе кривых с нелинейной регрессией.

Результаты. Мы описываем новый метод идентификации выбросов при подборе данных с нелинейной регрессией. Сначала мы подгоняем данные, используя робастную форму нелинейной регрессии, основанную на предположении, что разброс следует за распределением Лоренца. Мы разработали новый адаптивный метод, который постепенно становится более устойчивым по мере его развития. Чтобы определить выбросы, мы адаптировали подход, основанный на частоте ложных открытий, для обработки нескольких сравнений. Затем мы удаляем выбросы и анализируем данные, используя обычную регрессию наименьших квадратов. Поскольку метод сочетает в себе устойчивую регрессию и удаление выбросов, мы называем его методом ROUT.

При анализе смоделированных данных, где все рассеяние является гауссовским, наш метод обнаруживает (ложно) один или несколько выбросов только в 1–3% экспериментов. При анализе данных, загрязненных одним или несколькими выбросами, метод ROUT хорошо работает при идентификации выбросов, со средней частотой ложных обнаружений менее 1%.

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

Он не был реализован (насколько я знаю) в R. Но мы реализовали его в GraphPad Prism. и предоставьте простое объяснение в помощи Призмы .

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

Ваш вопрос слишком общий. Не существует единственного лучшего способа исключить "выбросы".

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

ZYD
источник