我在存储OLS回归的回归常数方面遇到了麻烦。我想在我的面板数据集中计算每家公司的每日回归率; obs_id
表示公司和日期。
我尝试构建以下循环。不知何故,整个样本的保存系数是相同的。
foreach x in obs_id {
newey retRF MktRF SMB HML if obs_id == `x', lag(0)
mat A = e(b)
quietly replace constant = A[1, 4] if obs_id == `x'
matrix A = .
}
感谢我对我的代码提出任何意见或建议。我也尝试了statsby
,但我的样本太大而无法使用该命令。
答案 0 :(得分:0)
您的循环是单个项目的循环,可以先重写
newey retRF MktRF SMB HML if obs_id == obs_id, lag(0)
mat A = e(b)
quietly replace constant = A[1, 4] if obs_id == obs_id
matrix A = .
然后
newey retRF MktRF SMB HML, lag(0)
mat A = e(b)
quietly replace constant = A[1, 4]
matrix A = .
您猜测或希望的不是foreach
的工作方式。它看起来并没有"内部"命名的变量循环其不同的值。见help foreach
。
向我们展示您使用statsby
尝试的内容和/或从SSC尝试runby
。如果没有您的数据集或类似大小和形状的数据集,我们无法测试您在此处报告的问题。