Additional information about sphericity

Greenhouse and Geisser epsilon

In this section we provide the motivation for the Greenhouse and Geisser epsilon correction factor.

Box proposed the measure of sphericity to be

Sphericity Box

where Σ = [cij] is the population covariance matrix. Greenhouse and Geisser epsilon is simply the sample approximation of this measure. If we now let C = [cij] be the sample covariance matrix and define S = [sij] where


then S approximates Σ and the Greenhouse and Geisser epsilon becomes

Greenhouse Geisser epsilon formula

Example 1: Calculate the value of the GG epsilon for Example 1 of ANOVA with Repeated Measures with One Within Subjects Factor using the above approach.

GG-epsilon correction Excel

Figure 1 – Calculation of GG epsilon for Example 1

Range A5:D8 in Figure 1 contains the sample covariance matrix (see Figure 3 of Sphericity). E5:E8 contains the row means and A9:D9 contain the column means. E9 contains the grand mean.

Range A14:D17 contains the estimated population matrix as described above. E.g. cell A15 contains the formula =A6-$E6-A$9+$E$9. The elements in row 18 are the values of the diagonal of this matrix formed in the usual way (e.g. cell B18 contains the formula =INDEX(B14:B17,B13).

The value of the GG epsilon is 0.493 (cell F17) is the same as that calculated previously (see Figure 3 of Sphericity).

Observation: An alternative way of calculating GG epsilon is using the eigenvalues λj of matrix S, as follows:

Greenhouse Geisser epsilon eigenvalues

See Example 1 of Goal Seeking and Solver for the definition of an eigenvalue and a way of calculating it. The Real Statistics function eVALUES can also be used to calculate the eigenvalues of a matrix as described in Eigenvalues and Eigenvectors.

Example 2: Calculate the value of the GG epsilon for Example 1 using the eigenvalues of matrix .

GG epsilon eigenvalues Excel

Figure 2 – Calculation of GG epsilon for Example 1 using eigenvalues

The results are given in Figure 2. The eigenvalues of matrix S are produced by highlighting cells A22:C22 (k – 1 = 3 cells) and entering the Real Statistics array formula =eVALUES(A14:D17). The value of GG epsilon (cell G25) is once again .493.

Mauchly’s test for sphericity

In this section we present Mauchly’s test, a commonly used test to determine whether the sphericity assumption holds. Because of its lack of power, Mauchly’s test is not recommended and in fact it is simply better to apply either the GG or HF epsilon correction factor in all cases. We also present John, Nagao and Sugiura’s test for sphericity, a much more powerful and useful test.

Property 1: (Mauchly’s test) Define the following statistics related to the matrix S described above:

image3635 image3637

If  = 1 then the original data meets the sphericity assumption. If the original data meets the sphericity assumption (the null hypothesis) then

Mauchly's Test

Example 3: Determine whether the data in Example 1 meets the Mauchly’s test for sphericity.

Mauchly's test for sphericity

Figure 3 – Mauchly’s test for sphericity

From Figure 3, we reject the null hypothesis and conclude that the sphericity assumption has not been met.

John, Nagao and Sugiura’s test

Property 2: (John, Nagao and Sugiura’s test): Define the following statistics related to the matrix S described above:

image3640 image3641

If the original data meets the sphericity assumption (the null hypothesis) then

John Nagao Sugiura test

Example 4: Determine whether the data in Example 1 meets the John, Nagao and Sugiura’s test for sphericity.

John Nagao Sugiura sphericity

Figure 4 – John, Nagao and Sugiura’s test for sphericity

This test even more definitively shows (see Figure 4) that the data does not meet the sphericity assumption.

Real Statistics Tests for Sphericity

Real Statistics Functions: The following functions implement the two tests for sphericity described above on the data in range R1 in Excel format for one-way repeated measures ANOVA.

MauchlyTest(R1) = p-value of Mauchly’s test for sphericity on the data in range R1

JNSTest(R1) = p-value of the John-Nagao-Sugiura test for sphericity on the data in R1

Note that for Example 1 (based on the data in Figure 1, MauchlyTest(H6:K20) = 1.53E-05 and JNSTest(H6:K20) = 2.96E-15 (consistent with the results shown in Figure 3 and 4).

8 Responses to Additional information about sphericity

  1. jean-luc Roulin says:

    Thanks for your package. I think that for jns test, df would be 5 and not 7.

    • Charles says:

      Thanks for catching the error. My formula had +1 instead of -1 in it. I have now made the correction and revised the website.

  2. Colin says:

    You define [cij] as the population covariance matrix. But in the calculation of GG epsilon, why did you use COV( ) function which gives us a sample covariance matrix.

  3. NAT says:

    Dear Sir,

    I have 3 independent samples and one of eigenvalues is zero. How can I use Mauchly’s Test because the natural logarithm of zero is undefined?

    • Charles says:


      If the three samples are truly independent then the covariance matrix would be a diagonal matrix with the variances on the diagonal and zeros everywhere else. The variances would then be the eigenvalues, This would mean that the variance of one of the samples would be zero, i.e. all the elements in this sample are equal. Is this really your situation?

      In any case a zero eigenvalue would mean that the covariance matrix is not invertible and so all the usual approaches would not work. In particular Mauchly’s test wouldn’t work.

      If you send me an Excel file with your data I can try to figure out what is going on.



      • NAT says:


        I am so sorry! I have 3 dependent samples. My S-matrix as follows:

        2.555 −1.695 −0.859
        −1.695 2.441 −0.746
        −0.859 −0.746 1.605

        I used Excel (or Mathematica or Maple or Matlab) to find eigenvalues of S and had 3 eigenvalues: λ_1 = 4.199, λ_2 = 2.402 và λ_3 = 0. If I use the product λ_1. λ_2. λ_3 , I get W=0. I remove the zero eigenvalue then the W statistic becomes normally! SPSS also gives the result like that. So, can we remove the zero eigenvalues in general?

        • Charles says:

          This is a very strange S matrix. Note that if you invert the S matrix you get a matrix all of whose elements are 1000.
          It would be good to see the original data from which the S matrix was generated to see why you are getting this result.

Leave a Reply

Your email address will not be published. Required fields are marked *