Performs the E-statistic (energy) test of multivariate or univariate normality.
mvnorm.test(x, R)
mvnorm.etest(x, R)
mvnorm.e(x)
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
.
data matrix of multivariate sample, or univariate data vector
number of bootstrap replicates
Maria L. Rizzo mrizzo@bgsu.edu and Gabor J. Szekely
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.
Szekely, G. J. and Rizzo, M. L. (2005) A New Test for Multivariate Normality, Journal of Multivariate Analysis, 93/1, 58-80, tools:::Rd_expr_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).
normal.test
for the energy test of univariate
normality and normal.e
for the statistic.
## compute normality test statistic for iris Setosa data
data(iris)
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)
Run the code above in your browser using DataLab