Как выполнить многомерные тесты на нормальность в 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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *