全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2213 11
2021-04-19
请教大家,为什么这串代码跑不了?

*生成特质性周收益率
gen w=.
foreach i of Stkcd{
forval j =2005/2020{
qui reg Wkret lWrettmv2 lWrettmv Wrettmv fWrettmv fWrettmv2 if Stkcd==`i' & year== `j'
predict res,residuals
replace w=ln(1+res) if Stkcd==`i' & year== `j'
capture drop res
}
}

逻辑是分年份分股票代码回归,每次回归的残差保留下来作为股票i在年份j的特质性收益率。可以看看示例数据,谢谢各位啦!!!

附件列表
二维码

扫码加我 拉你入群

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

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

全部回复
2021-4-19 19:57:34
应该是
foreach i in  Stkcd
二维码

扫码加我 拉你入群

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

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

2021-4-19 21:13:34
蓝色 发表于 2021-4-19 19:57
应该是
foreach i in  Stkcd
哈哈谢谢你,可是in 试了也不行、
二维码

扫码加我 拉你入群

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

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

2021-4-20 08:17:36
jnutt 发表于 2021-4-19 21:13
哈哈谢谢你,可是in 试了也不行、
cap gen w=.
levelsof Stkcd,local(i) //add
foreach i in `r(levels)'{ //modify
qui forval j =2005/2020{
cap reg Wkret lWrettmv2 lWrettmv Wrettmv fWrettmv fWrettmv2 if Stkcd==`i' & year== `j'
cap predict res,residuals
cap replace w=ln(1+res) if Stkcd==`i' & year== `j'
cap drop res
}
}


其实可以用asreg更好
二维码

扫码加我 拉你入群

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

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

2021-4-20 08:25:22
没有问题,我这里执行没有出错

三楼的是正确的

二维码

扫码加我 拉你入群

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

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

2021-4-20 10:09:36
请考虑不要用 loop (特别是很多公司,很多年),请参考 https://bbs.pinggu.org/thread-6576704-1-1.html
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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