Normaliteit van multivariate data controleren

Multivariate kansverdelingen in R

Surajit Ray

Professor, University of Glasgow

Waarom normaliteit controleren?

  • Klassieke statistische technieken die univariate/multivariate normaliteit veronderstellen:
    • Multivariate regressie
    • Discriminantanalyse
    • Modelgebaseerde clustering
    • Principalecomponentenanalyse (PCA)
    • Multivariate variantie-analyse (MANOVA)
Multivariate kansverdelingen in R

Herhaling: univariate normaliteitstoetsen

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

  • Als de waarden langs de referentielijn liggen, is de verdeling bijna normaal
Multivariate kansverdelingen in R

Herhaling: univariate normaliteitstoetsen

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

  • Als de waarden langs de referentielijn liggen, is de verdeling bijna normaal

  • Afwijking van de lijn kan duiden op

    • zwaardere staarten
    • scheefheid
    • uitbijters
    • geclusterde data
Multivariate kansverdelingen in R

qqnorm van alle variabelen

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

Multivariate kansverdelingen in R

MVN-bibliotheek: functies voor multivariate normaliteitstoetsen

MVN versie 5.9

  • Multivariate normaliteitstoetsen door

    • Mardia
    • Henze-Zirkler
    • Royston
  • Grafische benaderingen

    • chi-kwadraat Q-Q
    • perspectief
    • contourplots
Multivariate kansverdelingen in R

MVN-bibliotheek: functies voor multivariate normaliteitstoetsen

  • Multivariate normaliteitstoetsen door

    • Mardia $\checkmark$
    • Henze-Zirkler $\checkmark$
    • Royston
  • Grafische benaderingen

    • chi-kwadraat Q-Q $\checkmark$
    • perspectief
    • contourplots
Multivariate kansverdelingen in R

Multivariate normaliteit controleren met de Mardia-toets

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
Multivariate kansverdelingen in R

Multivariate normaliteit controleren met de qqplot van de Mardia-toets

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

Multivariate kansverdelingen in R

Multivariate normaliteit controleren met de Henze-Zirkler-toets

mvn(iris_raw[, 1:4],mvnTest = "hz")
$multivariateNormality
           Test  HZ p value MVN
1 Henze-Zirkler 2.3       0  NO
Multivariate kansverdelingen in R

Multivariate normaliteit testen per soort

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

Multivariate kansverdelingen in R

Laten we de toetsen voor multivariate normaliteit gebruiken!

Multivariate kansverdelingen in R

Preparing Video For Download...