Announcement

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

  • Rolling Regression to Calculate Abnormal Returns

    Hi there,
    I used the rolling regression with window 12 months to calculate expected Beta and then I calculate expected returns. After that, I calculate abnormal returns = Real returns - Expected returns.
    My codes is as the following:

    asreg excessR MarpreCSI SmB HmL MOM , wind( Month 12)

    gen expectedALPHA4= Riskfreerate3monthdeposit + _b_MarpreCSI * MarpreCSI +_b_SmB * SmB + _b_HmL * HmL +_b_MOM * MOM

    gen ALPHA4= rp- expectedALPHA4

    and I also calulate the residuals as:

    gen resid4= excessR - _b_cons - _b_MarpreCSI * MarpreCSI - _b_SmB * SmB - _b_HmL * HmL - _b_MOM * MOM

    So, I wonder my code is correct or not?

    Thank you in advance!
    Last edited by Hoa Phan; 12 Apr 2021, 00:59.

  • #2
    Is there a question, or you are reporting on your success?

    Comment


    • #3
      Originally posted by Joro Kolev View Post
      Is there a question, or you are reporting on your success?
      This is a question? Please let me know whether is correct or not or could you please suggest me another way!

      Comment


      • #4
        -asreg- is a user written command with which I am not familiar, so I cannot comment on this part. You should just read the help file to see whether -asreg- is doing what you think it is doing.

        As for the finance part of what you are doing, the constant in a regression of excess returns on the risk factors is the alpha. So your code
        Code:
        gen expectedALPHA4= Riskfreerate3monthdeposit + _b_MarpreCSI * MarpreCSI +_b_SmB * SmB + _b_HmL * HmL +_b_MOM * MOM
        
        gen ALPHA4= rp- expectedALPHA4
        is at best redundant, or at worst incorrect.

        I think these two lines should be replaced by the single line

        Code:
        gen ALPHA4= _b_cons
        The last line is correct, but -asreg- might be able to directly generate residual, or predicted values, and then if so, you can simplify.
        Originally posted by Hoa Phan View Post

        This is a question? Please let me know whether is correct or not or could you please suggest me another way!

        Comment


        • #5
          At first, I aslo think that ALPHA4=_b_cons

          However, on the paper of Journal of Finance, they estimate coefficients (beta), then they calculate expected returns. After that, Alpha (abnormal returns) = real returns - expected returns.
          That's why I code like this:

          gen expectedALPHA4= Riskfreerate3monthdeposit + _b_MarpreCSI * MarpreCSI +_b_SmB * SmB + _b_HmL * HmL +_b_MOM * MOM
          gen ALPHA4= rp- expectedALPHA4

          Comment


          • #6
            The CAPM, and the multifactor generalisations work just as the CAPM, is

            1) E(Ri) = Rf + b*(Mkt - Rf).

            I can rewrite this as

            2) E(Ri - Rf) = a + b*(Mkt - Rf), and observe that the CAPM eq.1 predicts that my a has to be 0.

            Therefore it is not what I thought or you thought, the CAPM says that anything in E(Ri - Rf) which is not explained by b*(Mkt - Rf) is excess return. The parameter a is the constant in your regression and it is the excess return.

            You can also use eq.1 directly, but then you need to be careful, the term is (Mkt - Rf) -- this is the excess return of the market over the risk free rate -- and you are using a term _b_MarpreCSI * MarpreCSI which does not look like an excess return at all, MarpreCSI looks like a raw return.

            Comment


            • #7
              MarpreCSI is equal = Market returns - rf. So, I think you are correct, the b_cons is the ALPHA.
              Thank you so much!

              You can also use eq.1 directly, but then you need to be careful, the term is (Mkt - Rf) -- this is the excess return of the market over the risk free rate -- and you are using a term _b_MarpreCSI * MarpreCSI which does not look like an excess return at all, MarpreCSI looks like a raw return.


              Comment


              • #8
                I double check again and I found that you have to use the expected beta.

                So, the first steps:

                asreg excessR MarpreCSI SmB HmL MOM , wind( Month 12)

                to estimate beta

                The second step I have to calcuate the expected returns from expected beta, and then I calculate abnormal returns = actual returns - expectect returns.

                after run the regression:

                asreg excessR MarpreCSI SmB HmL MOM , wind( Month 12)

                I try by use: predict yhat,xb

                However, this is does not work

                So, I think that my below code may be correct:

                gen expectedALPHA4= Riskfreerate3monthdeposit + _b_MarpreCSI * MarpreCSI +_b_SmB * SmB + _b_HmL * HmL +_b_MOM * MOM
                gen ALPHA4= rp- expectedALPHA4
                Last edited by Hoa Phan; 12 Apr 2021, 04:40.

                Comment


                • #9
                  Thank Joro. I got it. You are right, ALPHA4 =_b_cons.


                  Originally posted by Joro Kolev View Post
                  The CAPM, and the multifactor generalisations work just as the CAPM, is

                  1) E(Ri) = Rf + b*(Mkt - Rf).

                  I can rewrite this as

                  2) E(Ri - Rf) = a + b*(Mkt - Rf), and observe that the CAPM eq.1 predicts that my a has to be 0.

                  Therefore it is not what I thought or you thought, the CAPM says that anything in E(Ri - Rf) which is not explained by b*(Mkt - Rf) is excess return. The parameter a is the constant in your regression and it is the excess return.

                  You can also use eq.1 directly, but then you need to be careful, the term is (Mkt - Rf) -- this is the excess return of the market over the risk free rate -- and you are using a term _b_MarpreCSI * MarpreCSI which does not look like an excess return at all, MarpreCSI looks like a raw return.

                  Comment

                  Working...
                  X