楼主: sheren33
15705 19

[时间序列问题] stata 做event study [推广有奖]

  • 0关注
  • 0粉丝

VIP1

高中生

5%

还不是VIP/贵宾

-

威望
0
论坛币
3456 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
175 点
帖子
18
精华
0
在线时间
20 小时
注册时间
2010-9-14
最后登录
2011-4-28

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我在用STATA做EVENT STUDY,参考http://dss.princeton.edu/usingdata/stata/analysis/eventstudydataprep.html,现在在做数据准备,我想问的是是不是就是直接COPY命令就可以了?比如变量company_id 是不是我自己导入的数据名称可以代替,比如我是OPEL,那company_id就全部转换为opel?
麻烦大家了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:event study Stata study Event Even

沙发
sheren33 发表于 2010-9-15 22:38:43 |只看作者 |坛友微信交流群
很急啊,请各位帮忙啊,有偿的也是可以的!

使用道具

藤椅
ironszark 发表于 2010-10-5 15:29:58 |只看作者 |坛友微信交流群
不懂。。。。哈哈。

使用道具

板凳
johnayl 发表于 2010-10-5 22:09:12 |只看作者 |坛友微信交流群
the princeton example has two datasets, event data (about the events for each company identified by company_id), and stock data (including stock returns information).

since each company has multiple counts of the same event, you don't need to keep all the event data.

if you have a dataset with some id variable (company_id in the princeton example), then of course you can name it as you like.

please be more specific about your question.

使用道具

报纸
听海无声 发表于 2010-10-25 22:29:50 |只看作者 |坛友微信交流群
这个数据处理的程序对么?有的部分是不是还要自己修改!
use eventdates, clear
by company_id: gen eventcount=_N
这个程序就有问题吧!
一生负气成今日,四海无人对夕阳

使用道具

地板
蓝色 发表于 2010-10-26 07:45:42 |只看作者 |坛友微信交流群
程序是没有问题的。
我用他提供的部分数据都能运行出来的。
看下面蓝色字体部分

. cd E:\program\stata\event_study\
E:\program\stata\event_study
. insheet using "E:\program\stata\event_study\eventdates.csv",com names clear
(2 vars, 62 obs)
. sort company_id
. save "E:\program\stata\event_study\eventdates.dta",replace
file E:\program\stata\event_study\eventdates.dta saved
.
. by company_id: gen eventcount=_N
.
. by company_id: keep if _n==1
(59 observations deleted)
. sort company_id
. keep company_id eventcount
. save "E:\program\stata\event_study\eventcount.dta",replace
file E:\program\stata\event_study\eventcount.dta saved
.
.
. insheet using "E:\program\stata\event_study\stockdata.csv",com names clear
(4 vars, 390 obs)
. save "E:\program\stata\event_study\stockdata.dta",replace
file E:\program\stata\event_study\stockdata.dta saved
.
. sort company_id
. merge company_id using eventcount
(note: you are using old merge syntax; see [D] merge for new syntax)
variable company_id does not uniquely identify observations in the master data
. tab _merge
     _merge |      Freq.     Percent        Cum.
------------+-----------------------------------
          3 |        390      100.00      100.00
------------+-----------------------------------
      Total |        390      100.00
. keep if _merge==3
(0 observations deleted)
. drop _merge
.
.
. expand eventcount
(8279 observations created)
.
. drop eventcount
. sort company_id date
. by company_id date: gen set=_n
. sort company_id set
. save stockdata2,replace
file stockdata2.dta saved
.
.
.
. use eventdates, clear
. by   company_id: gen set=_n
. sort company_id set
. save eventdates2,replace
file eventdates2.dta saved
.
. use stockdata2, clear
. merge company_id set using eventdates2
(note: you are using old merge syntax; see [D] merge for new syntax)
variables company_id set do not uniquely identify observations in the master data
. tab _merge
     _merge |      Freq.     Percent        Cum.
------------+-----------------------------------
          3 |      8,669      100.00      100.00
------------+-----------------------------------
      Total |      8,669      100.00
.
.
. list company_id if _merge==2
. keep if _merge==3
(0 observations deleted)
. drop _merge
.                  
. egen group_id = group(company_id set)
.
.
. sort company_id date
. by company_id: gen datenum=_n
. by company_id: gen target=datenum if date==event_date
(8647 missing values generated)
. egen td=min(target), by(company_id)
. drop target
. gen dif=datenum-td
.
. *For calendar days:
. *gen difc=date-event_date
.
.
. by company_id: gen event_window=1 if dif>=-2 & dif<=2
(8654 missing values generated)
. egen count_event_obs=count(event_window), by(company_id)
. by company_id: gen estimation_window=1 if dif<-30 & dif>=-60
(8579 missing values generated)
. egen count_est_obs=count(estimation_window), by(company_id)
. replace event_window=0 if event_window==.
(8654 real changes made)
. replace estimation_window=0 if estimation_window==.
(8579 real changes made)
.
.
. tab company_id if count_event_obs<5
no observations
. tab company_id if count_est_obs<30
no observations
.
.
.  drop if count_event_obs < 5
(0 observations deleted)
.  drop if count_est_obs < 30
(0 observations deleted)
.
. set more off /* this command just keeps stata from pausing after each screen of output */
.
. gen predicted_return=.
(8669 missing values generated)
. egen id=group(company_id)
.
.
. /* for multiple event dates, use: egen id = group(group_id) */
. sum id

    Variable |       Obs        Mean    Std. Dev.       Min        Max
-------------+--------------------------------------------------------
          id |      8669    2.427154    .8592213          1          3
. local N=r(max)
.
.
. forvalues i=1(1)`N' { /*note: replace N with the highest value of id */
  2.         list id company_id if id==`i' & dif==0
  3.         reg ret market_return if id==`i' & estimation_window==1
  4.         predict p if id==`i'
  5.         replace predicted_return = p if id==`i' & event_window==1
  6.         drop p
  7. }
      +---------------+
      | id   compan~d |
      |---------------|
1943. |  1         GM |
      +---------------+
      Source |       SS       df       MS              Number of obs =      30
-------------+------------------------------           F(  1,    28) =       .
       Model |  .621092774     1  .621092774           Prob > F      =  0.0000
    Residual |  3.6790e-06    28  1.3139e-07           R-squared     =  1.0000
-------------+------------------------------           Adj R-squared =  1.0000
       Total |  .621096453    29  .021417119           Root MSE      =  .00036
------------------------------------------------------------------------------
         ret |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
market_ret~n |  -.0017893   8.23e-07 -2174.16   0.000     -.001791   -.0017876
       _cons |   16.50429   .0067618  2440.80   0.000     16.49043    16.51814
------------------------------------------------------------------------------
(option xb assumed; fitted values)
(6530 missing values generated)
(5 real changes made)
      +---------------+
      | id   compan~d |
      |---------------|
2399. |  2      Magna |
      +---------------+
      Source |       SS       df       MS              Number of obs =      30
-------------+------------------------------           F(  1,    28) =  102.18
       Model |  8.59534089     1  8.59534089           Prob > F      =  0.0000
    Residual |  2.35542648    28  .084122374           R-squared     =  0.7849
-------------+------------------------------           Adj R-squared =  0.7772
       Total |  10.9507674    29  .377612668           Root MSE      =  .29004
------------------------------------------------------------------------------
         ret |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
market_ret~n |   .0071517   .0007075    10.11   0.000     .0057025     .008601
       _cons |  -31.10621   8.189216    -3.80   0.001    -47.88105   -14.33136
------------------------------------------------------------------------------
(option xb assumed; fitted values)
(7981 missing values generated)
(5 real changes made)
      +---------------+
      | id   compan~d |
      |---------------|
3378. |  3       Opel |
      +---------------+
      Source |       SS       df       MS              Number of obs =      30
-------------+------------------------------           F(  1,    28) =       .
       Model |   .00298667     1   .00298667           Prob > F      =       .
    Residual |           0    28           0           R-squared     =  1.0000
-------------+------------------------------           Adj R-squared =  1.0000
       Total |   .00298667    29  .000102989           Root MSE      =       0
------------------------------------------------------------------------------
         ret |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
market_ret~n |  -.0000875          .        .       .            .           .
       _cons |   .7557923          .        .       .            .           .
------------------------------------------------------------------------------
(option xb assumed; fitted values)
(2850 missing values generated)
(5 real changes made)

使用道具

7
sheren33 发表于 2010-10-28 00:16:34 |只看作者 |坛友微信交流群
蓝色 发表于 2010-10-26 07:45
程序是没有问题的。
我用他提供的部分数据都能运行出来的。


.
. by company_id: gen event_window=1 if dif>=-2 & dif F      =  0.0000
    Residual |  2.35542648    28  .084122374           R-squared     =  0.7849
-------------+------------------------------           Adj R-squared =  0.7772
       Total |  10.9507674    29  .377612668           Root MSE      =  .29004
------------------------------------------------------------------------------
         ret |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
market_ret~n |   .0071517   .0007075    10.11   0.000     .0057025     .008601
       _cons |  -31.10621   8.189216    -3.80   0.001    -47.88105   -14.33136
------------------------------------------------------------------------------
(option xb assumed; fitted values)
(7981 missing values generated)
(5 real changes made)
      +---------------+
      | id   compan~d |
      |---------------|
3378. |  3       Opel |
      +---------------+
      Source |       SS       df       MS              Number of obs =      30
-------------+------------------------------           F(  1,    28) =       .
       Model |   .00298667     1   .00298667           Prob > F      =       .
    Residual |           0    28           0           R-squared     =  1.0000
-------------+------------------------------           Adj R-squared =  1.0000
       Total |   .00298667    29  .000102989           Root MSE      =       0
------------------------------------------------------------------------------
         ret |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
market_ret~n |  -.0000875          .        .       .            .           .
       _cons |   .7557923          .        .       .            .           .
------------------------------------------------------------------------------
(option xb assumed; fitted values)
(2850 missing values generated)
(5 real changes made)
版主,能再帮我运行下么,我私下给你我的数据,因为我一直就出不来你这样的

. forvalues i=1(1)`N' {
  2.
. list id company_id if id==`i' & dif==0
  3.
. reg ret market_return if id==`i' & estimation_window==1
  4.
. predict p if id==`i'
  5.
. replace predicted_return = p if id==`i' & event_window==1
  6.
. drop p
  7.
. }

       +---------------+
       | id   compan~d |
       |---------------|
  528. |  1         GM |
       +---------------+

      Source |       SS       df       MS              Number of obs =      30
-------------+------------------------------           F(  1,    28) =       .
       Model |  .000746667     1  .000746667           Prob > F      =       .
    Residual |           0    28           0           R-squared     =  1.0000
-------------+------------------------------           Adj R-squared =  1.0000
       Total |  .000746667    29  .000025747           Root MSE      =       0

------------------------------------------------------------------------------
         ret |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
market_ret~n |   .0000266          .        .       .            .           .
       _cons |   .4374429          .        .       .            .           .
------------------------------------------------------------------------------
(option xb assumed; fitted values)
(9858 missing values generated)
variable predicted_return not found
r(111);

使用道具

8
蓝色 发表于 2010-10-28 08:12:49 |只看作者 |坛友微信交流群
我就是用的你给的数据做的啊。
把网上的程序都考过来

使用道具

9
markovski 发表于 2012-3-6 12:46:35 |只看作者 |坛友微信交流群
谢谢蓝色,我这就去跑一遍。

使用道具

10
yumin1207 发表于 2012-6-26 15:50:06 |只看作者 |坛友微信交流群
跑成功没有,把经验共享一下。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-17 21:41