Анализ выбросов для обычных данных

Короче говоря, я провел опрос удовлетворенности, в котором респонденты должны отвечать по шкале удовлетворенности от 1 до 7.

Вот пример того, как выглядит диаграмма рассеяния (дрожание) между двумя переменными из набора данных (я работаю над R):

https://drive.google.com/uc?export=download&id=0Bx2Sns2vaI9ycm1tV2pNSWUxQXc

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

Что бы вы предложили в качестве наилучшего подхода к анализу выбросов для этого типа данных и как это можно реализовать на R?

Огромное спасибо заранее,

дейтерий

1 ответ

Решение

Ваши данные выглядят примерно так:

x = rep(1:7, c(3, 4,17, 21, 48, 118, 93)) 
y = c(
    rep(1:7,c(1,2,0,0,0,0,0)),
    rep(1:7,c(2,0,1,1,0,0,0)),
    rep(1:7,c(10,3,2,1,0,0,1)),
    rep(1:7,c(15,3,1,1,1,0,0)),
    rep(1:7,c(20,10,2,10,3,2,1)),
    rep(1:7,c(40,20,20,30,3,4,1)),
    rep(1:7,c(50,25,10,5,3,0,0))
)

сюжет:

library(car)
sp(x,y, jitter = list(x=0.8, y=0.8), smoother=F, reg.line = F)

Если вы просто хотите узнать, является ли данное значение выбросом в ваших данных (т.е. одномерным анализом выбросов), вы можете использовать:

library(outliers)
grubbs.test(x)

или просто использовать boxplot какие значения представлены в виде выбросов:

boxplot(x, plot=F)$out

Если вам нужны многовариантные выбросы, вы можете использовать mvoutlier пакет (см. функции ?chisq.plot а также ?pcout):

library(mvoutlier)
pcout(x=data.frame(x,y))
Другие вопросы по тегам