Jak wykonać wielowymiarowe testy normalności w r
Kiedy chcemy sprawdzić, czy pojedyncza zmienna ma rozkład normalny, możemy utworzyć wykres QQ w celu wizualizacji rozkładu lub przeprowadzić formalny test statystyczny, taki jak test Andersona Darlinga lub test Jarque-Bera .
Jeśli jednak chcemy sprawdzić, czy wiele zmiennych ma rozkład normalny jako grupa, musimy przeprowadzić wielowymiarowy test normalności .
W tym samouczku wyjaśniono, jak wykonać następujące wielowymiarowe testy normalności dla danego zbioru danych w R:
- Próba Mardii
- Próba energii
- Wielowymiarowe testy kurtozy i skośności
Powiązane: Jeśli chcemy zidentyfikować wartości odstające w kontekście wielu zmiennych, możemy użyć odległości Mahalanobisa .
Przykład: test Mardii w R
Test Mardii określa, czy grupa zmiennych ma wielowymiarowy rozkład normalny. Hipotezy zerowe i alternatywne testu są następujące:
H 0 (null): Zmienne mają wielowymiarowy rozkład normalny.
H a (alternatywa): Zmienne nie mają wielowymiarowego rozkładu normalnego.
Poniższy kod pokazuje, jak wykonać ten test w R przy użyciu pakietu 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
Funkcja mult.norm() sprawdza normalność wielowymiarową zarówno pod względem skośności, jak i kurtozy zbioru danych. Ponieważ obie wartości p są nie mniejsze niż 0,05, nie możemy odrzucić hipotezy zerowej testu. Nie mamy dowodów na to, że trzy zmienne w naszym zbiorze danych nie mają rozkładu wielowymiarowego.
Przykład: test energetyczny w R
Test energii to kolejny test statystyczny, który określa, czy grupa zmiennych ma wielowymiarowy rozkład normalny. Hipotezy zerowe i alternatywne testu są następujące:
H 0 (null): Zmienne mają wielowymiarowy rozkład normalny.
H a (alternatywa): Zmienne nie mają wielowymiarowego rozkładu normalnego.
Poniższy kod pokazuje, jak wykonać ten test w R przy użyciu pakietu energetycznego :
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
Wartość p testu wynosi 0,31 . Ponieważ liczba ta jest nie mniejsza niż 0,05, nie udaje nam się odrzucić hipotezy zerowej testu. Nie mamy dowodów na to, że trzy zmienne w naszym zbiorze danych nie mają rozkładu wielowymiarowego.
Uwaga: Argument R=100 określa 100 replik z mapowaniem wzmacniającym, które mają zostać użyte podczas uruchamiania testu. W przypadku zestawów danych o mniejszych próbach można zwiększyć tę liczbę, aby uzyskać bardziej wiarygodne oszacowanie statystyki testowej.
Dodatkowe zasoby
Jak utworzyć i zinterpretować wykres QQ w R
Jak wykonać test Andersona-Darlinga w R
Jak wykonać test Jarque-Bera w R
Jak wykonać test Shapiro-Wilka w R