3482
правки
Изменения
Новая страница: «Предположение о принадлежности случайной величины нормальному закону распределения ле…»
Предположение о принадлежности случайной величины нормальному закону распределения лежит в основе многих статистических методов и критериев. В ряде случаев соблюдение данного требования является критичным для применения того или иного метода.
На практике мы встречаемся с двумя вариантами задач по проверке принадлежности распределения нормальному закону: для одномерного и многомерного распределения.
== Одномерное нормальное распределение ==
В качестве <math>H_0</math> для всех нижеприведённых критериев является предположение, что «случайная величина <math>X</math> распределена нормально».
Для демонстрации работы функций, реализующий различные критерий проверки принадлежности распределения нормальному закону сгенерируем вектор случайных чисел, имеющих стандартное нормальное распределение:
<syntaxhighlight lang="rsplus">
> x <- rnorm(n = 100)
</syntaxhighlight>
=== Пакет <code>base</code> ===
==== <code>shapiro.test</code> - критерий Шапиро - Уилка ====
<syntaxhighlight lang="rsplus">
> shapiro.test(x)
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> ===
Перед использованием функций из данного пакета, его необходимо предварительно установить и загрузить:
<syntaxhighlight lang="rsplus">
> install.packages(pkgs = "nortest")
> library(package = "nortest")
</syntaxhighlight>
==== <code>ad.test</code> - критерий Андерсона - Дарлинга ====
<syntaxhighlight lang="rsplus">
> ad.test(x)
Anderson-Darling normality test
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>
=== Пакет <code>moments</code> ===
Перед использованием функций из данного пакета, его необходимо предварительно установить и загрузить:
<syntaxhighlight lang="rsplus">
> install.packages(pkgs = "moments")
> library(package = "moments")
</syntaxhighlight>
==== <code>agostino.test</code> - критерий Д'Агостино ====
<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>
==== <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>stats</code>, <code>nortest</code>, <code>moments</code>. Данный пакет предлагает альтернативный вывод результатов в виде объектов S4-класса <code>fHTEST</code>, в том время как все предыдущие функции использовал S3-класс <code>htest</code>.
Перед использованием функций из данного пакета, его необходимо предварительно установить и загрузить:
<syntaxhighlight lang="rsplus">
> install.packages(pkgs = "fBasics")
> library(package = "fBasics")
</syntaxhighlight>
Функция <code>normalTest()</code> является «обёрктой» для остальных функций из пакета <code>fBasics</code>. Задать необходимый критерий моно с помощью аргумента <code>method</code>. Доступны следующие критерии:
* <code>sw</code> - критерий Шапиро - Уилка
* <code>jb</code> - критерий Жарка-Бера
* <code>ks</code> - критерий Колмогорова - Смирнова
* <code>da</code> - критерий Д'Агостино
* <code>ad</code> - критерий Андерсона - Дарлинга.
==== <code>shapiroTest</code> - критерий Шапиро - Уилка ====
<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>
==== <code>ksnormTest</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 17:25:27 2014 by user:
</syntaxhighlight>
== Многомерное нормальное распределение ==
На практике мы встречаемся с двумя вариантами задач по проверке принадлежности распределения нормальному закону: для одномерного и многомерного распределения.
== Одномерное нормальное распределение ==
В качестве <math>H_0</math> для всех нижеприведённых критериев является предположение, что «случайная величина <math>X</math> распределена нормально».
Для демонстрации работы функций, реализующий различные критерий проверки принадлежности распределения нормальному закону сгенерируем вектор случайных чисел, имеющих стандартное нормальное распределение:
<syntaxhighlight lang="rsplus">
> x <- rnorm(n = 100)
</syntaxhighlight>
=== Пакет <code>base</code> ===
==== <code>shapiro.test</code> - критерий Шапиро - Уилка ====
<syntaxhighlight lang="rsplus">
> shapiro.test(x)
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> ===
Перед использованием функций из данного пакета, его необходимо предварительно установить и загрузить:
<syntaxhighlight lang="rsplus">
> install.packages(pkgs = "nortest")
> library(package = "nortest")
</syntaxhighlight>
==== <code>ad.test</code> - критерий Андерсона - Дарлинга ====
<syntaxhighlight lang="rsplus">
> ad.test(x)
Anderson-Darling normality test
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>
=== Пакет <code>moments</code> ===
Перед использованием функций из данного пакета, его необходимо предварительно установить и загрузить:
<syntaxhighlight lang="rsplus">
> install.packages(pkgs = "moments")
> library(package = "moments")
</syntaxhighlight>
==== <code>agostino.test</code> - критерий Д'Агостино ====
<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>
==== <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>stats</code>, <code>nortest</code>, <code>moments</code>. Данный пакет предлагает альтернативный вывод результатов в виде объектов S4-класса <code>fHTEST</code>, в том время как все предыдущие функции использовал S3-класс <code>htest</code>.
Перед использованием функций из данного пакета, его необходимо предварительно установить и загрузить:
<syntaxhighlight lang="rsplus">
> install.packages(pkgs = "fBasics")
> library(package = "fBasics")
</syntaxhighlight>
Функция <code>normalTest()</code> является «обёрктой» для остальных функций из пакета <code>fBasics</code>. Задать необходимый критерий моно с помощью аргумента <code>method</code>. Доступны следующие критерии:
* <code>sw</code> - критерий Шапиро - Уилка
* <code>jb</code> - критерий Жарка-Бера
* <code>ks</code> - критерий Колмогорова - Смирнова
* <code>da</code> - критерий Д'Агостино
* <code>ad</code> - критерий Андерсона - Дарлинга.
==== <code>shapiroTest</code> - критерий Шапиро - Уилка ====
<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>
==== <code>ksnormTest</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 17:25:27 2014 by user:
</syntaxhighlight>
== Многомерное нормальное распределение ==