Skip to content

Mardia multivariate normality test

Mardia’s joint skewness and kurtosis diagnostics, with a four-point example, covariance conventions and limits of normality testing for financial returns.

The Mardia multivariate normality test is a pair of diagnostics for departures from a multivariate normal distribution, based on joint skewness and kurtosis. For a vector of asset returns or model residuals, it checks features of the joint distribution that separate normality tests on each asset can miss. The two components usually produce separate test statistics and p-values.

First fix the covariance convention

Let x1,…,xn\mathbf{x}_1,\ldots,\mathbf{x}_n be pp-dimensional observations. Use the sample mean xˉ\bar{\mathbf{x}} and the scatter matrix with divisor nn:
Sn=1n∑i=1n(xi−xˉ)(xi−xˉ)⊤.S_n=\frac{1}{n}\sum_{i=1}^n(\mathbf{x}_i-\bar{\mathbf{x}})(\mathbf{x}_i-\bar{\mathbf{x}})^\top.

Define covariance-scaled inner products

gij=(xi−xˉ)⊤Sn−1(xj−xˉ).g_{ij}=(\mathbf{x}_i-\bar{\mathbf{x}})^\top S_n^{-1}(\mathbf{x}_j-\bar{\mathbf{x}}).
The diagonal gii=di2g_{ii}=d_i^2 is the squared Mahalanobis distance from the fitted centre. Off-diagonal gijg_{ij} can be negative; it is an inner product, not a squared distance between two observations.

Mardia's sample measures are

b1,p=1n2∑i=1n∑j=1ngij3,b2,p=1n∑i=1ngii2=1n∑i=1ndi4.b_{1,p}=\frac{1}{n^2}\sum_{i=1}^n\sum_{j=1}^n g_{ij}^3, \qquad b_{2,p}=\frac{1}{n}\sum_{i=1}^n g_{ii}^2 =\frac{1}{n}\sum_{i=1}^n d_i^4.
The first captures joint third-moment structure; it is nonnegative and is not a signed average of the assets' individual skewness. The second measures the fourth moment of covariance-scaled radius, a multivariate kurtosis. With population parameters, the normal benchmarks are 00 and p(p+2)p(p+2). The latter is not the exact finite-sample mean of the fitted statistic. The MVN package authors' exposition, §2.1, sets out these measures and their usual test calibration.

Both measures are unchanged by a nonsingular affine change of coordinates when the mean and scatter are refitted consistently. Changing SnS_n to a covariance estimate with divisor n−1n-1 changes the raw measures: conventions and calibration must agree.

Four points: cancellation is not normality

Consider the fictional observations (−1,0)(-1,0), (1,0)(1,0), (0,−1)(0,-1) and (0,1)(0,1). Here n=4n=4, p=2p=2, the mean is zero and

Sn=(1/2001/2),d12=d22=d32=d42=2.S_n=\begin{pmatrix}1/2&0\\0&1/2\end{pmatrix}, \qquad d_1^2=d_2^2=d_3^2=d_4^2=2.

Therefore

b2,2=22+22+22+224=4,p(p+2)=8.b_{2,2}=\frac{2^2+2^2+2^2+2^2}{4}=4, \qquad p(p+2)=8.

For skewness, the sixteen ordered pairs contain four diagonal inner products of +2+2, four opposite-point inner products of −2-2, and eight zero inner products. Hence

b1,2=4(23)+4((−2)3)+8(03)16=0.b_{1,2}=\frac{4(2^3)+4((-2)^3)+8(0^3)}{16}=0.
Four fictional points lie on the coordinate axes at unit radius. With scatter 0.5 times the identity, every squared Mahalanobis distance is 2. Mardia skewness is 0 and kurtosis is 4, versus the population normal benchmark 8. No p-value is calculated.
Four fictional points lie on the coordinate axes at unit radius. With scatter 0.5 times the identity, every squared Mahalanobis distance is 2. Mardia skewness is 0 and kurtosis is 4, versus the population normal benchmark 8. No p-value is calculated.
Original fictional example. Central symmetry cancels the cubic inner products; the kurtosis comparison exposes a different feature. The benchmark is a population reference, not a rejection threshold for these four observations.
Zero skewness clearly does not establish normality. More generally, even matching both population benchmarks cannot characterise an entire probability law. These four points illustrate the calculations; no asymptotic p-value is assigned to this tiny sample. A finite observed sample is not itself the population distribution being tested.

From descriptive measures to tests

For independent, identically distributed observations under a multivariate normal null with positive-definite population covariance, the classical large-sample calibration, with pp fixed as nn grows, is

Tskew=nb1,p6→dχp(p+1)(p+2)/62,Zkurt=b2,p−p(p+2)8p(p+2)/n→dN(0,1).T_{\mathrm{skew}}=\frac{n b_{1,p}}{6} \xrightarrow{d}\chi^2_{p(p+1)(p+2)/6}, \qquad Z_{\mathrm{kurt}}= \frac{b_{2,p}-p(p+2)}{\sqrt{8p(p+2)/n}} \xrightarrow{d}\mathcal{N}(0,1).
Large TskewT_{\mathrm{skew}} is evidence against the null. Kurtosis is normally assessed in both directions using ∣Zkurt∣\lvert Z_{\mathrm{kurt}}\rvert: unusually small radial fourth moments also contradict the normal model. Finite-sample corrections exist, including a small-sample skewness adjustment described in the MVN paper. Report the convention and correction used; neither turns the displayed asymptotic laws into universal exact distributions.

The inverse requires full column rank after centring: n>pn>p is necessary, and exact collinearity still prevents inversion. A pseudoinverse or a regularised covariance matrix defines a different procedure whose null calibration needs justification. Numerical instability can also make an apparently invertible matrix unreliable.

What a quant should conclude

Normal marginal returns do not imply joint normality: dependence can remain non-Gaussian. Conversely, a large radial kurtosis is not a direct estimate or identification of tail dependence. It aggregates radial fourth moments, without specifying which assets share extreme losses.

Return observations also have a time order. Serial dependence and changing conditional volatility can invalidate the i.i.d. calibration; applying a covariance scaling across assets does not remove those temporal features. Elbouch, Michel and Comon explicitly develop a different kurtosis calibration for dependent samples under additional mixing assumptions. If testing fitted residuals, account for the model fitting and filtering in the reference procedure.

A non-rejection is limited evidence, not certification that Gaussian risk estimates are accurate in the tails. Inspect the joint geometry and extremes alongside the test. Specify the observation vector, horizon, window and test rule before looking at results: repeatedly changing the asset universe or deleting unusual dates until the test passes creates a multiple testing and selection problem. If either component triggers a single overall rejection decision, its combined false-positive rate also needs control.

For the underlying distributional definitions, linear portfolios and conditional-normal formulas, see The Multivariate Normal Distribution and Its Inadequacy for Risk. The public page previews the lesson; full teaching requires membership.

Sources

Last updated
  • multivariate statistics
  • normality testing
  • skewness
  • kurtosis
  • mahalanobis distance
  • financial data
← Back to the glossaryBack to top ↑