27 November 2017

Multivariate normality Tests with R - Mardia's Test, Henze-Zirkler, Royston

Most multivariate techniques, such as Linear Discriminant Analysis (LDA), Factor Analysis, MANOVA and Multivariate Regression are based on an assumption of multivariate normality. So, In this post, I am going to show you how you can assess the multivariate normality for the variables in your sample. The above test multivariate techniques can be used in a sample only when the variables follow a Multivariate normal distribution.

For this, you need to install a package called MVN Type install.packages("MVN")and then load the package using R command library(“MVN”)

There are 3 different multivariate normality tests available in this package

1.Mardia's Multivariate Normality Test

2.Henze-Zirkler's Multivariate Normality Test

3.Royston's Multivariate Normality Test

Let's discuss these test in brief here, I am using inbuilt trees data here data(“trees”). This data consists of 3 variables I.e Girth, Height and volume.

First, we use Mardia's test to verify the normality for the above data Type mardiaTest(trees) This will return the results of normality test with 3 variables in it. Data is not multivariate normal when the p-value is less than 0.05 .  When you want to check Multivariate normality of selected variables. Create a subset. Let’s create a subset under name trees1 that includes 1st and 3rd variables using the command Trees1<-trees[c(1,3)].

Now let's check normality of trees1 using Henze-Zirkler's Test Type hzTest(trees1) .

To use Royston's Multivariate Normality Test Type roystonTest(trees1). So, That is how you can test the multivariate normality of variables using R. Give your queries and suggestions in comment section below.

Subscribe Sulthan’s Monologue and YouTube channel for more posts and videos. Follow me in twitter @sulthankhan