楼主: sun0063033
2233 4

[Stata高级班] 急盼老师指导:关于stata分组回归的残差 [推广有奖]

  • 0关注
  • 0粉丝

本科生

38%

还不是VIP/贵宾

-

威望
0
论坛币
552 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
790 点
帖子
126
精华
0
在线时间
45 小时
注册时间
2010-12-13
最后登录
2019-10-17

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
老师:
您好

我想用每只股票的周数据对对应的市场收益率数据做回归,并且保存每个回归的残差。我试过您给出的命令,之后又单独对几只股票做了回归,发现两者的残差不一样。

(您给出的命令):
假设变量安排如下:
id year month y x1 x2 x3
则处理命令如下:
*-月份重新编码 1,2,3 ……
   gen res = .
   egen  m123 = group(year month) , label lname(year_month)
   sum m123
   global  N = r(max)
*-分年度、月份回归分析  
         cap drop res
         cap drop e
         gen res = .
         forvalues i = 1/$N{
           qui reg y x1 x2 x3  if (m123==`i')
           qui predict e if e(sample), res
           qui replace res = e if e(sample)
           drop e
         }

我按照命令,对2000年的部分股票先做了如下回归(略有变动):
   gen res = .
   egen  w123 = group(week) , label lname(week)
   sum w123
   global  N = r(max)

         cap drop res
         cap drop e
         gen res = .
         forvalues i = 1/$N{
           qui reg rt rmt_2 rmt_1 rmt rmt1 rmt2  if (w123==`i')
           qui predict e if e(sample), res
           qui replace res = e if e(sample)
           drop e
         }

然后,我又对前3只股票单独做了回归,分别得到e1,e2,e3的残差。
reg rt rmt_2 rmt_1 rmt rmt1 rmt2 if code==1
predict e1 if e(sample)

reg rt rmt_2 rmt_1 rmt rmt1 rmt2 if code==2
predict e2 if e(sample)

reg rt rmt_2 rmt_1 rmt rmt1 rmt2 if code==3
predict e3 if e(sample)

这样,回归的残差(res 和e1,e2,e3)就不一样了。如果这样,之后的分析结果也会不一样了。急盼老师您能进一步指导下。
(注:附件表格里有具体的数据结果,方便您查看)
二维码

扫码加我 拉你入群

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

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

关键词:stata分组 Stata tata 分组回归 forvalues 老师 Stata 残差 分组 指导

附件: 你需要登录才可以下载或查看附件。没有帐号?我要注册
沙发
arlionn 在职认证  发表于 2011-7-19 08:36:07 |只看作者 |坛友微信交流群
在我的代码中,当 w123=1 时,实际上是对该月份的所有公司进行回归。
而在你的代码中,你是针对第一家公司(code=1)在所有年度和月份上的资料进行回归。
咱两做回归用到的样本完全不同,结果怎么可能一样?

使用道具

藤椅
sun0063033 发表于 2011-7-19 17:05:09 |只看作者 |坛友微信交流群
谢谢老师。
真的不好意思,刚学STATA, 很多东西都没弄懂。。。
老师,您看要是我把group后面括号里的month改成id, 就可以按每只股票,而不是按月份进行回归了,对吗?
  像这样的:
  gen res = .
   egen  m123 = group(id) , label lname(id)
   sum m123
   global  N = r(max)

   cap drop res
   cap drop e
   gen res = .
   forvalues i = 1/$N{
   qui reg y x1 x2 x3  if (m123==`i')
   qui predict e if e(sample), res
   qui replace res = e if e(sample)
   drop e
         }

使用道具

板凳
arlionn 在职认证  发表于 2011-7-21 00:04:24 |只看作者 |坛友微信交流群
没错

使用道具

报纸
sun0063033 发表于 2011-7-21 22:26:27 |只看作者 |坛友微信交流群
谢谢老师。。

使用道具

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

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

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

GMT+8, 2024-4-28 12:05