全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
3911 1
2016-09-25
悬赏 5 个论坛币 未解决
我想对股票每个月都做一次回归,执行命令后总是显示insufficient observations,麻烦各位大神给详细看一下,跪谢了。

xtset code0 month0
egen g=group(code0 month0)            //总是显示insufficient observations,改为egen g=group(code0 month2)也一样  
qui sum g
local n=r(max)
gen b_mkt = .
gen b_smb = .       
gen b_hml = .
gen e = .
gen e0 = .
gen e1 = .
forval i=1/`n'{
  reg R1 mkt smb hml if g == `i'
  matrix b = e(b)
replace alpha = b[1,4] if   g == `i'      
replace b_mkt = b[1,1] if    g == `i'      
replace  b_smb = b[1,2] if    g == `i'  
replace b_hml = b[1,3] if   g == `i'
cap drop re
predict re if g == `i'
replace e = re if g == `i'
cap drop e0
egen e0_sd = sd(e) if g == `i'
replace e1 = e0 if g == `i'
}
drop g

*******************************************************************************

  use "F:\JG\LUNWEN\SHUJU\最新数据\特征变量.dta", clear              //Fama-French三因子回归得到系数和残差值

sort code month

  gen alpha = .
gen b_mkt = .
gen b_smb = .       
gen b_hml = .
gen e = .
gen e0 = .
gen e1 = .
forvalues i = 1/2500{
forvalues j = 200403/201412{  //结果显示no observations,将forvalues j = 200403/201412和 & month2 == `j'去掉可以运行,但是成了每只股票的回归,怎样改成每只股票每月各回归一次?

        reg R1 mkt smb hml if code0 == `i' & month2 == `j'
    matrix b = e(b)
        replace alpha = b[1,4] if code0 == `i' & month2 == `j'
        replace b_mkt = b[1,1] if code0 == `i' & month2 == `j'
        replace  b_smb = b[1,2] if code0 == `i' & month2 == `j'
        replace b_hml = b[1,3] if code0 == `i' & month2 == `j'
        cap drop re
        predict re if code0 == `i' & month2 == `j'
        replace e = re if code0 == `i' & month2 == `j'
         cap drop e0
egen e0_sd = sd(e) if code0 == `i' & month2 == `j'
         replace e1 = e0 if code0 == `i' & month2 == `j'

}  

}

二维码

扫码加我 拉你入群

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

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

全部回复
2016-9-25 12:21:48
数据.xlsx
大小:(14.58 MB)

 马上下载

这是我的数据。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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