Как выполнять многомерные тесты на нормальность в R


Когда мы хотим проверить, нормально ли распределена одна переменная, мы можем создать график QQ , чтобы визуализировать распределение, или мы можем выполнить формальный статистический тест, такой как тест Андерсона-Дарлинга или тест Харка-Бера .

Однако, когда мы хотим проверить, нормально ли распределяются несколько переменных как группы, мы должны выполнить многомерный тест на нормальность .

В этом руководстве объясняется, как выполнить следующие многомерные тесты на нормальность для заданного набора данных в R:

  • Тест Мардии
  • Энергетический тест
  • Многомерные тесты эксцесса и перекоса

Связанный: если мы хотим идентифицировать выбросы в многомерной настройке, мы можем использовать расстояние Махаланобиса .

Пример: тест Мардии в R

Тест Мардиа определяет, соответствует ли группа переменных многомерному нормальному распределению. Нулевая и альтернативная гипотезы для теста следующие:

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 с использованием пакета Energy :

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

Р-значение теста составляет 0,31.Поскольку это не меньше 0,05, мы не можем отвергнуть нулевую гипотезу теста. У нас нет доказательств того, что три переменные в нашем наборе данных не подчиняются многомерному распределению.

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

Дополнительные ресурсы

Как создать и интерпретировать график QQ в R
Как провести тест Андерсона-Дарлинга в R
Как провести тест Харке-Бера в R
Как выполнить тест Шапиро-Уилка в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.