楼主: 清清绿茶
27170 19

[编程问题求助] 用stata做事件研究法 [推广有奖]

  • 7关注
  • 0粉丝

本科生

77%

还不是VIP/贵宾

-

威望
0
论坛币
679 个
通用积分
1.3775
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1739 点
帖子
87
精华
0
在线时间
126 小时
注册时间
2012-10-8
最后登录
2022-12-13

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
正在做硕士论文,用到stata做时间研究法。之前对stata不太了解。我这里有些stata做事件研究法的代码和样本数据,但是感觉循环处的代码有些问题,错误显示invalid syntax      请版主帮我解答一下。
use D:\mystata\eventdates
sort company_id
by company_id: gen eventcount=_N
by company_id: keep if _n==1
keep company_id eventcount
save D:\mystata\eventcount

use D:\mystata\stockdata, clear
sort company_id
merge company_id using D:\mystata\eventcount
tab _merge
keep if _merge==3
drop _merge
expand eventcount
drop eventcount
sort company_id date
by company_id date: gen set=_n
sort company_id set
save D:\mystata\stockdata2
use D:\mystata\eventdates, clear
sort company_id
by company_id: gen set=_n
sort company_id set
save D:\mystata\eventdates2
use D:\mystata\stockdata2, clear
merge company_id set using D:\mystata\eventdates2
tab _merge       
list company_id if _merge==2
keep if _merge==3
drop _merge
egen group_id = group(company_id set)
/*group()是把group中的变量看作n维数组,按照取值的不同组合进行编号*/





sort company_id date
by company_id: gen datenum=_n
by company_id: gen target=datenum if date==event_date
egen td=min(target), by(company_id)
drop target
gen dif=datenum-td

by company_id: gen event_window=1 if dif>=-2 & dif<=2
egen count_event_obs=count(event_window), by(company_id)
by company_id: gen estimation_window=1 if dif<-30 & dif>=-60
egen count_est_obs=count(estimation_window), by(company_id)
replace event_window=0 if event_window==.
replace estimation_window=0 if estimation_window==.

tab company_id if count_event_obs<5
tab company_id if count_est_obs<30
drop if count_event_obs < 5
drop if count_est_obs < 30

set more off

gen predicted_return=.
egen id=group(company_id)
forvalues i=1(1)N {
        1 id company_id if id==`i'&dif==0
        reg ret market_return if id==`i'& estimation_window==1
        predict p if id==`i'
        replace predicted_return=p if id==`i'&event_window==1
    drop p
}  
sort id date
gen abnormal_return=ret-predicted_return 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(number of days in event window)) * ( cumulative_abnormal_return /ar_sd)
list company_id cumulative_abnormal_return test if dif==0

outsheet  using D:/mystata/company_id event_date cumulative_abnormal_return test using stats.csv if dif==0, comma names
二维码

扫码加我 拉你入群

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

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

关键词:Stata 事件研究法 事件研究 tata 研究法 stata 事件研究法

沙发
thq335147284 发表于 2015-12-24 15:37:46 |只看作者 |坛友微信交流群
同求帮助啊

使用道具

藤椅
thq335147284 发表于 2015-12-24 15:44:10 |只看作者 |坛友微信交流群
LZ 是参照普林斯顿给的那个过程吗 我直接在数据准备部分卡住了 对stata也是不了解求帮助

使用道具

板凳
thq335147284 发表于 2015-12-24 23:28:59 |只看作者 |坛友微信交流群
能看看lz 数据整理的形式吗?我有三个文件,一个是eventdata,一个stockdata。。 我现在不明白 date==event_date这个,s要关联两个文件吗 不然stock里怎么有eventdate呢

使用道具

报纸
thq335147284 发表于 2015-12-25 11:51:40 |只看作者 |坛友微信交流群
LZ 能解释一下 红色部分的 id 是什么变量吗 做到这里发现 id not found

使用道具

地板
q7294011 学生认证  发表于 2016-1-26 16:47:58 |只看作者 |坛友微信交流群
N是样本数

使用道具

7
w55833946 发表于 2016-3-21 17:20:45 |只看作者 |坛友微信交流群
forvalues i=1(1)N {
        1 id company_id if id==`i'&dif==0
其中1 id company应该是小写的L

使用道具

8
糯米小妹09 发表于 2016-12-8 15:46:49 |只看作者 |坛友微信交流群
thq335147284 发表于 2015-12-24 15:44
LZ 是参照普林斯顿给的那个过程吗 我直接在数据准备部分卡住了 对stata也是不了解求帮助
求问你的问题解决了吗?我也是不知道原始数据整理成啥样。。求帮助

使用道具

9
jxapp_25635 发表于 2017-1-1 15:19:49 |只看作者 |坛友微信交流群
糯米小妹09 发表于 2016-12-8 15:46
求问你的问题解决了吗?我也是不知道原始数据整理成啥样。。求帮助
亲,你知道要怎么整理原始数据了吗?我现在在写本科论文,导师让我们做实证,一头雾水啊~或者我们可以交流一下,我微信是13062661058

使用道具

10
yukimiwa 发表于 2017-1-5 13:36:28 |只看作者 |坛友微信交流群
jxapp_25635 发表于 2017-1-1 15:19
亲,你知道要怎么整理原始数据了吗?我现在在写本科论文,导师让我们做实证,一头雾水啊~或者我们可以交流 ...
l id company_id if id==`i'&dif==0  
应该是:
list id company_id if id==`i'&dif==0
这一行要确认事件公司数目的意思,:
if id==i(如果第i公司群组等于i)&dif==0 (而且为事件日)则列出 id 及company_id 两个变数

使用道具

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

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

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

GMT+8, 2024-4-27 03:59