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

Материал Psylab.info - энциклопедии психодиагностики
Перейти к: навигация, поиск
м (Пакет gamlss)
м (Пакет gamlss)
Строка 175: Строка 175:
 
[[Файл:gamlss-histdist.svg|400px|центр]]
 
[[Файл:gamlss-histdist.svg|400px|центр]]
  
С помощью аргумента <code>family</code> можно задать семейство распределений для подгонки и сравнения<ref>Более подробную информацию о доступных семействах распределений можно получить с помощью команды<code>help("gamlss.family")</code>.</ref>.
+
С помощью аргумента <code>family</code> можно задать семейство распределений для подгонки и сравнения<ref>Более подробную информацию о доступных семействах распределений можно получить с помощью команды <code>help("gamlss.family")</code>.</ref>.
  
 
== Многомерное нормальное распределение ==
 
== Многомерное нормальное распределение ==

Версия 21:05, 14 февраля 2014

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

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

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

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

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

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

Статистические критерии

Пакет stats

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

  • shapiro.test - критерий Шапиро - Уилка
  • ks.test - критерий Колмогорова - Смирнова[1]

Пакет nortest

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

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

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

Пакет moments

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

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

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

Пакет fBasics

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

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

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

Пример вызова данной функции:

<syntaxhighlight lang="rsplus"> > normalTest(x, method = "sw")

Title:

Shapiro - Wilk Normality Test

Test Results:

 STATISTIC:
   W: 0.9831
 P VALUE:
   0.2301 

Description:

Fri Feb 14 19:59:59 2014 by user:

</syntaxhighlight>

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

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

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

Пакет TeachingDemos

Данные пакет содержит только одну функцию, имеющую отношение к критериям проверки принадлежности распределения нормальному закону - SnowsPenultimateNormalityTest(). Данная функция возвращают результат в виде S3-класса - htest.

Пакет tseries

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

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

только одну функцию, имеющую отношение к критериям проверки принадлежности распределения нормальному закону - jarque.bera.test, которая является реализацией критерия Жарка-Бера. Данная функция возвращают результат в виде S3-класса - htest.

Пакет lawstat

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

  • rjb.test - критерий Жарка-Бера
  • sj.test - SJ-критерий

Графические методы

Пакет stats

Построение Q–Q plot с помощью пакета stats выглядит следующим образом:

<syntaxhighlight lang="rsplus"> > qqnorm(x) > qqline(x) </syntaxhighlight>

Stats-qqnorm.svg

Пакет car

Альтернативный вариант реализован в функции qqPlot() из пакета car:

<syntaxhighlight lang="rsplus"> > qqPlot(x, distribution = "norm") </syntaxhighlight>

Пакет e1071

Построение P-P plot можно осуществить с помощью функции probplot из пакета e1071:

<syntaxhighlight lang="rsplus"> > probplot(x, qdist = qnorm) </syntaxhighlight>

E1071-probplot.svg

Пакет gamlss

Ещё один интересный способ графического анализа представлен функцией histDist из пакета gamlss:

<syntaxhighlight lang="rsplus"> > histDist(x, family = "NO", density = TRUE)

Family: c("NO", "Normal") Fitting method: "nlminb"

Call: gamlssML(y = y, family = "NO", formula = x)

Mu Coefficients: [1] -0.2273 Sigma Coefficients: [1] 0.09813

Degrees of Freedom for the fit: 2 Residual Deg. of Freedom   98 

Global Deviance: 303.414

           AIC:     307.414 
           SBC:     312.624 

</syntaxhighlight>

Gamlss-histdist.svg

С помощью аргумента family можно задать семейство распределений для подгонки и сравнения[3].

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

Примечания

  1. Для оценки нормальности вызов выглядит следующим образом:ks.test(x, y = "pnorm")
  2. Данная функция вызывает ks.test(x, "pnorm") для трёх альтернативных гипотез - двусторонней и двух односторонних.
  3. Более подробную информацию о доступных семействах распределений можно получить с помощью команды help("gamlss.family").