Kontroll av normalitet hos multivariata data

Multivariata sannolikhetsfördelningar i R

Surajit Ray

Professor, University of Glasgow

Varför kontrollera normalitet?

  • Klassiska statistiska metoder som antar univariat/multivariat normalitet:
    • Multivariat regression
    • Diskriminantanalys
    • Modellbaserad klustring
    • Principalkomponentanalys (PCA)
    • Multivariat variansanalys (MANOVA)
Multivariata sannolikhetsfördelningar i R

Repetition: univariata normalitetstester

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

  • Om värdena ligger längs referenslinjen är fördelningen nära normalfördelad
Multivariata sannolikhetsfördelningar i R

Repetition: univariata normalitetstester

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

  • Om värdena ligger längs referenslinjen är fördelningen nära normalfördelad

  • Avvikelse från linjen kan indikera

    • tyngre svansar
    • skevhet
    • outliers
    • klustrade data
Multivariata sannolikhetsfördelningar i R

qqnorm för alla variabler

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

Multivariata sannolikhetsfördelningar i R

MVN-bibliotekets funktioner för multivariata normalitetstester

MVN version 5.9

  • Multivariata normalitetstester enligt

    • Mardia
    • Henze-Zirkler
    • Royston
  • Grafiska metoder

    • chi-kvadrat Q-Q
    • perspektivplot
    • konturtplot
Multivariata sannolikhetsfördelningar i R

MVN-bibliotekets funktioner för multivariata normalitetstester

  • Multivariata normalitetstester enligt

    • Mardia $\checkmark$
    • Henze-Zirkler $\checkmark$
    • Royston
  • Grafiska metoder

    • chi-kvadrat Q-Q $\checkmark$
    • perspektivplot
    • konturtplot
Multivariata sannolikhetsfördelningar i R

Kontroll av multivariat normalitet med Mardias test

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
Multivariata sannolikhetsfördelningar i R

Använda qqplot från Mardias test för att kontrollera multivariat normalitet

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

Multivariata sannolikhetsfördelningar i R

Kontroll av multivariat normalitet med Henze-Zirklers test

mvn(iris_raw[, 1:4],mvnTest = "hz")
$multivariateNormality
           Test  HZ p value MVN
1 Henze-Zirkler 2.3       0  NO
Multivariata sannolikhetsfördelningar i R

Test av multivariat normalitet per art

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

Multivariata sannolikhetsfördelningar i R

Nu kör vi en övning!

Multivariata sannolikhetsfördelningar i R

Preparing Video For Download...