Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Mastitsky_and_Shitikov_2014.pdf
Скачиваний:
177
Добавлен:
25.12.2019
Размер:
10.99 Mб
Скачать

4.ОПИСАТЕЛЬНАЯ СТАТИСТИКА И ПОДГОНКА РАСПРЕДЕЛЕНИЙ

4.1.Оценка выборочных характеристик с использованием специальных

функций

Благодаря наличию набора специально созданных для этого функций, расчет

параметров

описательной

 

статистики

R в не

составляет

 

никакого

. труда

Продемонстрируем их использование на примере рассмотренных в разделе3.5 данных по

характеристикам 32 моделей

автомобилей (таблица mtcars, входящая

в

стандартный

набор данных R):

 

 

 

 

 

 

 

 

 

 

 

 

data(mtcars)

 

 

 

 

 

 

 

 

 

 

 

 

head(mtcars)

mpg cyl

disp

hp drat

 

wt

qsec vs am gear carb

Mazda RX4

 

 

 

21.0

6

160.0

110

3.90

2.620

16.46

0

1

4

4

Mazda RX4 Wag

 

21.0

6

160.0

110

3.90

2.875

17.02

0

1

4

4

Datsun

710

 

22.8

4

108.0

93

3.85

2.320

18.61

1

1

4

1

Hornet 4 Drive

21.4

6

258.0

110

3.08

3.215

19.44

1

0

3

1

Hornet Sportabout

18.7

8

360.0

175

3.15

3.440

17.02

0

0

3

2

Valiant

 

 

18.1

6

225.0

105

2.76

3.460

20.22

1

0

3

1

Каждая модель автомобиля описана по11 признакам, два из которых(vs и am) являются номинальными переменными (факторами) c уровнями, закодированными в виде 0 и 1 (подробнее см. ? mtcars).

Для расчета среднего арифметического, медианы, дисперсии, стандартного отклонения, а также минимального и максимального значенийв R служат функции mean(), median(), var(), sd(), min() и max() соответственно. Используем эти функции в отношении, например, параметра mpg – пробег автомобиля (в милях) в расчете на один галлон топлива:

#Арифметическая средняя: mean(mtcars$mpg)

[1]20.1

#Медиана

median(mtcars$mpg) [1] 19.2

#Дисперсия: var(mtcars$mpg) [1] 36.3

#Стандартное отклонение: sd(mtcars$mpg)

[1] 6.0

#Минимальное значение: min(mtcars$mpg)

[1] 10.4

#Максимальное значение: max(mtcars$mpg)

[1] 33.9

Специальной функции для расчета стандартной ошибки среднего в R нет, однако для этого вполне подойдут уже имеющиеся функции. Как известно, стандартная ошибка

97

среднего рассчитывается как отношение стандартного отклонения к квадратному корню из объема выборки: Sm = S / n . На языке R мы можем записать это следующим образом:

SEmpg = sd(mtcars$mpg)/sqrt(length(mtcars$mpg))

# функция length() возвращает число элементов в векторе mpg

Получаем:

SEmpg [1] 1.065

Квантили рассчитываются в R при помощи функции quantile(): quantile(mtcars$mpg)

0% 25% 50% 75% 100%

10.400 15.425 19.200 22.800 33.900

При настройках, заданных по умолчанию, выполнение указанной команды приведет к расчету минимального (10.4) и максимального (33.9) значений, а также трех квартилей, т.е. значений, которые делят совокупность на четыре равные части – 15.4, 19.2 и 22.8.

Разница между первым и третим квартилями носит названинтерквартильный размах (ИКР; англ. interquartile range). ИКР является робастным аналогом дисперсии и может быть рассчитан в R при помощи функции IQR():

IQR(mtcars$mpg) [1] 7.375

Функция quantile() позволяет рассчитать и другие квантили. Например, децили (т.е. значения, делящие совокупность на десять частей) можно получить следующим

образом:

 

 

 

 

 

 

 

 

 

 

quantile(mtcars$mpg, p = seq(0, 1, 0.1))

70%

80%

90%

100%

0%

10%

20%

30%

40%

50%

60%

10.4014.34 15.20 15.98 17.92 19.20 21.00 21.47 24.08 30.09 33.90

Вприведенной команде важен аргумент p (от probability – вероятность), при помощи которого был задан вектор чисел от 0 до 1 с шагом 0.1. Обратите внимание на то, что существует несколько способов оценки квантилей по выборочным данным. Подробнее об этом можно узнать в справочном файле по функцииquantile() (доступен по команде

? quantile).

Отсутствующие значения в данных могут несколько усложнить вычисления. В целях демонстрации заменим 3-е значение переменной mpg на NA , т.е. на обозначение, используемое в R для отсутствующих наблюдений (от not available – не доступно), а затем попытаемся вычислить среднее значение:

mtcars$mpg[3] <- NA

# Просмотрим результат: head(mtcars$mpg)

[1] 21.0 21.0 NA 21.4 18.7 18.1

# Попробуем рассчитать среднее значение для mpg: mean(mtcars$mpg)

[1] NA

Ничего не вышло– вместо среднего значения программа выдалаNA, что вполне логично. R не будет пропускать отсутствующие значения автоматически, если мы не включим соответствующую опцию – na.rm (от not available и remove – удалить):

mean(mtcars$mpg, na.rm = TRUE) [1] 20.0

98

Рассмотренный прием (т.е. использование аргумента na.rm = TRUE) срабатывает в большинстве случаев. Одним из немногих исключений является функцияlength(),

используемая для определения размера вектора. Аргумент na.rm у этой функции отсутствует, поэтому будут подсчитаны как имеющиеся, так и отсутствующие значения:

length(mtcars$mpg) [1] 32

Если все же стоит задача подсчитать количество неотсутствующих значений, то можно воспользоваться следующим приемом:

sum(!is.na(mtcars$mpg)) [1] 31

Ключом здесь является использование командыis.na(mtcars$mpg), которая проверяет каждое значение mpg и возвращает FALSE, если это значение не равно NA, и TRUE иначе. В сочетании с логическим оператором! ("не"), функция sum используется для подсчета только тех значенияmpg, которые не равныNA (логические TRUE здесь конвертируются в 1, которые можно суммировать).

Существуют еще две функции, которые могут оказаться полезными при анализе свойств совокупностей – which.min() и which.max(). Как следует из названий, эти функции позволяют выяснить порядковые номера элементов, обладающих минимальным и максимальным значениями соответственно. Если минимальное/максимальное значение

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

which.min(mtcars$mpg) [1] 15 which.max(mtcars$mpg) [1] 20

Видим, что минимальный и максимальный пробег в расчете на галлон топлива имеют модели под номерами 15 и 20 соответственно. Выяснить названия этих моделей мы можем, совместив команды which.min() и which.max() с командой rownames()

(от row – строка, и names – имена):

rownames(mtcars)[which.min(mtcars$mpg)] [1] "Cadillac Fleetwood" rownames(mtcars)[which.max(mtcars$mpg)] [1] "Toyota Corolla"

Подробнее приемы индексирования векторов в R были рассмотрели в разделе 2.2.

Использование функции tapply()

Как мы описывали в разделе 2.8, функции "apply"-семейства, к которым относится

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

Предположим, мы хотим выяснить средний объем двигателя(переменная disp, в кубических дюймах) у моделей с автоматической и ручной коробкой передач(переменная am; 1 – ручная коробка, 0 – автоматическая коробка). Функция tapply() позволяет сделать это следующим образом:

tapply(X = mtcars$disp, INDEX = mtcars$am, FUN = mean) 0 1

290.38143.53

99

Поскольку аргумент INDEX способен принимать список из нескольких факторов, для уровней которых рассчитываются значения функцииFUN, мы можем усложнить приведенную выше команду:

tapply(X = mtcars$disp, INDEX = list(mtcars$am, mtcars$vs),

 

0

FUN = mean)

0

1

357.62

175.11

1

206.22

89.80

Аргумент FUN, как уже было отмечено, может принимать любые, в том числе и пользовательские функции. Рассмотрим, например, расчет стандартных ошибок для средних значений объема двигателя у автомобилей с автоматической и ручной коробкой передач. Для начала создадим функцию SE для расчета стандартных ошибок(см. пример выше):

SE <- function(x) {sd(x)/sqrt(length(x))}

Теперь совместим эту новую функцию с tapply():

tapply(X = mtcars$disp, INDEX = mtcars$am, FUN = SE) 0 1

25.3 24.2

Таким образом, объем двигателя у моделей с автоматической коробкой передач составляет в среднем 290.4 ± 25.3, а у автомобилей с механической коробкой– 143.5 ±

24.2кубических дюймов.

4.2.Использование функций summary() и дополнительных пакетов

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

summary():

 

 

 

 

 

 

summary(mtcars$mpg)

Mean 3rd Qu.

Max.

NA's

Min. 1st Qu.

Median

10.40

15.35

19.20

20.00

22.15

33.90

1.00

Всего одной строки кода оказалось достаточно для получения минимального (Min) и максимального (Max) значений переменной mpg, медианы (Median), арифметической средней (Mean), первого (1st Qu.) и третьего (3rd Qu.) квартилей, а также для выяснения количества отсутствующих значений (NA's). Более того, подобную сводку мы можем получить сразу для всей таблицы данных:

summary(mtcars)

Min.

mpg

Min.

cyl

Min.

disp

Min.

hp

:10.40

:4.000

: 71.1

: 52.0

1st Qu.:15.35

1st Qu.:4.000

1st Qu.:120.8

1st Qu.: 96.5

Median :19.20

Median :6.000

Median :196.3

Median

:123.0

Mean

:20.00

Mean

:6.188

Mean

:230.7

Mean

:146.7

3rd Qu.:22.15

3rd Qu.:8.000

3rd Qu.:326.0

3rd Qu.:180.0

Max.

:33.90

Max.

:8.000

Max.

:472.0

Max.

:335.0

NA's

: 1.00

 

wt

 

qsec

 

vs

Min.

drat

Min.

Min.

Min.

:2.760

:1.513

:14.50

:0.0000

1st Qu.:3.080

1st Qu.:2.581

1st Qu.:16.89

1st Qu.:0.0000

Median :3.695

Median :3.325

Median :17.71

Median

:0.0000

Mean

:3.597

Mean

:3.217

Mean

:17.85

Mean

:0.4375

3rd Qu.:3.920

3rd Qu.:3.610

3rd Qu.:18.90

3rd Qu.:1.0000

Max.

:4.930

Max.

:5.424

Max.

:22.90

Max.

:1.0000

100

Min.

am

Min.

gear

Min.

carb

:0.0000

:3.000

:1.000

1st Qu.:0.0000

1st Qu.:3.000

1st Qu.:2.000

Median :0.0000

Median :4.000

Median :2.000

Mean

:0.4062

Mean

:3.688

Mean

:2.812

3rd Qu.:1.0000

3rd Qu.:4.000

3rd Qu.:4.000

Max.

:1.0000

Max.

:5.000

Max.

:8.000

Результат выглядел бы замечательно, если бы не одно"но". Переменные vs и am являются факторами, но уровни их закодированы при помощичисел 0 и 1. К сожалению, система R не распознала эти две переменные как факторы и рассчитала соответствующие параметры описательной статистики, как для обычных числовых переменных. Однако мы можем изменить такое поведение R, самостоятельно преобразовав vs и am в факторы при помощи функции as.factor():

mtcars$vs <- as.factor(mtcars$vs) mtcars$am <- as.factor(mtcars$am)

# Проверим, удалась ли конвертация: is.factor(mtcars$vs)

[1] TRUE is.factor(mtcars$am) [1] TRUE

Если применить функцию summary() к таблице mtcars

теперь, то переменные

 

vs и am будет распознаны программой как факторы: единственный способ описать их–

 

это подсчитать количество наблюдений для каждого уровня.

 

 

 

 

Рассмотренные

выше

функции

позволяют

получить

достаточно

полное

представление об анализируемых выборках и таблицах данных. Однако для расчета

 

некоторых параметров описательной статистики необходимы

специальные функции,

 

которые не входят в базовую версию R. С одним из таких параметров мы уже столкнулись

 

– стандартная

ошибка

арифметической

средней. Другие

 

примеры

включают

 

коэффициенты эксцесса (англ. kurtosis) и асимметрии (skewness) – параметры,

 

характеризующие форму распределения. Конечно, мы можем рассчитать эти величины по

 

соответствующим формулам или даже написать собственные функции для этих целей.

 

Однако это уже было сделано до –насдостаточно воспользоваться имеющимися

 

дополнительными

пакетами дляR, например, пакетом moments.

Если этот пакет не

 

установлен на Вашем компьютере, выполните следующую команду(естественно, Ваш компьютер должен быть при этом подключен к сети Интернет):

install.packages("moments")

Рассчитать коэффициенты эксцесса и асимметрии теперь очень просто:

library(moments) #загрузка пакета moments kurtosis(mtcars$mpg, na.rm = TRUE)

[1] 2.79

skewness(mtcars$mpg, na.rm = TRUE) [1] 0.68

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

101

# Пакет Hmisc, функция describe(): describe(mtcars)

mtcars

32

Observations

 

 

 

 

 

 

11

Variables

 

 

 

 

 

 

----------------------------------------------

 

 

 

 

mpg

 

unique

Mean

.05

.10

.25

.50

.75

.90

.95

n missing

31

1

25

20

11.85

14.30

15.35

19.20

22.15

30.40

31.40

lowest : 10.4 13.3

14.3 14.7 15.0, highest: 26.0 27.3

30.4 32.4 33.9

 

-----------------------------------------------

#И так далее по всем остальным переменным

#Пакет pastecs, функция stat.desc(); показаны семь переменных

stat.desc(mtcars)

nbr.val

mpg

cyl

disp

hp

drat

wt

qsec

31.00

32.00

3.2e+01

32.00

32.000

32.00

32.00

nbr.null

0.00

0.00

0.0e+00

0.00

0.000

0.00

0.00

nbr.na

1.00

0.00

0.0e+00

0.00

0.000

0.00

0.00

min

10.40

4.00

7.1e+01

52.00

2.760

1.51

14.50

max

33.90

8.00

4.7e+02

335.00

4.930

5.42

22.90

range

23.50

4.00

4.0e+02

283.00

2.170

3.91

8.40

sum

620.10

198.00

7.4e+03

4694.00

115.090

102.95

571.16

median

19.20

6.00

2.0e+02

123.00

3.695

3.33

17.71

mean

20.00

6.19

2.3e+02

146.69

3.597

3.22

17.85

SE.mean

1.10

0.32

2.2e+01

12.12

0.095

0.17

0.32

CI.mean.0.95

2.24

0.64

4.5e+01

24.72

0.193

0.35

0.64

var

37.28

3.19

1.5e+04

4700.87

0.286

0.96

3.19

std.dev

6.11

1.79

1.2e+02

68.56

0.535

0.98

1.79

coef.var

0.31

0.29

5.4e-01

0.47

0.149

0.30

0.10

#Пакет psych, функция describe.by() - расчет параметров

#описательной статистики для каждого уровня некоторого фактора.

#Показаны первые три переменных:

describe.by(mtcars, mtcars$am)

group:

0

n

mean

sd median trimmed

mad

 

min

 

max range

skew kurtosis

se

var

 

 

mpg

1

19

17.1

3.83

17.3

17.1

3.11

10.4

24.4

14.0

0.01

-0.33

0.88

cyl

2

19

7.0

1.54

8.0

7.1

0.00

 

4.0

 

8.0

 

4.0

-0.95

-0.24

0.35

disp

3

19

290.4

110.17

275.8

289.7

124.83

120.1

472.0

351.9

0.05

-1.01

25.28

------------------------------------------------

 

 

 

 

 

 

 

 

 

group:

1

n

mean

sd median trimmed

mad

 

min

max range

skew kurtosis

 

se

var

 

 

mpg

1

12

24.5

6.42

23.7

24.5

7.93

15.0

33.9

18.9

-0.01

-1.35

1.85

cyl

2

13

5.1

1.55

4.0

4.9

0.00

 

4.0

 

8.0

4.0

0.87

-0.15

0.43

disp

3

13

143.5

87.20

120.3

131.2

58.86

71.1

351.0

279.9

1.33

2.17

24.19

# Пакет doBy, функция summaryBy(). Обладает мощным функционалом. summaryBy(mpg + wt ~ cyl + vs, data = mtcars,

 

 

FUN = function(x) { c(m = mean(x), s = sd(x)) } )

1

cyl vs mpg.m mpg.s wt.m wt.s

4

0

26

NA

2.1

NA

2

4

1

NA

NA

2.3

0.60

3

6

0

21

0.75

2.8

0.13

4

6

1

19

1.63

3.4

0.12

5

8

0

15

2.56

4.0

0.76

102

4.3. Анализ выбросов

Дадим рабочее определение: под "выбросом" мы будем понимать наблюдение, которое "слишком" велико или "слишком" мало по сравнению с большинством других имеющихся наблюдений.

Обычно для выявления выбросов используют диаграмму размахов или точечную диаграмму Кливленда (см. раздел 3.3 и 3.5). Например, на следующей диаграмме Кливленда, представлены данные о длине крыла у1295 воробьев (Zuur et al. 2010). Здесь таблица была предварительно упорядочена в соответствии с весом птиц, и поэтому облако точек имеет примерно S-образную форму.

№№ пп

55

60

65

 

 

 

Длина крыла (мм)

 

 

 

На рисунке хорошо выделяется точка, соответствующая длине крыла68 мм.

 

Однако это значение длины крыла не следует

рассматривать

в качестве ,

выброса

поскольку оно лишь незначительно

отличается от

других значений

длины. Эта точка

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

Более строгий подход к определению выбросов состоит в оценке, кактогое влияние эти необычные наблюдения оказывают на результаты анализа. При этом следует делать различие между необычными наблюдениями для зависимых и независимых переменных (предикторов). Например, при изучении зависимости численности какоголибо биологического вида от температуры большинство значений температуры может лежать в пределах от 15 до 20 °С, и лишь одно значение может оказаться равным25 °С.

Такой план эксперимента, мягко говоря, неидеален, поскольку диапазон температур от 20 до 25 °С будет исследован неравномерно. Однако при проведении реальных полевых

исследований возможность выполнить измерения для высокой температуры может представиться только однажды. Что же тогда делать с этим необычным измерением, выполненным при 25 °С? При большом объеме наблюдений подобные редкие наблюдения можно исключить из анализа. Однако при относительно небольшом объеме данных еще большее его уменьшение может быть нежелательным с точки зрения статистической значимости получаемых результатов.

Альтернативой удалению необычных значений предиктора являе нормализующее преобразование (чаще всего, логарифмирование). В общем случае, найти оптимальное решение позволяет так называемое преобразование Бокса-Кокса(Box, Cox,

1964).

103

Универсальное семейство преобразований Бокса-Кокса (БК) случайной величины x

¢

 

xl -1

 

является степенным преобразованием x

=

 

 

с произвольным положительным или

l

отрицательным показателем степениl. Поскольку деление на нуль приводит к

неопределенности,

то при l

= 0 используется логарифмическое преобразование

x’(l) = ln(x). Найти

значение l

можно,

например, найдя максимум логарифма функции

максимального правдоподобия.

 

с моллюсками Dreissena polymorpha, в которых

Рассмотрим пример из раздела1.3

подсчитывалась численность обнаруженных инфузорий (CAnumber):

Моллюски <- read.table("http://figshare.com/media/download/98923/97987", header=TRUE, sep="\t", strip.white=TRUE)

library(car)

# Поиск максимума функции правдоподобия и построение графика

# изменения параметра БК-трансформации для заданной модели m.null <- lm(Моллюски$CAnumber+1~1)

bc.null <- boxCox(m.null)

bc.null.opt <- bc.null$x[which.max(bc.null$y)] paste("Оптимальная лямбда БК-преобразования:",bc.null.opt) [1] "Оптимальная лямбда БК-преобразования: 0.181818181818182" CAnumber_bc <- bcPower(Моллюски$CAnumber+1, bc.null.opt) par(mfrow=c(2,1))

boxplot(Моллюски$CAnumber,horizontal = TRUE,col = "steelblue", xlab = "Численность инфузорий (экз)")

boxplot(CAnumber_bc,horizontal = TRUE,col = "coral",

xlab = "Численность инфузорий (БК-преобразование)")

В нашем случае оптимальное

значение l = 0.182 (т.е. наилучшее преобразование

достаточно близко к логарифмическому).

 

 

95%

 

 

 

 

-5000

 

 

 

 

Likelihood -6000

 

 

 

 

log-

 

 

 

 

-7000

 

 

 

 

-8000

 

 

 

 

-2

-1

0

1

2

 

 

l

 

 

Эффект преобразования исходной переменнойCAnumber по методу Бокса-Кокса проиллюстрирован на приведенных ниже рисунках. Как видно на диаграмме, где приведены исходные данные, большое число точек лежат за пределами диапазона[x25

104

1.5(x75 x25), x75 +1.5(x75 x25)] и, соответственно, отмечены функцией boxplot() как потенциальные «выбросы». Однако после БК-преобразования распределение значений

CAnumber приблизилось

к нормальному, в связи с чем за пределами указанного

интервала оказалось только

одно наблюдение.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

2000

4000

6000

8000

10000

 

 

 

 

 

 

 

 

Численность инфузорий (экз)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

5

10

15

20

25

 

Численность инфузорий (БК-преобразование)

 

Имеются и более тонкие критерии идентификации выбросов– статистический критерий Шовене, тест Граббса, критерий Пирса, Q-тест Диксона (все необходимые функции собраны в пакете outliers). Например, с использованием теста Граббса можно проверить нулевую гипотезу о том, что максимальное значение не является выбросом:

library(outliers) grubbs.test(Моллюски$CAnumber, type = 10)

Grubbs test for one outlier data: Моллюски$CAnumber

G = 10.8336, U = 0.7524, p-value < 2.2e-16

alternative hypothesis: highest value 10782 is an outlier grubbs.test(CAnumber_bc, type = 10)

Grubbs test for one outlier data: CAnumber_bc

G = 3.3267, U = 0.9767, p-value = 0.1961

alternative hypothesis: highest value 24.2569 is an outlier

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

подобрать

метод

анализа, который

основан

на

распределении

вероятностей,

допускающем асимметрию разброса значений в области экстремально больших величин

(например, гамма-распределение для

непрерывных

переменных

или

распределение

Пуассона для дискретных количественных переменных).

 

 

 

 

В конечном счете, решение об удалении

необычных

значений из анализа

принимает сам исследователь. При этом он должен помнить о том, что причины для

возникновения

таких

наблюдений

могут быть

разными. Так, удаление

выбросов,

105