R:Статистическая проверка принадлежности нормальному распределения

Материал Psylab.info - энциклопедии психодиагностики
Перейти к: навигация, поиск

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

На практике мы встречаемся с двумя вариантами задач по проверке принадлежности распределения нормальному закону: для одномерного и многомерного распределения.

Одномерное нормальное распределение

В качестве [math]H_0[/math] для всех нижеприведённых критериев является предположение, что «случайная величина [math]X[/math] распределена нормально».

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

<syntaxhighlight lang="rsplus"> > x <- rnorm(n = 100) </syntaxhighlight>

Пакет stats

shapiro.test - критерий Шапиро - Уилка

<syntaxhighlight lang="rsplus"> > shapiro.test(x)

Shapiro-Wilk normality test

data: x W = 0.9831, p-value = 0.2301 </syntaxhighlight>


ks.test - критерий Колмогорова - Смирнова

<syntaxhighlight lang="rsplus"> > ks.test(x, y = "pnorm")

One-sample Kolmogorov-Smirnov test

data: x D = 0.0534, p-value = 0.938 alternative hypothesis: two-sided </syntaxhighlight>

Пакет nortest

Перед использованием функций из данного пакета, его необходимо предварительно установить и загрузить:

<syntaxhighlight lang="rsplus"> > install.packages(pkgs = "nortest") > library(package = "nortest") </syntaxhighlight>

ad.test - критерий Андерсона - Дарлинга

<syntaxhighlight lang="rsplus"> > ad.test(x)

Anderson-Darling normality test

data: x A = 0.4181, p-value = 0.323 </syntaxhighlight>

cvm.test - критерий Крамера - фон Мизеса

<syntaxhighlight lang="rsplus"> > cvm.test(x)

Cramer-von Mises normality test

data: x W = 0.048, p-value = 0.5359 </syntaxhighlight>

lillie.test - критерий Лиллиефорса

<syntaxhighlight lang="rsplus"> > lillie.test(x)

Lilliefors (Kolmogorov-Smirnov) normality test

data: x D = 0.0521, p-value = 0.7258 </syntaxhighlight>


pearson.test - критерий [math]\chi^2[/math] Пирсона

<syntaxhighlight lang="rsplus"> > pearson.test(x)

Pearson chi-square normality test

data: x P = 17.78, p-value = 0.05879 </syntaxhighlight>

sf.test - критерий Шапиро - Франчия

<syntaxhighlight lang="rsplus"> > sf.test(x)

Shapiro-Francia normality test

data: x W = 0.9781, p-value = 0.08574 </syntaxhighlight>


Пакет moments

Перед использованием функций из данного пакета, его необходимо предварительно установить и загрузить:

<syntaxhighlight lang="rsplus"> > install.packages(pkgs = "moments") > library(package = "moments") </syntaxhighlight>

agostino.test - критерий Д'Агостино

<syntaxhighlight lang="rsplus"> > agostino.test(x)

D'Agostino skewness test

data: x skew = 0.1087, z = 0.3106, p-value = 0.7561 alternative hypothesis: data have a skewness </syntaxhighlight>

bonett.test - критерий Бонетта – Сайера

<syntaxhighlight lang="rsplus"> > bonett.test(x)

Bonett-Seier test for Geary kurtosis

data: x tau = 0.8158, z = -0.6097, p-value = 0.5421 alternative hypothesis: kurtosis is not equal to sqrt(2/pi) </syntaxhighlight>

jarque.test - критерий Жарка-Бера

<syntaxhighlight lang="rsplus"> > jarque.test(x)

Jarque-Bera Normality Test

data: x JB = 1.356, p-value = 0.5076 alternative hypothesis: greater </syntaxhighlight>

Пакет fBasics

В данном пакете не предлагается никакой оригинальной реализации критериев - код в основном заимствован из пакетов stats, nortest, moments. Данный пакет предлагает альтернативный вывод результатов в виде объекта S4-класса fHTEST, в том время как все предыдущие функции использовали S3-класс htest.

Перед использованием функций из данного пакета, его необходимо предварительно установить и загрузить:

<syntaxhighlight lang="rsplus"> > install.packages(pkgs = "fBasics") > library(package = "fBasics") </syntaxhighlight>

normalTest

Функция normalTest() является «обёрктой» для ряда функций из пакета fBasics. Задать необходимый критерий можно задать с помощью аргумента method. Доступны следующие критерии:

  • sw - критерий Шапиро - Уилка
  • jb - критерий Жарка-Бера
  • ks - критерий Колмогорова - Смирнова
  • da - критерий Д'Агостино
  • ad - критерий Андерсона - Дарлинга.

shapiroTest - критерий Шапиро - Уилка

<syntaxhighlight lang="rsplus"> > shapiroTest(x)

Title:

Shapiro - Wilk Normality Test

Test Results:

 STATISTIC:
   W: 0.9831
 P VALUE:
   0.2301 

Description:

Fri Feb 14 17:27:33 2014 by user: 

</syntaxhighlight>

ksnormTest - критерий Колмогорова - Смирнова

Данная функция вызывает ks.test(x, "pnorm") для трёх альтернативных гипотез - двусторонней и двух односторонних.

<syntaxhighlight lang="rsplus"> > ksnormTest(x)

Title:

One-sample Kolmogorov-Smirnov test

Test Results:

 STATISTIC:
   D: 0.0534
 P VALUE:
   Alternative Two-Sided: 0.938 
   Alternative      Less: 0.7049 
   Alternative   Greater: 0.5654 

Description:

Fri Feb 14 18:52:37 2014 by user:

</syntaxhighlight>

jarqueberaTest - критерий Жарка-Бера

<syntaxhighlight lang="rsplus"> > jarqueberaTest(x)

Title:

Jarque - Bera Normalality Test

Test Results:

 STATISTIC:
   X-squared: 1.356
 P VALUE:
   Asymptotic p Value: 0.5076 

Description:

Fri Feb 14 18:58:29 2014 by user:

</syntaxhighlight>

dagoTest - критерий Д'Агостино

<syntaxhighlight lang="rsplus"> > dagoTest(x)

Title:

D'Agostino Normality Test

Test Results:

 STATISTIC:
   Chi2 | Omnibus: 1.8673
   Z3  | Skewness: 0.4713
   Z4  | Kurtosis: 1.2826
 P VALUE:
   Omnibus  Test: 0.3931 
   Skewness Test: 0.6374 
   Kurtosis Test: 0.1996 

Description:

Fri Feb 14 18:59:31 2014 by user: 

</syntaxhighlight>

adTest - критерий Андерсона - Дарлинга

<syntaxhighlight lang="rsplus"> > adTest(x)

Title:

Anderson - Darling Normality Test

Test Results:

 STATISTIC:
   A: 0.4181
 P VALUE:
   0.323 

Description:

Fri Feb 14 19:00:49 2014 by user: 

</syntaxhighlight>

cvmTest - критерий Крамера - фон Мизеса

<syntaxhighlight lang="rsplus"> > cvmTest(x)

Title:

Cramer - von Mises Normality Test

Test Results:

 STATISTIC:
   W: 0.048
 P VALUE:
   0.5359 

Description:

Fri Feb 14 19:01:34 2014 by user:

</syntaxhighlight>

lillieTest - критерий Лиллиефорса

<syntaxhighlight lang="rsplus"> > lillieTest(x)

Title:

Lilliefors (KS) Normality Test

Test Results:

 STATISTIC:
   D: 0.0521
 P VALUE:
   0.7258 

Description:

Fri Feb 14 19:01:58 2014 by user:

</syntaxhighlight>

pchiTest - критерий Пирсона

<syntaxhighlight lang="rsplus"> > pchiTest(x)

Title:

Pearson Chi-Square Normality Test

Test Results:

 PARAMETER:
   Number of Classes: 13
 STATISTIC:
   P: 17.78
 P VALUE:
   Adhusted: 0.05879 
   Not adjusted: 0.1225 

Description:

Fri Feb 14 19:02:21 2014 by user:

</syntaxhighlight>

sfTest - критерий Шапиро - Франчия

<syntaxhighlight lang="rsplus"> > sfTest(x)

Title:

Shapiro - Francia Normality Test

Test Results:

 STATISTIC:
   W: 0.9781
 P VALUE:
   0.08574 

Description:

Fri Feb 14 19:02:45 2014 by user:

</syntaxhighlight>

Многомерное нормальное распределение