楼主: xmkwff821703
9525 2

[回归分析求助] 求助,stata的事件分析法的循环语句总是出现unexpected end of file [推广有奖]

  • 6关注
  • 1粉丝

硕士生

64%

还不是VIP/贵宾

-

威望
0
论坛币
62 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
2054 点
帖子
149
精华
0
在线时间
171 小时
注册时间
2017-3-26
最后登录
2019-6-5

楼主
xmkwff821703 学生认证  发表于 2018-1-7 10:10:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
复制代码
二维码

扫码加我 拉你入群

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

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


沙发
arikjin 在职认证  发表于 2018-1-8 08:12:03
  1. qui tabulate id
  2. local N=r(r)
  3. forvalues i=1/`N'{
  4. reg A B C D   if (id==`i' & estimation_window==1)
  5. predict p if id==`i'
  6. replace predicted_return =p if (id==`i' & event_window==1)
  7. drop p
  8. }
复制代码


1. 你原来的命令里面,“l id group_id if id=='i' & dif==0” 这一句,你没有group_id这个变量,我不知道你做这一步是要干嘛,而且貌似你做不做这一步都不影响后面,所以我删掉了;2. `N'和`i'才是调用局部宏的正确写法,不是'N' 或者'i',请仔细看左边那个符号的写法,如果不清楚,请看stata的基础书。
3. “replace predicted_return =p if (id='i'&event_window==1), 这是你原来的写法,if 后面是逻辑判断,所以你需要用“==”而不是“=”;
另外,我觉得你需要仔细看看什么是local 宏,怎么调用local宏,以及怎样写一个循环,这些都是最基础的,如果你没弄清楚,你永远弄不懂要怎样解决类似的问题。

我没看过事件分析法以及相关的文献,因为我自己的领域不是这一块儿,但你的问题在于stata基础语法格式就不正确。我觉得在实证之前,对于软件也许你不需要去学习模型数理方面的东西,但是一些基础的语法一定要扎实,否则自己根据别人的do文件修改后,如果执行错误,你都不知道错在哪里。
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
xmkwff821703 + 3 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 3  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
xmkwff821703 学生认证  发表于 2018-1-9 10:39:51
arikjin 发表于 2018-1-8 08:12
1. 你原来的命令里面,“l id group_id if id=='i' & dif==0” 这一句,你没有group_id这个变量,我不知 ...
谢谢您!!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-21 17:13