全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2391 2
2017-04-16
悬赏 5 个论坛币 未解决

我需要做如下时间序列回归:rj,t = a1 + a2*rm,t-1+ a3*rm,t +a4*rm,t+1 + ej, t
      
      其中,r j,t 是每个上市公司股票的周回报率,r m,t 是每周股市的综合回报率,残差表示每个上市公司每周的特殊回报率(weekly firm—specific return)。
      
      现在的问题是,我需要对每年都对每一家上市公司进行上述回归获得残差项,参考了先前一位楼主发的跟我做的一样回归的帖的代码,但是报错说no observation变量类型改过了,不知道哪里有问题求指点,还有的问题是我的数据是非平衡面板数据不知道可不可以这样做。代码如下:
stkcd是公司代码 wretwd是每周股票收益率  marketreturn是每周股市的综合回报率

        egen w123 = group(year1 week1)
         tsset stkcd w123
         xtdes

global N = r(N)

         global  firmreturn "wretwd"
         global  marketr "L.marketreturn L2.marketreturn marketreturn F.marketreturn F2.marketreturn"

         cap drop res

         gen res  = .

         forvalues i = 1/$N{
           qui reg $firmreturn $marketr if (w123==`i')
           qui predict e if e(sample), res
           qui replace res = e if e(sample)
           drop e
         }                 


二维码

扫码加我 拉你入群

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

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

全部回复
2018-1-30 15:49:13
您好!请问一下您的问题解决了吗?我最近也需要做类似的循环回归,但是stata菜鸟还不懂怎么做,可以交流一下吗?
二维码

扫码加我 拉你入群

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

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

2018-1-31 09:20:09
xtset stkcd year
statsby _b,by(year stkcd):reg wretwd marketreturn
这样子得到一个新的dta,里边记录了每个股票每年的回归系数,save起来。然后merge到你最核心的那个dta
残差=wretwd-_cons-系数*marketreturn
这个方法应该不担心某些地方样本量不足,也不care平衡与否。样本量不足的时候,statsby直接当做缺失处理,不会报错。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群