I'm reaching out regarding the R-Squared of a Fama-Macbeth regression. This is often reported in econometric results but I have yet to find a good explanation of how it is computed.

Specifically, if I consider the second stage of a Fama-Macbeth regression, where we are potentially running hundreds of regressions, how are the R-Squareds of these hundreds of regressions aggregated into a final R-Squared for the entire procedure? I understand that the coefficients are aggregated by a simple averaging, but was unclear about the R-Squareds.

I understand that there are codes to do this, but am trying to understand what's under the hood.



From the Fama-Macbeth regression we specify a model where each return $y_{i,t}$ of portfolio $i$ in time period $t$ can be priced by: $$ y_{i,t}=\gamma_0 + \gamma_1 \beta_{1, i}+ \gamma_2 \beta_{2, i} + \dots + \gamma_j \beta_{N,i} $$

where $N$ represents the total number of factors.

When calculating the predicted values to calculate our $R^2$, do we take the residuals of each time period or the mean portfolio returns, i.e. are our residuals $y_{i,t}-\hat{y}_{i,t}$ ($i \times t$ number of resids) or only $y_{i}-\hat{y}_{i}$ (i number of resids).

  • $\begingroup$ This has been further discussed here. $\endgroup$
    – M.Ba
    Commented Feb 14, 2019 at 22:16

1 Answer 1


There's nothing different here. To compute $R^2$, you need the actual values $y_i$ and the fitted (i.e. model predicted) values $\hat{y}_i$. Think of the Fama-Macbeth procedure as just another way to get fitted values $\hat{y}_i$.

Once you have your coefficient estimate $\hat{\mathbf{b}}$ from running Fama-Macbeth. Calculate $R^2$ the usual way: calculate the total sum of squares, obtain the fitted values $\hat{y}_i = \mathbf{x}_i \cdot \hat{\mathbf{b}}$, calculate the explained sum of squares, and then compute $R^2$.

Quick econometrics review

Imagine you have the following panel regression.

$$ y_{it} = \mathbf{x}_{it} \cdot \mathbf{b} + \epsilon_{it} $$

Now let's imagine that the error terms are cross-sectionally correlated (i.e. $\operatorname{E}[\epsilon_{it}\epsilon_{jt}] \neq 0$) but across time, the error-terms are independent (and we have $\operatorname{E}[\epsilon_{it_1}\epsilon_{j t_2}] = 0$ for $t_1 \neq t_2$). Because of the cross-sectional correlation, the typical OLS standard errors are going to be understated. In typical finance settings, they will be massively understated because cross-sectional correlation is big.

What to do?

  • Option 1: Compute clustered standard errors, clustering on the time variable. (This is arguably a more modern approach.)
  • Option 2: Fama-Macbeth procedure

(Note: in typical situations, you should obtain similar results but the two approaches involve different weighting.)

Back in 1973, cluster robust, Rogers standard errors weren't around yet, and instead Fama and Macbeth developed their immensely intuitive procedure. The basic intuition is that:

  1. Each time period is independent, so we can use our regular Stats 1 techniques to estimate the mean and t-stat for a stationary time series.

  2. We can run period by period cross-sectional regressions to obtain a time-series of estimates $\{\hat{\mathbf{b}}_t\}$

Combine (1) and (2) and you have the Fama-Macbeth procedure.

  • $\begingroup$ I appreciate your clear and precise answers! Let me ask you about your notation on the error-terms across time: Is it really the subscript $i$ and $j$ in the formula $\operatorname{E}[\epsilon_{it_1}\epsilon_{j t_2}] = 0$? That would be independency across both time and firm, but i think it should be only across time for the same firm, i.e. $i=j$? If i am wrong, could you please describe and clarify the economic intuition behind that certain expression? $\endgroup$ Commented Nov 9, 2018 at 9:51
  • 1
    $\begingroup$ @skoestlmeier Imagine the return of IBM in month $t$ is correlated with the return of Apple in month $t-1$. This can lead the time series of cross-sectional regression estimates $\hat{\mathbf{b}}_t$ to be autocorrelated. Taking the mean $\hat{b} = \frac{1}{T} \sum_t \hat{b}_t$ and computing the standard error of the mean as $\sigma_{\hat{b}} = \frac{\sqrt{\frac{1}{T-1} \sum_{t=1}^T (\hat{b}_t - \hat{b})^2 }}{\sqrt{T}}$ (as done in Fama-Macbeth procedure) would ignore that autocorrelation. $\endgroup$ Commented Nov 9, 2018 at 15:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.