The following text describes what is Mardia's coeffecient, how to calculate its value and what software to use for the calculations:
Multivariate Normality testing
A useful statistic for checking multivariate Normality, Mardia's (1970,1974) multivariate kurtosis coefficient, which can be normalised and compared to a Standard Normal Distribution may be evaluated using MATLAB code, using R code or the statistical software package EQS (1995) which is available for use in CBSU. Most other structural equation modelling software should also routinely compute Mardia's kurtosis coefficient.
For N cases with p variables and a sample covariance matrix, S, we have
where vectors, z(t) and zbar are individual case score and mean vectors.
and the normalised estimate
g(2,p) / Sqrt{(8p(p+2)/N)}
The hypothesis of multivariate Normality should be rejected for both large and small of the normalised estimate values when using very large samples ie values above +1.96 or below -1.96.
MANOVA is robust to modest violations of multivariate Normality for equal sample sizes, df of 20 in the univariate analyses or at least 20 observations in cells when dealing with unequal samples (Tabachnick and Fidell, 2007).
A Fortran 77 program for evaluating Kant's method for testing multivariate normality is also available together with test data sets and references for other methods. It is contained in this zip file here.
A SPSS macro from DeCarlo (1997) for evaluating Mardia's g2 test of kurtosis and skewness (g1) are available from here. In this article DeCarlo points out that a lack of univariate skewness and kurtosis are necessary but not sufficient conditions for multivariate skewness, kurtosis and normality.
Note: A slightly edited version of DeCarlo's SPSS macro is reproduced here where full stops have been added to the comment lines (asterisked) and the DO IF statement to allow the program to run.
More on testing univariate skew and kurtosis (which DeCarlo(1997) suggests as necessary but not sufficient for testing multivariate Normality).
References
Bentler P.M. (1995) EQS Structural Equations Program Manual. Multivariate software Inc. :Enchino, CA.
DeCarlo L.T. (1997) On the meaning and use of kurtosis. Psychological Methods, 2, 292-307.
Mardia, K.V. (1970) Measures of multivariate skewness and kurtosis with applications. Biometrika, 57, 519-530.
Mardia, K.V. (1974) Applications of some measures of multivariate skewness and kurtosis in testing normality and robustness studies. Sankhya, B36, 115-128.
Tabachnick, B. G. and Fidell, L. S. (2007) Using multivariate statistics. Pearson International:Boston,USA.
Performs multivariate normality tests and graphical approaches and implements multivariate outlier detection and univariate normality of marginal distributions through plots and tests.
License GPL (>= 2)
NeedsCompilation no
Repository CRAN
Date/Publication 2015-06-03 07:52:46
mardiaTest Mardia’s Multivariate Normality Test
Description
This function performs Mardia’s Multivariate Normality Test.
Usage
mardiaTest(data, cov = TRUE, qqplot = FALSE)
Arguments
data a numeric matrix or data frame
cov if TRUE covariance matrix is normalized by n, if FALSE it is normalized by n-1
qqplot if TRUE it creates a chi-square Q-Q plot
Details
This function calculate the Mardia’s multivariate skewness and kurtosis coefficients as well as their corresponding statistical significance. It can also calculate corrected version of skewness coefficient for small sample size (n< 20).
For multivariate normality, both p-values of skewness and kurtosis statistics should be greater than 0.05.
If sample size less than 20 then p.value.small should be used as significance value of skewness instead of p.value.skew.
Value
g1p Mardia’s multivariate skewness statistic
chi.skew Chi-square value of the skewness statistic
p.value.skew p-value of the skewness statistic
g2p Mardia’s multivariate kurtosis statistic
z.kurtosis z value of the kurtosis statistic
p.value.kurt p-value of kurtosis statistic
chi.small.skew Chi-square value of the small sample skewness statistic
p.value.small p-value of small sample skew statistic
Author(s)
Selcuk Korkmaz, Dincer Goksuluk, Gokmen Zararsiz
6 mvnPlot
References
Trujillo-Ortiz, A. and R. Hernandez-Walls. (2003). Mskekur: Mardia’s multivariate skewness and
kurtosis coefficients and its hypotheses testing. A MATLAB file. URL http://www.mathworks.
Alternatively, If you happen to have AMOS (an SEM program distributed by the SPSS folks, often bundled together), you can run any structural equation model that includes your study variables and get a Mardia coefficient (select tests for normality and outliers in the analysis options). The Mardia coefficient is labelled as "multivariate kurtosis" in the output, and comes with a critical value.
Mardia's test is very popular because it was one of the very first available... however, mardia's test is *only* for multivariate skewness and kurtosis. it will not tell you whether your data is multivariate normal or not. people use it because it tests for two conditions which are necessary for normality... or, in other words, you can read this like: "all normal distributions (whether multivriate or not) are symmetric (non-skewed) and mesokurtic (have that curved bubble shape at the top instead of a sharp edge or something totally flat) but not all symmetric, mesokurtic distributions are normal". you can play around with the student's t-distribution or the binomial distribution and get them to be symmetric and mesokurtic but mardia's test will fail to tell you they're not normal (only that they're not skewed/mesokurtic).
The following text describes what is Mardia's coeffecient, how to calculate its value and what software to use for the calculations:
Multivariate Normality testing
A useful statistic for checking multivariate Normality, Mardia's (1970,1974) multivariate kurtosis coefficient, which can be normalised and compared to a Standard Normal Distribution may be evaluated using MATLAB code, using R code or the statistical software package EQS (1995) which is available for use in CBSU. Most other structural equation modelling software should also routinely compute Mardia's kurtosis coefficient.
For N cases with p variables and a sample covariance matrix, S, we have
where vectors, z(t) and zbar are individual case score and mean vectors.
and the normalised estimate
g(2,p) / Sqrt{(8p(p+2)/N)}
The hypothesis of multivariate Normality should be rejected for both large and small of the normalised estimate values when using very large samples ie values above +1.96 or below -1.96.
MANOVA is robust to modest violations of multivariate Normality for equal sample sizes, df of 20 in the univariate analyses or at least 20 observations in cells when dealing with unequal samples (Tabachnick and Fidell, 2007).
A Fortran 77 program for evaluating Kant's method for testing multivariate normality is also available together with test data sets and references for other methods. It is contained in this zip file here.
A SPSS macro from DeCarlo (1997) for evaluating Mardia's g2 test of kurtosis and skewness (g1) are available from here. In this article DeCarlo points out that a lack of univariate skewness and kurtosis are necessary but not sufficient conditions for multivariate skewness, kurtosis and normality.
Note: A slightly edited version of DeCarlo's SPSS macro is reproduced here where full stops have been added to the comment lines (asterisked) and the DO IF statement to allow the program to run.
More on testing univariate skew and kurtosis (which DeCarlo(1997) suggests as necessary but not sufficient for testing multivariate Normality).
References
Bentler P.M. (1995) EQS Structural Equations Program Manual. Multivariate software Inc. :Enchino, CA.
DeCarlo L.T. (1997) On the meaning and use of kurtosis. Psychological Methods, 2, 292-307.
Mardia, K.V. (1970) Measures of multivariate skewness and kurtosis with applications. Biometrika, 57, 519-530.
Mardia, K.V. (1974) Applications of some measures of multivariate skewness and kurtosis in testing normality and robustness studies. Sankhya, B36, 115-128.
Tabachnick, B. G. and Fidell, L. S. (2007) Using multivariate statistics. Pearson International:Boston,USA.
Performs multivariate normality tests and graphical approaches and implements multivariate outlier detection and univariate normality of marginal distributions through plots and tests.
License GPL (>= 2)
NeedsCompilation no
Repository CRAN
Date/Publication 2015-06-03 07:52:46
mardiaTest Mardia’s Multivariate Normality Test
Description
This function performs Mardia’s Multivariate Normality Test.
Usage
mardiaTest(data, cov = TRUE, qqplot = FALSE)
Arguments
data a numeric matrix or data frame
cov if TRUE covariance matrix is normalized by n, if FALSE it is normalized by n-1
qqplot if TRUE it creates a chi-square Q-Q plot
Details
This function calculate the Mardia’s multivariate skewness and kurtosis coefficients as well as their corresponding statistical significance. It can also calculate corrected version of skewness coefficient for small sample size (n< 20).
For multivariate normality, both p-values of skewness and kurtosis statistics should be greater than 0.05.
If sample size less than 20 then p.value.small should be used as significance value of skewness instead of p.value.skew.
Value
g1p Mardia’s multivariate skewness statistic
chi.skew Chi-square value of the skewness statistic
p.value.skew p-value of the skewness statistic
g2p Mardia’s multivariate kurtosis statistic
z.kurtosis z value of the kurtosis statistic
p.value.kurt p-value of kurtosis statistic
chi.small.skew Chi-square value of the small sample skewness statistic
p.value.small p-value of small sample skew statistic
Author(s)
Selcuk Korkmaz, Dincer Goksuluk, Gokmen Zararsiz
6 mvnPlot
References
Trujillo-Ortiz, A. and R. Hernandez-Walls. (2003). Mskekur: Mardia’s multivariate skewness and
kurtosis coefficients and its hypotheses testing. A MATLAB file. URL http://www.mathworks.
Alternatively, If you happen to have AMOS (an SEM program distributed by the SPSS folks, often bundled together), you can run any structural equation model that includes your study variables and get a Mardia coefficient (select tests for normality and outliers in the analysis options). The Mardia coefficient is labelled as "multivariate kurtosis" in the output, and comes with a critical value.
Mardia's test is very popular because it was one of the very first available... however, mardia's test is *only* for multivariate skewness and kurtosis. it will not tell you whether your data is multivariate normal or not. people use it because it tests for two conditions which are necessary for normality... or, in other words, you can read this like: "all normal distributions (whether multivriate or not) are symmetric (non-skewed) and mesokurtic (have that curved bubble shape at the top instead of a sharp edge or something totally flat) but not all symmetric, mesokurtic distributions are normal". you can play around with the student's t-distribution or the binomial distribution and get them to be symmetric and mesokurtic but mardia's test will fail to tell you they're not normal (only that they're not skewed/mesokurtic).
In Structural Equation Modeling with AMOS 2nd edition (page 104) mentioned that in practice, values > 5.0 are indicative of data that are non normally distributed.
How do you interpret Mardia skewness and kurtosis statistics whose p-values are less than 0.05 [i.e., are statistically significant] in a multivariate equation system?