Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fama-MacBeth Regression

    Dear Statalist,

    I am trying to run a Fama-MacBeth regression and am running into several issues. Allow me to first check that I understand the FMB methodology correctly, because this is where my first uncertainty arises:

    Firstly, N time series regressions are carried out. Secondly, the betas out of this regression are used as input for the second step (T cross-sectional regressions). Then the coefficient on these betas (call them lambdas) are averaged to have one single lambda per factor. Correct?
    So if I have a panel with 9 cross-sectional units and 300 time periods, then I first have 9 regressions with 300 observations each. The second step is then 300 regressions with 9 observations.

    Is there any limitation on whether the factors used need to be global factors or not, i.e. whether they can or must vary across the 9 cross-sectional units?

    What is the difference between Fama-MacBeth and Fama-French regressions? This has got me very confused.

    Now, with regard to running the regression in STATA: I have been using the user-written command xtfmb. The help and ado file point out that the first step is T cross-sectional regressions and the second step is the coefficient averaging. So what I don’t understand is what happened to the actual first step of FMB (assuming I understood the procedure correctly)…

    I have a mixture of global and individual factors (i.e. some that don’t vary across the 9 units and some that do). The “global” variables are dropped when I put them in xtfmb, which I guess makes sense if the first step of xtfmb is to run 300 cross-sectional regressions in which the global variables are identical across all 9 observations. But isn’t xtfmb missing the actual first step of 9 regressions with 300 observations each?

    Thanks for helping!

  • #2
    You have asked too many questions in one post. I will try to answer few of your questions
    So if I have a panel with 9 cross-sectional units and 300 time periods, then I first have 9 regressions with 300 observations each. The second step is then 300 regressions with 9 observations.
    The Fama and Mcbeth (1973) regression are cross-sectional regression, not time series. That implies that in your example, you will have 300 regressions, each one having 9 observations, i.e. nine cross sectional units.

    Is there any limitation on whether the factors used need to be global factors or not, i.e. whether they can or must vary across the 9 cross-sectional units?
    Since the regressions are cross-sectional, the factor must vary across cross sectional units.

    What is the difference between Fama-MacBeth and Fama-French regressions? This has got me very confused.
    Fama-MacBeth regression are cross sectional, as mentioned above and are predictive in nature. Fama and French regressions, specifically in 1993 paper, are time-series, i.e., they develop portfolios and risk factors, then the time-series returns of each portfolio are regressed on the time series of risk factors.

    So what I don’t understand is what happened to the actual first step of FMB (assuming I understood the procedure correctly)…
    The first stage 300 regressions are not useful, they are used just to obtain the average coefficients of the factors used in regressions.

    If you need more specific help, you can visit our group page at http://www.opendoors.pk/stata-professors/paid-help---asset-pricing-models-using-stata
    Regards
    --------------------------------------------------
    Attaullah Shah, PhD.
    Professor of Finance, Institute of Management Sciences Peshawar, Pakistan
    FinTechProfessor.com
    https://asdocx.com
    Check out my asdoc program, which sends outputs to MS Word.
    For more flexibility, consider using asdocx which can send Stata outputs to MS Word, Excel, LaTeX, or HTML.

    Comment


    • #3
      ​Thank you very much for your reply and apologies for all the questions in that one post (rookie error).

      I see that the xtfmb command for example is just the cross-sectional regression for each time period. On the other hand, I have been reading (well-published) papers that use "global" factors as explanatory variables in a first step of N time-series regressions, follow it up with T cross-sectional regressions (where the betas from the global factors as an input in the cross-sectional regression now vary across cross-sectional units) and call the whole thing a Fama-MacBeth regression.

      Originally posted by Attaullah Shah View Post
      The first stage 300 regressions are not useful, they are used just to obtain the average coefficients of the factors used in regressions.
      I don't understand what the 'average coefficients' are that you are referring to.

      So overall, is it okay to estimate the N time-series regressions (on global and individual factors) and then run xtfmb for the cross-sectional step?

      Comment


      • #4
        Is anyone able to clarify this for me?
        Any help appreciated!

        Comment


        • #5
          F Dreher The crucial point is that the Fama-MacBeth (1973) procedure is a three step process:
          1. Run N time-series regressions.
          2. Perform one cross-sectional regression, where the N coefficient estimates from (1) are your explanatory variables.
          3. Repeat (1) and (2) going ahead in time to get a time-series of coefficient estimates from (2). Use this time-series to obtain the "average coefficient" and its standard error.
          As it stands, the user-written program xtfmb performs only (2) and (3) but not (1). If you insist using xtfmb you could run (1) first using the rolling command (see help rolling) and merge the resulting dataset with your left-hand side variable to run xtfmb thereafter.

          The Fama-MacBeth procedure has been critized for several reasons. One is that -- in its original form -- the estimate for the standard error is biased if there is serial correlation in your time-series of coefficient estimates from (2). You might want to take a look into Petersen (2009) who discusses this problem in detail.
          Last edited by Roberto Liebscher; 15 Feb 2017, 04:42.

          Comment


          • #6
            Originally posted by Roberto Liebscher View Post
            F Dreher The crucial point is that the Fama-MacBeth (1973) procedure is a three step process:
            1. Run N time-series regressions.
            2. Perform one cross-sectional regression, where the N coefficient estimates from (1) are your explanatory variables.
            3. Repeat (1) and (2) going ahead in time to get a time-series of coefficient estimates from (2). Use this time-series to obtain the "average coefficient" and its standard error.
            As it stands, the user-written program xtfmb performs only (2) and (3) but not (1). If you insist using xtfmb you could run (1) first using the rolling command (see help rolling) and merge the resulting dataset with your left-hand side variable to run xtfmb thereafter.

            The Fama-MacBeth procedure has been critized for several reasons. One is that -- in its original form -- the estimate for the standard error is biased if there is serial correlation in your time-series of coefficient estimates from (2). You might want to take a look into Petersen (2009) who discusses this problem in detail.
            Hello, Roberto @Roberto Liebscher, my problem is when using the rolling command, I have to define the window size which can't be zero, this means the number of beta estimates I get from (1) is always less than N. Could you please give me some advice about this?

            Comment


            • #7
              rina hall Rolling is a time-series command. The windows option is for telling Stata how long each of the time-series should be. That's not what was meant in step 1. In step 1 N stands for the number of securities in the sample. For each of the securities a time-series regression is run. Thus, I am unsure why one would use rolling here. But if you state your code people may be better able to help you with this.

              Comment

              Working...
              X