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