Mardia’s joint skewness and kurtosis diagnostics, with a four-point example, covariance conventions and limits of normality testing for financial returns.
Mardia multivariate normality test
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 be p-dimensional observations. Use the sample mean xˉ and the scatter matrix with divisor n:
Sn=n1i=1∑n(xi−xˉ)(xi−xˉ)⊤.
Define covariance-scaled inner products
gij=(xi−xˉ)⊤Sn−1(xj−xˉ).
The diagonal gii=di2 is the squared Mahalanobis distance from the fitted centre. Off-diagonal gij can be negative; it is an inner product, not a squared distance between two observations.
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 0 and 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 Sn to a covariance estimate with divisor n−1 changes the raw measures: conventions and calibration must agree.
Four points: cancellation is not normality
Consider the fictional observations (−1,0), (1,0), (0,−1) and (0,1). Here n=4, p=2, the mean is zero and
Sn=(1/2001/2),d12=d22=d32=d42=2.
Therefore
b2,2=422+22+22+22=4,p(p+2)=8.
For skewness, the sixteen ordered pairs contain four diagonal inner products of +2, four opposite-point inner products of −2, and eight zero inner products. Hence
b1,2=164(23)+4((−2)3)+8(03)=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.
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 p fixed as n grows, is
Large Tskew is evidence against the null. Kurtosis is normally assessed in both directions using ∣Zkurt∣: 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>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.