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

Припущення про належність випадкової величини нормальному закону розподілу лежить в основі багатьох статистичних методів і критеріїв. У ряді випадків дотримання цієї вимоги є критичним для застосування того чи іншого методу.

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

Перед використанням функцій з пакетів їх необхідно попередньо встановити і завантажити:

> Install.packages (pkgs = "pkgname")> library (package = "pkgname")

Пакет fBasics містить також функцію normalTest (). яка є «обёрктой» для ряду функцій з того ж пакета. Необхідний критерій можна задати за допомогою аргументу method. Доступні наступні критерії:

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

Приклад виклику даної функції:

Пакет lawstat містить також функцію sj.test (). яка є реалізацією рабастного критерію нормальності, створеного на основа критерію Шапіро - Уїлки.

Пакет TeachingDemos містить функцію SnowsPenultimateNormalityTest (). реалізовує неописаний в літературі критерій. Ця функція повертає тільки рівень статистичної значущості, який свідчить про відхилення розподілу від нормального закону.

маленькі хитрощі

Застосування функцій до декількох змінним

За допомогою apply -функцій можна послідовно застосувати функцію до вектору, списку або масиву. Перш ніж нам необхідно сформувати таблицю даних. За допомогою функції replicate () сгенерируем 10 змінних, що мають стандартний нормальний розподіл, які об'єднуються в клас data.frame.

> DF <- data.frame(replicate(n = 10, rnorm(n = 100)))

Структура згенерованої таблиці виглядає наступним чином:

Для вирішення поставленого завдання можна скористатися функцією sapply (). Але перш, нам необхідно трохи відформатувати формат виведення результатів нашої функції: нам потрібно витягти значення критерію і його рівень значущості, тому що результат функції shapiro.test () містить також інформацію, яка не підлягає включенню до підсумкову таблицю, наприклад, інформація про використаний метод (критерії) і уточнення характеру альтернативної гіпотези. Висновок результатів тест Шапіро - Уїлки виглядає наступним чином:

> Shapiro.test (x) Shapiro-Wilk normality test data: x W = 0.9903, p-value = 0.6882

Структура результату застосування функції shapiro.test () представлена ​​нижче:

> Str (shapiro.test (x)) List of 4 $ statistic: Named num 0.99. - attr (*, "names") = chr "W" $ p.value. num 0.688 $ method. chr "Shapiro-Wilk normality test" $ data.name: chr "x" - attr (*, "class") = chr "htest"

Як бачимо, крім значень критерію і рівня значущості тут міститься інформація про застосовуваний методі. Ми можемо відфільтрувати висновок такий спосіб:

Схожі статті