Проверка многомерной нормальности данных

Многомерные вероятностные распределения в R

Surajit Ray

Professor, University of Glasgow

Зачем проверять нормальность?

  • Классические статистические методы, предполагающие одномерную/многомерную нормальность:
    • Многомерная регрессия
    • Дискриминантный анализ
    • Кластеризация на основе моделей
    • Метод главных компонент (PCA)
    • Многомерный дисперсионный анализ (MANOVA)
Многомерные вероятностные распределения в R

Повторение: тесты на одномерную нормальность

qqnorm(iris_raw[, 1])
qqline(iris_raw[, 1])

  • Если значения лежат вдоль референсной линии, распределение близко к нормальному
Многомерные вероятностные распределения в R

Повторение: тесты на одномерную нормальность

qqnorm(iris_raw[, 1])
qqline(iris_raw[, 1])

  • Если значения лежат вдоль референсной линии, распределение близко к нормальному

  • Отклонение от линии может указывать на

    • тяжёлые хвосты
    • асимметрию
    • выбросы
    • кластеризованные данные
Многомерные вероятностные распределения в R

qqnorm для всех переменных

mvn(iris_raw[, 1:4], univariatePlot = "qqplot")

Многомерные вероятностные распределения в R

Функции библиотеки MVN для проверки многомерной нормальности

MVN version 5.9

  • Тесты на многомерную нормальность:

    • Mardia
    • Henze-Zirkler
    • Royston
  • Графические методы

    • хи-квадрат Q-Q
    • перспективный график
    • контурные графики
Многомерные вероятностные распределения в R

Функции библиотеки MVN для проверки многомерной нормальности

  • Тесты на многомерную нормальность:

    • Mardia $\checkmark$
    • Henze-Zirkler $\checkmark$
    • Royston
  • Графические методы

    • хи-квадрат Q-Q $\checkmark$
    • перспективный график
    • контурные графики
Многомерные вероятностные распределения в R

Проверка многомерной нормальности с помощью теста Мардиа

mvn(iris_raw[, 1:4],mvnTest = "mardia")
$multivariateNormality 
             Test          Statistic              p value Result
1 Mardia Skewness   67.4305087780629 4.75799820400705e-07     NO
2 Mardia Kurtosis -0.230112114480775    0.818004651478188    YES
3             MVN               <NA>                 <NA>     NO
Многомерные вероятностные распределения в R

Проверка многомерной нормальности с помощью qqplot из теста Мардиа

 mvn(iris_raw[, 1:4],mvnTest = "mardia", multivariatePlot = "qq")

Многомерные вероятностные распределения в R

Проверка многомерной нормальности с помощью теста Хенце-Зиркера

mvn(iris_raw[, 1:4],mvnTest = "hz")
$multivariateNormality
           Test  HZ p value MVN
1 Henze-Zirkler 2.3       0  NO
Многомерные вероятностные распределения в R

Проверка многомерной нормальности по видам

mvn(iris[iris$Species  == "setosa", 1:4], 
     mvnTest = "mardia",
     multivariatePlot = "qq")
$multivariateNormality
             Test        Statistic           p value Result
1 Mardia Skewness 25.6643445196298 0.177185884467652    YES
2 Mardia Kurtosis 1.29499223711605 0.195322907441935    YES
3             MVN             <NA>              <NA>    YES

Многомерные вероятностные распределения в R

Давайте потренируемся!

Многомерные вероятностные распределения в R

Preparing Video For Download...