Announcement

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

  • Missing t-score, p-value, CI

    Hi all,

    I have run a cumulative abnormal returns regression and tested for significance with the below code. However have ended up with blank statistics, how can I fix this? I understand I have no independent variable but this is supposed to be the case in testing the significance of my CAR in that The P-value on the constant from this regression will give you the significance of the cumulative abnormal return across all companies. This test is preferable to a t-test because it allows you to use robust standard errors.

    According to: https://dss.princeton.edu/online_hel...ventstudy.html

    I haven't used all the variables in my data as dataex informed me there were too many but if they may be useful I will of course share.

    Thanks


    Linear regression Number of obs = 97
    F( 0, 96) = 0.00
    Prob > F = .
    R-squared = .
    Root MSE = 0

    ------------------------------------------------------------------------------
    | Robust
    cumulative~n | Coef. Std. Err. t P>|t| [95% Conf. Interval]
    -------------+----------------------------------------------------------------
    _cons | -7.760673 . . . . .
    ------------------------------------------------------------------------------

    Code:
    sort id date
    gen abnormal_return=ret-retrf_predict if event_window==1
    by id: egen cumulative_abnormal_return = sum(abnormal_return) 
    
    sort id date
    by id: egen ar_sd = sd(abnormal_return) 
    gen test =(1/sqrt(1)) * ( cumulative_abnormal_return /ar_sd) 
    list company_id cumulative_abnormal_return test if dif==0
    
    reg cumulative_abnormal_return if dif==0, robust
    Sample

    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input float(cumulative_abnormal_return abnormal_return ar_sd test)
    -7.760673          . .3125001 -24.834145
    -7.760673          . .3125001 -24.834145
    -7.760673          . .3125001 -24.834145
    -7.760673          . .3125001 -24.834145
    -7.760673          . .3125001 -24.834145
    -7.760673          . .3125001 -24.834145
    -7.760673          . .3125001 -24.834145

  • #2
    According to your data example, cumulative abnormal return is a constant. So, there is no (information on) variability. The regression result giving the mean CAR is entirely consistent with your example data.

    Any limits on dataex are not an issue here; to be completely certain, we just need to see the 97 values of cumulative abnormal return that went into the regression. That could be the results of something like

    Code:
     
     reg cumulative_abnormal_return if dif==0, robust dataex cumulative_abnormal_return if e(sample)
    Alternatively if you just summarize for yourself the outcome data used in the regression you will, on this hypothesis, see that the minimum and maximum are identical.

    I don't know enough about your field (meaning, more than almost zero) to identify or even suggest any deeper problems.

    Comment


    • #3
      It is indeed an identical minimum and maximum as expected. I'm confused though if CAR is sum of AR then how could it be anything other than a constant? If that is indeed just the problem though then is the code wrong? A cursory google image search of that exact single var regression code shows that it seems to work for others, i.e. t-score and p-value are present.

      Is there another way to test if CAR is significant?

      Comment


      • #4
        CAR should be different in different companies, that is, for different values of your id variable.
        Code:
        by id: egen cumulative_abnormal_return = sum(abnormal_return)

        Comment


        • #5
          In my data I only have 1 "firm" (it's an index of companies) I kept the company_id as convention - is that an issue here? Surely if I wanted the CAR for one firm of many I'd have the same issue?

          Comment


          • #6
            The FAQ you cite tells us that the regression you are attempting is for testing significance across all firms, the implication being that there is more than one firm. You couldn't compute a t-test on a single observation, and in the same way you cannot use this regression-based technique on what is essentially a single observation - the CAR for a single firm. The code for test in the lines preceding your regression is what tests the significance of the CAR for each firm separately.

            With that said, I am surprised that your regression reports 96 observations if you have but a single firm. The FAQ implicitly assumes that for the analysis they describe, each firm has a single event whose date is given by event_date, and the variable diff will measure the number of days between the observation date and the event date for that firm. So diff should only be zero for one observation for each firm.

            Comment


            • #7
              Thanks Will you're right, when I sort by event_window it works. For future readers I adjusted the code as below.

              Code:
              sort event_window
              by event_window : egen cumulative_abnormal_return = sum(abnormal_return)
              
              sort id date
              gen abnormal_return=ret-retrf_predict if event_window==1
              
              
              sort id date
              by id: egen ar_sd = sd(abnormal_return) 
              gen test =(1/sqrt(1)) * ( cumulative_abnormal_return /ar_sd) 
              list event_window cumulative_abnormal_return test if dif==0

              Comment


              • #8
                Hi Will,

                I am now having the same issue but when I include 2 variables. It works for the first 2 regressions, and fails on the third. Apparently again I do not have variation. However I created a new CAR variable and have tested for variation and I do have it as evidenced below.

                Code:
                reg cumulative_abnormal_return if dif==0, robust
                
                Linear regression                                      Number of obs =     241
                                                                       F(  0,   240) =    0.00
                                                                       Prob > F      =       .
                                                                       R-squared     =  0.0000
                                                                       Root MSE      =   .7055
                
                ------------------------------------------------------------------------------
                             |               Robust
                cumulative~n |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
                -------------+----------------------------------------------------------------
                       _cons |  -7.696269   .0454455  -169.35   0.000    -7.785792   -7.606746
                ------------------------------------------------------------------------------
                
                . reg cumulative_abnormal_return if dif==0 & Recession==1, robust
                
                Linear regression                                      Number of obs =      97
                                                                       F(  0,    96) =    0.00
                                                                       Prob > F      =       .
                                                                       R-squared     =  0.0000
                                                                       Root MSE      =  1.1085
                
                ------------------------------------------------------------------------------
                             |               Robust
                cumulative~n |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
                -------------+----------------------------------------------------------------
                       _cons |  -7.600659    .112556   -67.53   0.000    -7.824081   -7.377237
                ------------------------------------------------------------------------------
                
                . reg cumulative_abnormal_return if dif==0 & Recession==0, robust
                
                Linear regression                                      Number of obs =     144
                                                                       F(  0,   143) =    0.00
                                                                       Prob > F      =       .
                                                                       R-squared     =       .
                                                                       Root MSE      =       0
                
                ------------------------------------------------------------------------------
                             |               Robust
                cumulative~n |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
                -------------+----------------------------------------------------------------
                       _cons |  -7.760673          .        .       .            .           .
                ------------------------------------------------------------------------------
                Code:
                 bysort event_window Recession : egen try = sum(abnormal_return)
                
                . tabstat try, by(Recession)
                
                Summary for variables: try
                     by categories of: Recession (Recession)
                
                Recession |      mean
                ----------+----------
                        0 |  -.412672
                        1 |  .0230675
                ----------+----------
                    Total | -.2368663
                ---------------------
                
                sum event_window if Recession==0
                
                    Variable |       Obs        Mean    Std. Dev.       Min        Max
                -------------+--------------------------------------------------------
                event_window |      2892    .0501383     .218268          0          1
                Code:
                * Example generated by -dataex-. To install: ssc install dataex
                clear
                input byte(dif event_window Recession) float try
                0 1 0 -8.230673
                0 1 0 -8.230673
                0 1 0 -8.230673
                0 1 1  .4699998
                0 1 1  .4699998
                0 1 1  .4699998
                end

                Comment


                • #9
                  I do not understand the changes you made in post #7. The variable event_window takes on just two values, 0 and 1. If you have 96 different events for your single firm, and you want to treat each event separately, you need to replace your use of "company_id" in the code at the top of the FAQ with a variable that has a distinct value for each event, and for the days surrounding that event. This is going to be tricky if event windows or estimation windows overlap for successive events. I can speculate on possibly appropriate code, but in the absence of sample data, can't propose anything.

                  If you can't figure out how to accomplish this on your own, you probably should start a new topic with a more appropriate title, and post sample data using dataex.

                  With that said, it's not clear to me that using the methodology from the FAQ for a single company with multiple events is appropriate.

                  Comment


                  • #10
                    If I just want to see the impact of the event_windows over the time series without reference to specific dates - is what I have appropriate?

                    Comment


                    • #11
                      From the FAQ

                      Now we are at the point where we can actually start an analysis. First we need a way to estimate Normal Performance. To do this, we will run a seperate regression for each company using the data within the estimation window and save the alphas (the intercept) and betas (the coefficient of the independent variable).
                      Since you are apparently not running 96 separate regressions - one for for each event - I expect the answer to your question is "no".

                      Comment


                      • #12
                        That's where I don't understand, because it doesn't state a regression for each event, but for each company, of which I have one. What am I missing?

                        Comment


                        • #13
                          The FAQ describes applying the "event study" methodology. It applies that methodology to a set of events that each occur in a different firm. This is a particularly common use of the methodology, but not the only possible use. That does not make it a "firm study" methodology.

                          Perhaps you need to improve your background on event study methodology. See for example the article in Wikipedia

                          https://en.wikipedia.org/wiki/Event_study

                          Comment

                          Working...
                          X