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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *