Skip to content
All library documents

Interpreting the Factor Mean Term in the GRS Test

Article Quant Q&A · Author: Alex Günsberg

Summary

The note addresses one part of the Gibbons, Ross, and Shanken test used to evaluate asset-pricing factor models. The test statistic combines estimated pricing errors with a scaling adjustment based on the factor returns. The specific question is how to obtain the adjustment involving the mean factor return divided by its standard deviation when using a Python factor-model library.

The answer interprets these quantities as the sample mean and standard deviation of excess factor returns, then applies the scalar inverse shown in the test formula. It notes that the library’s reported J statistic may supply the alpha-based quadratic form, but this clarification covers only the factor-return adjustment. It does not provide a complete implementation, address conventions for estimating the factor moments, or discuss assumptions and finite-sample caveats of the GRS test.

Key ideas

  • The GRS statistic includes a scaling adjustment based on factor-return moments.
  • The factor mean and standard deviation in the adjustment refer to excess factor returns.
  • The adjustment uses the inverse of a scalar expression involving the squared mean-to-standard-deviation ratio.
  • Clarifying this term alone does not establish that the full test is implemented correctly.

Tags

Full text
# GRS test (Gibbon, Ross and Shanken (1989) in Python


# GRS test (Gibbon, Ross and Shanken (1989) in Python












I'm writing a term paper, where we need to compare the Fama-French 5-factor model and a q-factor model. For the empirical part, I'm using the Python-based Linearmodels library by Kevin Sheppard.

My problem is that I should perform a GRS test (Gibbon, Ross and Shanken (1989)) on the models, but I just can't figure this one out.

The GRS test equation is: $$\frac{T-N-1}{N}\left[1+\left(\frac{E_{T}[f]}{\hat{\sigma}_{T}(f)}\right)^{2}\right]^{-1} \hat{\mathbb{\alpha}}^{\prime} \hat{\Sigma}^{-1} \hat{\mathbb{\alpha}} \sim F_{N, T-N-1}$$

Here are the attributes we get from Linearmodels https://bashtage.github.io/linearmodels/asset-pricing/asset-pricing/linearmodels.asset_pricing.results.LinearFactorModelResults.html#linearmodels.asset_pricing.results.LinearFactorModelResults

The J statistic in Linearmodels library is defined as $J=\hat{\alpha}^{\prime} \hat{\Sigma}_{\alpha}^{-1} \hat{\alpha}^{\prime}$, so that part is probably sorted and the same goes for the first part of the equation. However, the middle part is something I can't figure out... Can someone help me with this?

## Answer by j4bert0 (score 2)

https://quant.stackexchange.com/a/69405

If by the middle part you refer to

$$\bigg[1 + \bigg(\frac{E_T[f]}{\hat{\sigma}_T(f)}\bigg)^2 \bigg]^{-1},$$

then I believe that $E_T[f]$ is the mean of the excess factor returns and $\hat{\sigma}_T(f)$ is the standard deviation of the excess factor returns. As everything is scalar, it is just simple inverse. Python implementation shouldn't be too difficult.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.