I am currently checking if my data meets the assumptions for path analysis: mainly multivariate normality of the three endogenous variables $m_1,m_2,y$ (As recommended by e.g. Streiner, 2005).
I tested for multivariate normality with the mvn package. Skewness and Kurtosis are both below 1 for all three variables

However the output of the mvn package confuses me. The Mardia test of Skewness and Kurtosis are both insignificant, indicating that my data is multivariate normal distributed.

> mvn(endogenous_vars)
             Test        Statistic           p value Result
1 Mardia Skewness 11.2032901160101 0.341900804258279    YES
2 Mardia Kurtosis 1.39006718069414 0.164508478110692    YES
3             MVN             <NA>              <NA>    YES

          Test  Variable Statistic   p value Normality
1 Shapiro-Wilk    m1        0.9715  <0.001      NO    
2 Shapiro-Wilk    m2        0.9924  0.0342      NO    
3 Shapiro-Wilk     y        0.9832   1e-04      NO 

However the Shapiro-Wilk (as well as others, I tried in the meantime) tests indicate that none of the three variables are univariate normal distributed. First, how can that be? I was under the impression that univariate normality is a prerequisite for multivariate normality (albeit I am obviously mistaken on that point). However, since mvn is given, can I then just continue to analyse my path model? I know that tests for univariate normality have been previously critizied for being to conservative, or at least that some recommend rather graphical inspection of the q-q Plots or Cumulative Density Plot rather than a statistical test.

Streiner, D. L. (2005). Finding our way: An introduction to path analysis. Canadian Journal of Psychiatry, 50(2), 115–122. https://doi.org/10.1177/070674370505000207


1 Answer 1


Multivariate normality implies normality for the marginal distributions, e.g. for the univariate distributions of its components (Anderson, 2003 as cited in Shao & Zhou, 2010).

But there are many different tests for univariate and multivariate normality and one can't assume that any test for univariate normality and any test for multivariate normality share the same power to detect nonnormality.

In your example you could try a test for multivariate normality that is based on the same principles as the univariate Shapiro-Wilk test you have been using. In the mvn package that would be Royston’s multivariate normality test. You can run that test by setting this parameter when calling the mvn function:

mvnTest = "royston"

In your case, since you have univariate nonnormality I would recommend using a robust test.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.