楼主: aiyongfang617
2082 9

[面板数据求助] 求最快的循环命令 [推广有奖]

  • 0关注
  • 0粉丝

已卖:53份资源

硕士生

70%

还不是VIP/贵宾

-

威望
0
论坛币
26 个
通用积分
9.3118
学术水平
5 点
热心指数
4 点
信用等级
2 点
经验
1551 点
帖子
72
精华
0
在线时间
234 小时
注册时间
2008-3-24
最后登录
2025-5-3

楼主
aiyongfang617 发表于 2016-7-22 18:21:12 |AI写论文
20论坛币
1.forvalue i=1/23557{
         qui reg ri rm1 L.rm1 L2.rm1 F.rm1 F2.rm1 if cd_123==`i'
         qui predict da1 if e(sample), res      
         qui replace e=da1 if e(sample)
         qui cap drop da1
2.statsby _b, by(year cd) clear: reg ri rm1 L.rm1 L2.rm1 F.rm1 F2.rm1
以上两个方法都需要3个小时左右的时间,请问有没有更快捷的方法?

最佳答案

黃河泉 查看完整内容

有点像你的第二个方法,但是我花的时间还算快(Stata 14.1, MP 4-core),约十分钟左右(共 31,200 条回归)! 顺便广告一下,这个程式对需重复估计(例如每一公司、每一年)并收集系数、残差值或R^2等相当好用!
关键词:循环命令 forvalue predict replace statsby replace

沙发
黃河泉 在职认证  发表于 2016-7-22 18:21:13
有点像你的第二个方法,但是我花的时间还算快(Stata 14.1, MP 4-core),约十分钟左右(共 31,200 条回归)!

  1. sort cd year week
  2. bys cd: gen time=_n
  3. tsset cd time

  4. bys cd: gen F2rm=F2.rm
  5. bys cd: gen F1rm=F1.rm
  6. bys cd: gen L1rm=L1.rm
  7. bys cd: gen L2rm=L2.rm

  8. statsby _b r2=e(r2), by(cd year) saving(myresult, replace): regress ri F2rm F1rm rm L1rm L2rm
  9. merge m:1 cd year using myresult
  10. gen e=ri-(F2rm*_b_F2rm+F1rm*_b_F1rm+rm*_b_rm+L1rm*_b_L1rm+L2rm*_b_L2rm+_b_cons)
复制代码

顺便广告一下,这个程式对需重复估计(例如每一公司、每一年)并收集系数、残差值或R^2等相当好用!

藤椅
夏目贵志 发表于 2016-7-23 02:21:12
你要实现什么目的?你这两个方法怎么感觉干的事是不一样的?另外,第一个方法里的e每次都会被覆盖掉,为什么要放在循环里?

板凳
黃河泉 在职认证  发表于 2016-7-23 07:52:24
你看起来似乎是想做有关 stock price informativeness/crash risk 相关的研究吗?不管是不是,你的目的是什么?存下系数 _b 还是残差值 e (这个机率较大)吗?此外,cd 是公司吧?你是对每公司、每年用其股票报酬率(日资料)跑回归吧?

报纸
aiyongfang617 发表于 2016-7-23 11:09:23
黃河泉 发表于 2016-7-23 07:52
你看起来似乎是想做有关 stock price informativeness/crash risk 相关的研究吗?不管是不是,你的目的是什 ...
是关于股价崩盘的,要的是残差,是周资料,好像第二种方法更快一些,但也要3个多小时,请问阁下有更好的方法吗?

地板
aiyongfang617 发表于 2016-7-23 11:10:16
夏目贵志 发表于 2016-7-23 02:21
你要实现什么目的?你这两个方法怎么感觉干的事是不一样的?另外,第一个方法里的e每次都会被覆盖掉,为什么 ...
我就想要残差。

7
aiyongfang617 发表于 2016-7-23 12:32:30
黃河泉 发表于 2016-7-22 18:21
有点像你的第二个方法,但是我花的时间还算快(Stata 14.1, MP 4-core),约十分钟左右(共 31,200 条回归) ...
高手,太感谢了!
361568982,我的QQ,以后如有科研数据需求可以联系!

8
黃河泉 在职认证  发表于 2016-7-23 15:14:28
不敢当!老实说,这也是问过 Stata 公司的人后才能这么快!

9
aiyongfang617 发表于 2016-7-24 10:26:22
黃河泉 发表于 2016-7-23 15:14
不敢当!老实说,这也是问过 Stata 公司的人后才能这么快!
这种精神值得学习,谢谢你!

10
黃河泉 在职认证  发表于 2016-7-24 16:37:42
No problem at all.

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

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