Як виконати багатофакторні тести нормальності в r


Якщо ми хочемо перевірити, чи є одна змінна нормально розподіленою чи ні, ми можемо створити графік QQ для візуалізації розподілу або виконати формальний статистичний тест, як-от тест Андерсона Дарлінга або тест Жарке-Бера .

Однак, коли ми хочемо перевірити, чи кілька змінних нормально розподілені як група, нам потрібно виконати багатовимірний тест на нормальність .

У цьому підручнику пояснюється, як виконати такі багатовимірні тести нормальності для певного набору даних у R:

  • Тест Мардіа
  • Енергетичний тест
  • Багатофакторні тести ексцесу та асиметрії

Пов’язане: якщо ми хочемо визначити викиди в багатовимірному контексті, ми можемо використати відстань Махаланобіса .

Приклад: тест Мардіа в Р

Тест Mardia визначає, чи відповідає група змінних багатофакторному нормальному розподілу. Нульова та альтернативна гіпотези тесту такі:

H 0 (нульовий): Змінні мають багатовимірний нормальний розподіл.

H a (альтернатива): Змінні не відповідають багатовимірному нормальному розподілу.

Наступний код показує, як виконати цей тест у R за допомогою пакета QuantPsyc :

 library (QuantPsyc)

#create dataset
set.seed(0)

data <- data.frame(x1 = rnorm(50),
                   x2 = rnorm(50),
                   x3 = rnorm(50))

#perform Multivariate normality test
mult.norm(data)$ mult.test

Beta-hat kappa p-val
Skewness 1.630474 13.5872843 0.1926626
Kurtosis 13.895364 -0.7130395 0.4758213

Функція mult.norm() перевіряє багатовимірну нормальність як асиметрії, так і ексцесу набору даних. Оскільки обидва p-значення не менше 0,05, ми не можемо відхилити нульову гіпотезу тесту. У нас немає доказів того, що три змінні в нашому наборі даних не мають багатовимірного розподілу.

Приклад: енергетичний тест у R

Енергетичний тест — це ще один статистичний тест, який визначає, чи відповідає група змінних багатофакторному нормальному розподілу. Нульова та альтернативна гіпотези тесту такі:

H 0 (нульовий): Змінні мають багатовимірний нормальний розподіл.

H a (альтернатива): Змінні не відповідають багатовимірному нормальному розподілу.

У наведеному нижче коді показано, як виконати цей тест у R за допомогою енергетичного пакета:

 library (energy)

#create dataset
set.seed(0)

data <- data.frame(x1 = rnorm(50),
                   x2 = rnorm(50),
                   x3 = rnorm(50))

#perform Multivariate normality test
mvnorm.etest(data, R= 100 )

Energy test of multivariate normality: estimated parameters

data: x, sample size 50, dimension 3, replicates 100
E-statistic = 0.90923, p-value = 0.31

P-значення тесту становить 0,31 . Оскільки цей показник не менше 0,05, ми не можемо відхилити нульову гіпотезу тесту. У нас немає доказів того, що три змінні в нашому наборі даних не мають багатовимірного розподілу.

Примітка. Аргумент R=100 визначає 100 реплік із підсиленням, які слід використовувати під час виконання тесту. Для наборів даних із меншим розміром вибірки ви можете збільшити це число, щоб отримати більш надійну оцінку тестової статистики.

Додаткові ресурси

Як створити та інтерпретувати діаграму QQ у R
Як виконати тест Андерсона-Дарлінга в R
Як виконати тест Жарке-Бера в R
Як виконати тест Шапіро-Вілка в R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *