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

Материал Psylab.info - энциклопедии психодиагностики
Перейти к: навигация, поиск
м (Пакет fBasics)
м
Строка 17: Строка 17:
 
=== Пакет <code>stats</code> ===
 
=== Пакет <code>stats</code> ===
  
==== <code>shapiro.test</code> - критерий Шапиро - Уилка ====
+
В данном пакете реализованы две функции, которые позволяют осуществить проверку принадлежности распределения нормальному закону.
  
<syntaxhighlight lang="rsplus">
+
* <code>shapiro.test</code> - критерий Шапиро - Уилка
> shapiro.test(x)
+
* <code>ks.test</code> - критерий Колмогорова - Смирнова: <code>ks.test(x, y = "pnorm")</code>
 
+
Shapiro-Wilk normality test
+
 
+
data:  x
+
W = 0.9831, p-value = 0.2301
+
</syntaxhighlight>
+
 
+
 
+
==== <code>ks.test</code> - критерий Колмогорова - Смирнова ====
+
 
+
<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>
+
  
 
=== Пакет <code>nortest</code> ===
 
=== Пакет <code>nortest</code> ===
Строка 50: Строка 31:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
==== <code>ad.test</code> - критерий Андерсона - Дарлинга ====
+
В данный пакет входят следующие функции:
  
<syntaxhighlight lang="rsplus">
+
* <code>ad.test</code> - критерий Андерсона - Дарлинга
> ad.test(x)
+
* <code>cvm.test</code> - критерий Крамера - фон Мизеса
 
+
* <code>lillie.test</code> - критерий Лиллиефорса
Anderson-Darling normality test
+
* <code>pearson.test</code> - критерий <math>\chi^2</math> Пирсона
 
+
* <code>sf.test</code> - критерий Шапиро - Франчия
data:  x
+
A = 0.4181, p-value = 0.323
+
</syntaxhighlight>
+
 
+
==== <code>cvm.test</code> - критерий Крамера - фон Мизеса ====
+
 
+
<syntaxhighlight lang="rsplus">
+
> cvm.test(x)
+
 
+
Cramer-von Mises normality test
+
 
+
data:  x
+
W = 0.048, p-value = 0.5359
+
</syntaxhighlight>
+
 
+
==== <code>lillie.test</code> - критерий Лиллиефорса ====
+
 
+
<syntaxhighlight lang="rsplus">
+
> lillie.test(x)
+
 
+
Lilliefors (Kolmogorov-Smirnov) normality test
+
 
+
data:  x
+
D = 0.0521, p-value = 0.7258
+
</syntaxhighlight>
+
 
+
 
+
==== <code>pearson.test</code> - критерий <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>
+
 
+
==== <code>sf.test</code> - критерий Шапиро - Франчия ====
+
 
+
<syntaxhighlight lang="rsplus">
+
> sf.test(x)
+
 
+
Shapiro-Francia normality test
+
 
+
data:  x
+
W = 0.9781, p-value = 0.08574
+
</syntaxhighlight>
+
  
 +
Данные функции возвращают результат в виде S3-класса - <code>htest</code>.
  
 
=== Пакет <code>moments</code> ===
 
=== Пакет <code>moments</code> ===
Строка 116: Строка 50:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
==== <code>agostino.test</code> - критерий Д'Агостино ====
+
В данный пакет входят следующие функции:
  
<syntaxhighlight lang="rsplus">
+
* <code>agostino.test</code> - критерий Д'Агостино
> agostino.test(x)
+
* <code>bonett.test</code> - критерий Бонетта – Сайера
 +
* <code>jarque.test</code> - критерий Жарка-Бера
  
D'Agostino skewness test
+
Данные функции также возвращают результат в виде S3-класса - <code>htest</code>.
 
+
data:  x
+
skew = 0.1087, z = 0.3106, p-value = 0.7561
+
alternative hypothesis: data have a skewness
+
</syntaxhighlight>
+
 
+
==== <code>bonett.test</code> - критерий Бонетта – Сайера ====
+
 
+
<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>
+
 
+
==== <code>jarque.test</code> - критерий Жарка-Бера ====
+
 
+
<syntaxhighlight lang="rsplus">
+
> jarque.test(x)
+
 
+
Jarque-Bera Normality Test
+
 
+
data:  x
+
JB = 1.356, p-value = 0.5076
+
alternative hypothesis: greater
+
</syntaxhighlight>
+
  
 
=== Пакет <code>fBasics</code> ===
 
=== Пакет <code>fBasics</code> ===
Строка 163: Строка 69:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
==== <code>normalTest</code> ====
+
Функция <code>normalTest()</code> является «обёрктой» для ряда функций из того же пакета - <code>fBasics</code>. Задать необходимый критерий можно задать с помощью аргумента <code>method</code>. Доступны следующие критерии:
 
+
Функция <code>normalTest()</code> является «обёрктой» для ряда функций из пакета <code>fBasics</code>. Задать необходимый критерий можно задать с помощью аргумента <code>method</code>. Доступны следующие критерии:
+
  
 
* <code>sw</code> - критерий Шапиро - Уилка
 
* <code>sw</code> - критерий Шапиро - Уилка
Строка 173: Строка 77:
 
* <code>ad</code> - критерий Андерсона - Дарлинга.
 
* <code>ad</code> - критерий Андерсона - Дарлинга.
  
==== <code>shapiroTest</code> - критерий Шапиро - Уилка ====
+
Помимо функции <code>normalTest()</code> данный пакет включает в себя следующие функции:
  
<syntaxhighlight lang="rsplus">
+
* <code>shapiroTest</code> - критерий Шапиро - Уилка
> shapiroTest(x)
+
* <code>ksnormTest</code> - критерий Колмогорова - Смирнова<ref>Данная функция вызывает <code>ks.test(x, "pnorm")</code> для трёх альтернативных гипотез - двусторонней и двух односторонних.</ref>
 +
* <code>jarqueberaTest</code> - критерий Жарка-Бера
 +
* <code>dagoTest</code> - критерий Д'Агостино
 +
* <code>adTest</code> - критерий Андерсона - Дарлинга
 +
* <code>cvmTest</code> - критерий Крамера - фон Мизеса
 +
* <code>lillieTest</code> - критерий Лиллиефорса
 +
* <code>pchiTest</code> - критерий Пирсона
 +
* <code>sfTest</code> - критерий Шапиро - Франчия
  
Title:
+
Данные функции также возвращают результат в виде S4-класса - <code>fHTEST</code>.
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>
+
 
+
==== <code>ksnormTest</code> - критерий Колмогорова - Смирнова ====
+
 
+
Данная функция вызывает <code>ks.test(x, "pnorm")</code> для трёх альтернативных гипотез - двусторонней и двух односторонних.
+
 
+
<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>
+
 
+
==== <code>jarqueberaTest</code> - критерий Жарка-Бера ====
+
 
+
<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>
+
 
+
==== <code>dagoTest</code> - критерий Д'Агостино ====
+
 
+
<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>
+
 
+
==== <code>adTest</code> - критерий Андерсона - Дарлинга ====
+
 
+
<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>
+
 
+
==== <code>cvmTest</code> - критерий Крамера - фон Мизеса ====
+
 
+
<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>
+
 
+
==== <code>lillieTest</code> - критерий Лиллиефорса ====
+
 
+
<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>
+
 
+
==== <code>pchiTest</code> - критерий Пирсона ====
+
 
+
<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>
+
 
+
==== <code>sfTest</code> - критерий Шапиро - Франчия ====
+
 
+
<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>
+
  
 
== Многомерное нормальное распределение ==
 
== Многомерное нормальное распределение ==
  
 
[[Категория:R]]
 
[[Категория:R]]

Версия 15:59, 14 февраля 2014

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

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

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

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

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

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

Пакет stats

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

  • shapiro.test - критерий Шапиро - Уилка
  • ks.test - критерий Колмогорова - Смирнова: ks.test(x, y = "pnorm")

Пакет nortest

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

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

В данный пакет входят следующие функции:

  • ad.test - критерий Андерсона - Дарлинга
  • cvm.test - критерий Крамера - фон Мизеса
  • lillie.test - критерий Лиллиефорса
  • pearson.test - критерий [math]\chi^2[/math] Пирсона
  • sf.test - критерий Шапиро - Франчия

Данные функции возвращают результат в виде S3-класса - htest.

Пакет moments

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

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

В данный пакет входят следующие функции:

  • agostino.test - критерий Д'Агостино
  • bonett.test - критерий Бонетта – Сайера
  • jarque.test - критерий Жарка-Бера

Данные функции также возвращают результат в виде S3-класса - htest.

Пакет fBasics

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

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

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

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

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

Помимо функции normalTest() данный пакет включает в себя следующие функции:

  • shapiroTest - критерий Шапиро - Уилка
  • ksnormTest - критерий Колмогорова - Смирнова[1]
  • jarqueberaTest - критерий Жарка-Бера
  • dagoTest - критерий Д'Агостино
  • adTest - критерий Андерсона - Дарлинга
  • cvmTest - критерий Крамера - фон Мизеса
  • lillieTest - критерий Лиллиефорса
  • pchiTest - критерий Пирсона
  • sfTest - критерий Шапиро - Франчия

Данные функции также возвращают результат в виде S4-класса - fHTEST.

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

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