我正在使用相当大的数据集,并希望估算每个ID的两个事件窗口的Fama French系数。我使用以下代码(dummy_reg
将观察结果分配给相应的事件窗口):
sort ID dummy_reg count
by ID dummy_reg: reg ret_px Mkt_RF SMB HML
此外,我想使用系数来计算事件窗口之间的增量;但是,我不知道如何在估算过程中保存/生成新变量。
我尝试了以下但是它没有工作:
by ID dummy_reg: reg ret_px Mkt_RF SMB HML & egen b_Mkt_RF=_b[Mkt_RF] & egen b_SMB=_b[SMB] & egen b_HML=_b[HML]
答案 0 :(得分:3)
在支持软件问题的所有论坛中:
非常优选可重现的问题。您没有向我们提供数据集或使用公开数据集来说明问题。在这种情况下,缺乏可重复的例子并不难,因为可以识别错误,但在其他问题中它可能是至关重要的,所以请注意以后的任何问题。
诸如“不起作用”之类的报告被视为最大限度地无法提供信息。当然,您不了解发生了什么,但您应该始终报告确切发生的事情,例如生成了什么错误消息,您只需复制和粘贴即可。
单一命令
by ID dummy_reg: reg ret_px Mkt_RF SMB HML & egen b_Mkt_RF=_b[Mkt_RF] & egen b_SMB=_b[SMB] & egen b_HML=_b[HML]
在语法上是不正确的和/或不是你想要的几种不同的意义。它只能来自一些非常疯狂的猜测。
根据您之前的排序,您的by:
前缀是合法的,但后面的regress
命令将运行如此定义的不同组,并且之后只有最后一组回归结果可用于内存中。
逻辑运算符&
用于将数值参数组合到要评估真值或虚假的表达式中;没有任何意义上它将命令一个接一个地组合起来。
以下egen
次调用都非常违法,因为它们不包含egen
函数调用。
即使它们在#3下是合法的,第二次在egen
下调用每个by:
命令也会出现问题,因为被命名的变量已经存在。
即使它们在#3和#4下是正确的,但在代码末尾会出现问题,因此创建的变量只能包含最后一组系数估计值。问题#3可以使用generate
而不是egen
来修复,也可以使用不同的代码,但问题#4和#5仍然存在。
幸运的是,有一个简单的方法可以解决所有这些问题。您需要the statsby
command来保存regress
个结果。如果您希望系数估计值与原始数据集一起使用,请使用merge
。
您的问题将[标准错误]命名为什么?但您的代码中没有任何内容可以访问标准错误;尽管如此,他们也可以使用statsby
保存。
我在这里专注于您提供的一段代码。问题的其余部分涉及我不理解的经济学细节。像Stack Overflow上的每个人一样,我不是经济学家。