mvnorm.test {energy}R Documentation

E-statistic (Energy) Test of Multivariate Normality


Performs the E-statistic (energy) test of multivariate or univariate normality.


mvnorm.test(x, R)
mvnorm.etest(x, R)



data matrix of multivariate sample, or univariate data vector


number of bootstrap replicates


If x is a matrix, each row is a multivariate observation. The data will be standardized to zero mean and identity covariance matrix using the sample mean vector and sample covariance matrix. If x is a vector, mvnorm.e returns the univariate statistic normal.e(x). If the data contains missing values or the sample covariance matrix is singular, mvnorm.e returns NA.

The \mathcal{E}-test of multivariate normality was proposed and implemented by Szekely and Rizzo (2005). The test statistic for d-variate normality is given by

\mathcal{E} = n (\frac{2}{n} \sum_{i=1}^n E\|y_i-Z\| - E\|Z-Z'\| - \frac{1}{n^2} \sum_{i=1}^n \sum_{j=1}^n \|y_i-y_j\|),

where y_1,\ldots,y_n is the standardized sample, Z, Z' are iid standard d-variate normal, and \| \cdot \| denotes Euclidean norm.

The \mathcal{E}-test of multivariate (univariate) normality is implemented by parametric bootstrap with R replicates.


The value of the \mathcal{E}-statistic for multivariate normality is returned by mvnorm.e.

mvnorm.test returns a list with class htest containing


description of test


observed value of the test statistic


approximate p-value of the test

description of data

mvnorm.etest is replaced by mvnorm.test.


If the data is univariate, the test statistic is formally the same as the multivariate case, but a more efficient computational formula is applied in normal.e.

normal.test also provides an optional method for the test based on the asymptotic sampling distribution of the test statistic.


Maria L. Rizzo and Gabor J. Szekely


Szekely, G. J. and Rizzo, M. L. (2005) A New Test for Multivariate Normality, Journal of Multivariate Analysis, 93/1, 58-80, doi: 10.1016/j.jmva.2003.12.002.

Mori, T. F., Szekely, G. J. and Rizzo, M. L. "On energy tests of normality." Journal of Statistical Planning and Inference 213 (2021): 1-15.

Rizzo, M. L. (2002). A New Rotation Invariant Goodness-of-Fit Test, Ph.D. dissertation, Bowling Green State University.

Szekely, G. J. (1989) Potential and Kinetic Energy in Statistics, Lecture Notes, Budapest Institute of Technology (Technical University).

See Also

normal.test for the energy test of univariate normality and normal.e for the statistic.


 ## compute normality test statistic for iris Setosa data
 mvnorm.e(iris[1:50, 1:4])

 ## test if the iris Setosa data has multivariate normal distribution
 mvnorm.test(iris[1:50,1:4], R = 199)

[Package energy version 1.7-10 Index]