Announcement

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

  • no observations error event study

    Dear Stata community,

    I'm trying to run a loop to generate the normal returns for my event study, however I run into the following error: no observations r(2000);

    A sample of the data that I'm using:

    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input long(firmid date) int eventtime double(return marketreturn)
    10104 20150928 -171 -.027066 -.025666
    10104 20150929 -170 -.000902  .001233
    10104 20150930 -169  .019445  .019076
    10104 20151001 -168  .001948  .001974
    10104 20151002 -167  .015204  .014315
    10104 20151005 -166  .018788   .01829
    10104 20151006 -165 -.003079 -.003588
    10104 20151007 -164  .009817  .008036
    10104 20151008 -163  .008534  .008818
    10104 20151009 -162  .001437  .000725
    10104 20151012 -161 -.000226  .001276
    10104 20151013 -160 -.007799 -.006825
    10104 20151014 -159 -.004298 -.004716
    10104 20151015 -158  .014726  .014853
    10104 20151016 -157  .003398   .00457
    10104 20151019 -156 -.000676  .000271
    10104 20151020 -155 -.001174 -.001421
    10104 20151021 -154  -.00803 -.005825
    10104 20151022 -153  .013958  .016628
    10104 20151023 -152  .009512   .01103
    10104 20151026 -151 -.002833 -.001913
    10104 20151027 -150 -.004484 -.002554
    10104 20151028 -149  .013662   .01184
    10104 20151029 -148  -.00221  -.00045
    10104 20151030 -147 -.004013  -.00481
    10104 20151102 -146  .012462  .011874
    10104 20151103 -145  .003109  .002728
    10104 20151104 -144 -.003391 -.003545
    10104 20151105 -143 -.001398 -.001132
    10104 20151106 -142 -.000379 -.000348
    10104 20151109 -141 -.009617 -.009823
    10104 20151110 -140   .00129  .001511
    10104 20151111 -139 -.004136 -.003228
    10104 20151112 -138 -.014517  -.01399
    10104 20151113 -137 -.009785 -.011207
    10104 20151116 -136  .013755  .014903
    10104 20151117 -135 -.001368 -.001339
    10104 20151118 -134  .015289  .016162
    10104 20151119 -133 -.000995 -.001123
    10104 20151120 -132  .003012   .00381
    10104 20151123 -131 -.000676 -.001235
    10104 20151124 -130  .002372  .001222
    10104 20151125 -129  .001165 -.000129
    10104 20151127 -128   .00078  .000594
    10104 20151130 -127 -.003856 -.004641
    10104 20151201 -126  .009524  .010681
    10104 20151202 -125 -.010729 -.010996
    10104 20151203 -124  -.01433 -.014374
    10104 20151204 -123  .016455  .020526
    10104 20151207 -122 -.009795  -.00699
    10104 20151208 -121 -.006114  -.00649
    10104 20151209 -120   -.0066 -.007739
    10104 20151210 -119   .00205  .002251
    10104 20151211 -118 -.019851 -.019423
    10104 20151214 -117  .001597  .004756
    10104 20151215 -116  .011313  .010619
    10104 20151216 -115  .014906  .014515
    10104 20151217 -114 -.014615 -.015041
    10104 20151218 -113 -.015068 -.017797
    10104 20151221 -112  .007152  .007778
    10104 20151222 -111  .008839  .008817
    10104 20151223 -110  .013685  .012418
    10104 20151224 -109 -.000831 -.001599
    10104 20151228 -108 -.003328 -.002179
    10104 20151229 -107  .010021   .01063
    10104 20151230 -106 -.007376 -.007217
    10104 20151231 -105 -.008202 -.009412
    10104 20160104 -104   -.0149 -.015304
    10104 20160105 -103  .001397  .002012
    10104 20160106 -102 -.013822 -.013115
    10104 20160107 -101  -.02396   -.0237
    10104 20160108 -100 -.010925 -.010838
    10104 20160111  -99 -.001716  .000853
    10104 20160112  -98  .006078  .007803
    10104 20160113  -97 -.025859 -.024965
    10104 20160114  -96  .015461  .016696
    10104 20160115  -95 -.021697 -.021599
    10104 20160119  -94 -.002418  .000532
    10104 20160120  -93 -.010609 -.011694
    10104 20160121  -92  .005685  .005195
    10104 20160122  -91  .022497  .020284
    10104 20160125  -90 -.016696 -.015638
    10104 20160126  -89  .015938  .014144
    10104 20160127  -88 -.010554 -.010863
    10104 20160128  -87   .00508  .005529
    10104 20160129  -86  .024569   .02476
    10104 20160201  -85 -.000359 -.000443
    10104 20160202  -84 -.020012 -.018743
    10104 20160203  -83  .005759  .004992
    10104 20160204  -82  .003651  .001527
    10104 20160205  -81 -.019618 -.018481
    10104 20160208  -80 -.016957 -.014154
    10104 20160209  -79 -.003064 -.000664
    10104 20160210  -78  .000261 -.000189
    10104 20160211  -77 -.011979 -.012301
    10104 20160212  -76  .020146  .019518
    10104 20160216  -75  .017685  .016517
    10104 20160217  -74  .018118   .01648
    10104 20160218  -73 -.004207 -.004666
    10104 20160219  -72 -.000227 -.000026
    end

    My current code is looking as follows:

    Code:
     su firmid
     local N `r(max)'
     
     //Generate normal returns variable
     gen NR_MMM =.
     
     //Creating a loop to generate normal returns
     forvalues i = 1/`N'{
    
    display `i'/`N'
    
    ** Market Model method (MMM)
    quietly reg return marketreturn if (firmid==`i' & eventtime<=-1)
    quietly predict r if firmid==`i'
    quietly replace NR_MMM = r if firmid==`i'
    quietly drop r
    
    }
    gen AR_MMM = return - NR_MMM
    Thanks in advance

  • #2
    The loop index is taking every value between 1 and the max firmid, and for each such value a regression is run on the subset. But, does every value between 1 and N appear as a firmid in your dataset? For any value that does not appear in the dataset, regress is going to run on an empty subset.

    To really get all values between 1 and N you could do:

    Code:
    egen firmid_idx=group(firmid)

    Jean-Claude Arbaut

    Comment


    • #3
      Thank you!!

      Comment

      Working...
      X