I am deeply confused right now and hope someone can help me out a bit. I want to replicate part of a paper from Fama/French (2008), Dissecting anomalies, specifically, Table IV "Average Slopes and t-statistics from Monthly Cross-Section Regressions, July 1963–December 2005."

They say these are the average slopes of monthly cross-sectional regressions and reference Fama/MacBeth (1973):

We use the cross-section regression approach of Fama and MacBeth (1973) to answer this question

but I thought the FM approach was a two-step approach: First, time-series regression of each stock to get the factor loadings, secondly a monthly cross-sectional regression to get the premiums which are then averaged. But I don't get it here. They say:

The variables used to predict returns for July of t to June of $t+1$ are: MC, the natural log of market cap in June of $t$ (in millions)...,

but what exactly do I put in the variable MC for the cross-sectional regressions? Each firm has its own market cap in June, its own book-to-market ratio etc. Could someone clarify this for me?


To make it clearer, assuming I have the returns, market value and the accruals of three stocks for three months (I assume my accruals and market value changes monthly, for simplicity's sake), do I do the following? For each stock, I do a time-series regression

$$Ret_{it} = \beta_1 MV + \beta_2 Accruals + a_{it}$$

Now I have three estimates for \beta_1 and \beta_2. In the second step I do three times (for each of the three month) a cross-sectional regression

$$Ret_{it} = \beta_{1;i} \lambda_{MV} + \beta_{2;i} \lambda_{Accruals}$$

Now I have three estimates for the two factor premiums $\lambda_{MV}$ and $\lambda_{Accruals}$ and do the average of them to get my final factor premiums?



The main result of the Fama-MacBeth procedure is to calculate standard errors that correct for cross-sectional correlation in a panel. It is a commonly used method due to it's easily approach, and with regards to the time it was developed (1973), modern techniques like clustered robust standard errors were not yet invented. In this context, it was a convenient technique that allowed changing betas over time, which a single unconditional cross-sectional regression or a time-series regression test cannot easily handle.

Fama-MacBeth regression

In the original application of their 1973-paper, Fama-MacBeth run the following cross-sectional regression at each period of time: $$R_{t}^{ei}= \beta_{i}^{'}\lambda_t+a_{it}$$

where $R_{t}^{ei}$ is the excess-return of asset $i$ at time $t$ and $\beta_{i}^{'}$ denotes the estimated beta-factor of the stock. The first step you described is the time-series estimation of $\beta_{i}^{'}$. What follows is the estimation of beta's risk-premium, i.e. the slope $\lambda_t$ (see this excellent answer for more details).

They suggest that we can estimate $\lambda$ and $a_{it}$ as the average of the cross-sectional regression estimates, $$\hat{\lambda} = \frac{1}{T} \sum_{t=1}^{T}{\hat{\lambda}}_t$$ $$\hat{a}_i = \frac{1}{T} \sum_{t=1}^{T}{\hat{a}}_{it}$$

but most importantly, they suggest that we use the standard deviations of the cross-sectional regression estimates to generate the sampling errors for these estimates, $$\sigma^2(\hat{\lambda}) = \frac{1}{T^2} \sum_{t=1}^{T}{\left( \hat{\lambda}_t - \hat{\lambda} \right)^2}$$ $$\sigma^2(\hat{a}_i) = \frac{1}{T^2} \sum_{t=1}^{T}{\left( \hat{a}_{it} - \hat{a}_i \right)^2} $$

Cochrane (2005) states:

Sampling error is about how a statistic would vary from one sample to the next if we repeated the observations. We cannot do that with only one sample, but why not cut the sample in half [..]. The Fama-MacBeth procedure carries this idea to its logical conclusion, using the variation in the statistic $\hat{\lambda}_t$ over time to deduce its variation across samples.

Your approach

You mention


,which is right, just as each stock has it's own estimate for $\hat{\beta}_i$. Besides the variable for the momentum of a stock (which is updated each month), each variable is measured at the end of June in year $t$. Then, you have to run the above regression (in a multivariate way!), where $\beta_{i}^{'}$ is replaced by the single variables market-capitalization,..., for July of year $t$ up to end of June in $t+1$. In fact, for these regression, only the left hand sight variable of a stocks (monthly) excess-return is updated.

To be clear: You match the monthly stock return with variables measured at the end of the previous month (e.g the monthly return of July with market-cap, etc. at the end of June).

In June of $t+1$, you update your right-hand variables and go on for the whole period of time, which finally gives you the whole monthly time-series for slopes of each variable.


Based on your edited question, let me carefully point out the Fama-MacBeth procedure:

The preliminary time-series regression in their 1973-paper is run to get the estimates $\beta_i$ for each stock. This is necessary, as one can not directly observe beta-factors, and their calculation is based on a time-series regression.

In your example, you already have observed values for your variables of interest (MV, accruals,...). So you directly step into the monthly cross-sectional regressions. Based on your cited paper, you can use the same value for MV, etc. measured at the end of June in year $t$ for the whole subsequent year up to end of June in $t+1$. For each monthly regression, you observe the slopes $\lambda_{it}$, where you can calculate the time-series average and standard errors with the above formulas.


Cochrane (2005), Asset Pricing, rev. edition, chap. 12.3.

  • 1
    $\begingroup$ Thank you so much for this answer: just to be clear: in the cross-sectional regressions my beta(i) is replaced by my market values of the respective companies? Why do i do the first time-series regression in the first place then? I thought in the cross-sectional regression I put in the factor loadings which I got from the first time-series regression in order to get the factor-premiums. $\endgroup$ – AahuM Nov 13 '18 at 13:44
  • 1
    $\begingroup$ I will edit my post to make my problem a bit clearer $\endgroup$ – AahuM Nov 13 '18 at 13:44
  • 1
    $\begingroup$ Thank you so much, now I finally get it :) $\endgroup$ – AahuM Nov 13 '18 at 14:55
  • $\begingroup$ say, one final question: does using newey west standard erros make any sense in this set-up? I am not using any time-series regressions, but directly cross-sectional. kind regards $\endgroup$ – AahuM Nov 14 '18 at 18:41
  • $\begingroup$ If you believe in the Fama/MacBeth assumption that $\operatorname{E}[\epsilon_{it} \epsilon_{j\tau}] = 0$ holds for any firm $i$ and $j$ at each time $t \neq \tau$, then there is no need for correcting standard errors. Otherwise, you certainly can correct them, but then instead of the Fama/MacBeth procedure, you may apply the more modern clustered panel regression (and cluster the error term over $t$). $\endgroup$ – skoestlmeier Nov 18 '18 at 10:35

Your Answer

