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