Quant Memo
Advanced

The Gibbons-Ross-Shanken Test

A factor model regressed on many test portfolios leaves behind many small leftover alphas. The GRS test asks whether all of those alphas, taken together, are small enough to be noise, or whether the model is jointly, statistically missing something.

Prerequisites: Cross-Sectional Factor Return Regressions, The Classical Linear Regression Assumptions

Run CAPM (or any factor model) as a time-series regression on 25 different test portfolios and you get 25 separate alphas, the leftover average return each portfolio earned that the model could not explain. Individually, most look statistically insignificant, small, noisy numbers you would not stake a claim on one at a time. But 25 individually-insignificant alphas can still, taken together, tell a damning story: if they consistently point the same direction, the model is failing in a way no single portfolio's alpha reveals alone. The Gibbons-Ross-Shanken (GRS) test asks exactly that joint question.

The analogy

Imagine a weather forecaster checked against 25 different cities on the same day. In any single city, being off by two degrees is unremarkable. But if the forecaster is off by two degrees in every single one of the 25 cities, always too warm, that is not 25 unlucky coincidences, that is a broken thermometer. Testing each city separately would never catch this; you have to look at all 25 errors jointly. The GRS test is that joint check applied to a factor model's pricing errors.

Building the test

Run a time-series regression of each of NN test portfolios' excess returns on the factor(s):

Ri,t=αi+βift+ϵi,t,i=1,,N.R_{i,t} = \alpha_i + \beta_i f_t + \epsilon_{i,t}, \qquad i = 1, \dots, N.

If the factor model is exactly correct, every αi\alpha_i should be zero, the factor should fully explain each portfolio's average return, leaving nothing systematic behind. GRS tests the joint null hypothesis α1=α2==αN=0\alpha_1 = \alpha_2 = \dots = \alpha_N = 0 all at once, using the statistic

GRS=TN1N(1+fˉ2/σ^f21)1α^Σ^1α^  FN,TN1.\text{GRS} = \frac{T-N-1}{N}\left(\frac{1 + \bar{f}^2/\hat{\sigma}_f^2}{1}\right)^{-1}\hat{\alpha}^\top \hat{\Sigma}^{-1} \hat{\alpha} \ \sim \ F_{N,\,T-N-1}.

Read it piece by piece. α^\hat{\alpha} is the vector of all NN estimated alphas. Σ^\hat{\Sigma} is the covariance matrix of the regression residuals across the NN portfolios; it accounts for alphas not being independent across portfolios that share overlapping stocks. α^Σ^1α^\hat{\alpha}^\top\hat{\Sigma}^{-1}\hat{\alpha} is a distance measure, how far the whole vector of alphas sits from zero, in units that already account for how correlated and how noisy they are with each other. The whole statistic follows a known FF-distribution under the null, so it comes with an exact p-value even in small samples.

In plain words: GRS measures how far the entire collection of leftover average returns sits from a perfect bullseye of zero, properly accounting for portfolios' alphas moving together. A large GRS statistic (small p-value) means the pattern of pricing errors is too large and too systematic to be chance: reject the model.

Distribution · normal
-2.000.002.00μvalue →
Within ±1σ 68.3%mean μ 0.00std σ 1.00

Picture each portfolio's alpha as one draw near this curve's center. Any single draw landing a bit off zero is unremarkable. GRS checks whether many draws, taken together, cluster in a way a curve this narrow could not plausibly produce by chance.

0 25 individually small alphas, all above zero
No single alpha here would pass a t-test. But every one of them sits above zero, a pattern this consistent is exactly what GRS's joint distance measure is built to catch.

An individually-insignificant alpha on every one of 25 portfolios does not mean the model passed. GRS can, and often does, reject a model that no single t-test on any one portfolio would have flagged, because it is testing the joint pattern, not any one portfolio in isolation.

Worked example 1: two portfolios, a simplified intuition

Two test portfolios both show a small positive alpha of 0.3%0.3\% per month, standard error 0.25%0.25\% (t-stat 1.21.2, individually insignificant). If the two portfolios' residuals were uncorrelated, joint testing combines the evidence roughly as a sum of squared t-stats: 1.22+1.22=2.881.2^2 + 1.2^2 = 2.88, versus a chi-squared critical value near 5.99 at 5% significance with 2 degrees of freedom. That falls short of rejection. With five such portfolios all independently showing the same small positive alpha, the sum climbs to 5×1.22=7.25 \times 1.2^2 = 7.2, versus a 5-degree-of-freedom critical value near 11.07, still short. Consistency across many weak signals accumulates evidence, but slowly.

Worked example 2: why correlation among alphas matters

Now suppose the two portfolios' residuals are highly correlated (they overlap heavily in holdings, correlation 0.9). GRS's use of Σ^1\hat{\Sigma}^{-1} down-weights the redundant second piece of evidence: two 90%-correlated alphas both saying "the model missed 0.3%" is closer to one independent piece of evidence than two. A naive test that ignored the correlation would overstate the joint evidence against the model; GRS's covariance-corrected distance measure avoids that double-counting, the central reason it beats simply summing individual t-statistics.

What this means in practice

GRS is the standard academic tool for testing whether CAPM, Fama–French, or a competing model can jointly price a whole grid of test portfolios (commonly 25 size-and-value sorts), and it is the test that repeatedly rejects CAPM outright, motivating the search for additional factors. A commercial risk model whose residuals fail a GRS-style joint test is leaving systematic, jointly-detectable structure on the table that a richer factor set could capture.

A model can pass GRS on one set of test portfolios (say, size-and-value sorts) and fail badly on another set (say, momentum sorts), because GRS only tests whether alphas are jointly zero for the specific portfolios you handed it. Passing GRS is never proof a factor model is "correct," it is only evidence the model was not jointly rejected by that particular test grid, and a different choice of test portfolios can, and often does, produce the opposite verdict.

Related concepts

Practice in interviews

Further reading

  • Gibbons, Ross & Shanken (1989), A Test of the Efficiency of a Given Portfolio
  • Cochrane, Asset Pricing (Ch. 12)
ShareTwitterLinkedIn