2017-01-04 18 views
7

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

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

data(iris) 
df <- iris[, 1:4] #only taking the four numeric fields 

Во-первых, я использую Махаланобис расстояния из библиотеки МВН

library(MVN) 
result <- mvOutlier(df, qqplot = TRUE, method = "quan") #non-adjusted 
result <- mvOutlier(df, qqplot = TRUE, method = "adj.quan") #adjusted Mahalonobis distance 

И в результате большое количество выбросов (50 из 150 для не скорректированных и 49/150 для скорректированных), что, я думаю, нуждается в большей доработке. Я, к сожалению, не могу найти переменную в методе mvOutlier, чтобы установить порог (говорит увеличивая вероятность точки быть особняком, так что мы имеем меньшее число)

Во-вторых, я использовал Выпадающие библиотеку , Это должно найти univariate выбросов. Таким образом, мой план состоит в том, чтобы найти выбросы по каждому измерению данных, и эти точки, являющиеся выбросами во всех измерениях, рассматриваются как выбросы набора данных.

library(outliers) 
result <- scores(df, type="t", prob=0.95) #t test, probability is 0.95 
result <- subset(result, result$Sepal.Length == T & result$Sepal.Width == T & result$Petal.Length == T & result$Petal.Width == T) 

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

Некоторые другие подходы, которые я пытался

  • библиотека (mvoutlier): это только показывает сюжет. Трудно автоматически обнаруживает отклонения. И я не знаю, как добавить вероятности в этом
  • расстояния повара (link): человек сказал, что он использовал расстояние кухарки, но я не думаю, что есть какое-либо сильное академическое Доказательство доказать, что это ОК.

ответ

3

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

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

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

Обнаружение Outlier в многомерном Данные-

http://www.m-hikari.com/ams/ams-2015/ams-45-48-2015/13manojAMS45-48-2015-96.pdf

реализация R

http://r-statistics.co/Outlier-Treatment-With-R.html

+0

Привет Андрей, спасибо за ваш комментарий. Расстояние Кука кажется хорошим, но я не знаю, что положить в Y, когда вам нужно подстроить линию lm (Y ~., данные), когда все поля данных эквивалентно независимы. Для Махаланобиса Диста, я не думаю, что видел какую-либо реализацию R. Кроме того, в документе ничего не говорится об увеличении/уменьшении порога. Мне интересно, что произойдет, если я уменьшу порог до 3-х разного значения расстояния повара для выбросов. Наконец, знаете ли вы, как проверить достоверность этих методов? –