A more apples to apples comparison would be between (i) Fama-Macbeth procedure and (2) clustering standard-errors by date. Adding fixed-effects is somewhat different.
Problem: cross-sectional correlation causes naively computed standard errors to be understated
Let $r_{it}$ denote the return of firm $i$ in month $t$. An important statistical issue is that firm returns are cross-sectionall correlated: $\operatorname{Cov}(r_{it}, r_{jt})$ is far from zero. This flows through to significant, positive cross-sectional correlation in the error terms for most any regression specification. The end result is that you'll underestimate standard errors (overstate significance) unless you use standard errors that are consistent in the presence of cross-sectional correlation.
What to do?
Two possible approaches are:
- The Fama-Macbeth procedure: run a cross-sectional regression each period and take a time-series average of those estimates.
- Running a single panel regression and clustering standard-errors by
date.
Both methods rely on zero correlation between the error terms of non-contemporaneous periods. A difference is weighting. The Fama-Macbeth procedure weights each time period equally. A panel regression will effectively give greater weight to periods with more observations or greater variation in right hand side variables.
If your results are basically the same with either method, that's great. If they differ, you need to be careful about what your precise research question is.
Somewhat related is an old debate in the event study literature as whether to equally weight events or calendar time periods. For example, initial public offerings (IPOs) tend to group together in time. Weighting each IPO equally or forming portfolios and weighting each month equally are quite different. Eg. Fama (1998) advocates for calendar time portfolios of abnormal returns. Critics (eg. Ritter) say this is inefficient.
Setup
Imagine you have the panel data model:
$$ y_{it} = \mathbf{x}_{it} \cdot \mathbf{b} + \epsilon_{it}$$
Let's assume:
- Error terms are cross-sectionally correlated: $\operatorname{E}[\epsilon_{it} \epsilon_{jt}] \neq 0$ for $i \neq j$.
- Error terms are uncorrelated over time: $\operatorname{E}[\epsilon_{it} \epsilon_{j\tau}] = 0$ for any $i$ and $j$ and $t \neq \tau$.
Review of Fama-Macbeth procedure
For each time period $t$, run the a cross-sectional regression:
$$ y_{it} = \mathbf{x}_{it} \cdot \mathbf{b}_t + \epsilon_{it}$$
From this, you obtain a time-series of estimates $\hat{\mathbf{b}}_t$. Under the assumption that error terms are uncorrelated over time, we can then compute the overall estimate and standard-errors using the most basic, Stats 1 method. For any component of the vector $\mathbf{b}$ one would compute the estimate and standard-error as:
$$ \hat{\mathbf{b}} = \frac{1}{T} \sum_t \hat{\mathbf{b}}_t \quad \quad \mathit{SE} = \sqrt{\frac{\frac{1}{T} \sum_t \left( \hat{\mathbf{b}}_t - \hat{\mathbf{b}} \right)^2 }{T}}$$
OLS regression and then clustering standard-errors by time
A more modern approach is to run a standard panel regression and then cluster on the date variable.
An advantage of the general panel setting is that it's reasonably straightforward to apply other kinds of corrections to standard errors if you so desired (eg. Hansen-Hodrick, Newey-West, two-way clustering, etc...)
An instructive special case
If you have a balanced panel and no-time series variation in your right hand side variables (i.e. $\mathbf{x}_{it} = \mathbf{x}_i$ for all $i$ and $t$), then your estimate of $\mathbf{b}$ using a single ordinary least squares reression and using the Fama-Macbeth procedure are EXACTLY the same. The two approaches to estimating standard errors though may be quite different depending on the cross-sectional correlation in the errors.
If there is time-series variation in the right hand side variables, the two estimates will differ. What's happening? Fama-Macbeth equally weights each time period while a single OLS regression will effectively give greater weight to periods where $\mathbf{x}_{it}$ have greater variation.
Simple example showing how Fama-Macbeth procedure differens on weighting:
Imagine we have the data:
$$ \begin{array}{cccc} y & x & i & t \\ 0 & 0 & 1 & 1 \\ 0 & 1 & 2 & 1 \\ 0 & 0 & 1 & 2 \\ 2 & 2 & 2 & 2 \end{array} $$
Running the Fama-Macbeth procedure we get $b_1 = 0$ for time period 1 and $b_2 = 1$ hence our estimate of $b$ is $\frac{0 + 1}{2} = .5$.
A single panel regression would estimate $b$ as approximately .9.
References:
Fama, Eugene F., 1998, "Market Efficiency, Long-Term Returns, and Behavioral Finance"