-1

我正在使用相当大的数据集,并且想估计每个 ID 的两个事件窗口的 F​​ama 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]
4

1 回答 1

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]

在语法上不正确和/或在几种不同的意义上不是您想要的。它只能来自一些非常疯狂的猜测。

  1. 考虑到您之前的排序,您的by:前缀是合法的,但是regress下面的命令将通过如此定义的不同组运行,并且之后只有最后一组回归结果在内存中可用。

  2. 逻辑运算符&用于将数值参数组合成表达式,以评估其真假;没有任何意义将命令一个接一个地组合在一起。

  3. 以下egen调用都是非常非法的,因为它们不包含egen函数调用。

  4. 即使它们在 #3 下是合法的,第二次egen调用每个命令by:也会出现问题,因为被命名的变量已经存在。

  5. 即使它们在 #3 和 #4 下是正确的,在代码末尾也会给您带来问题,这样创建的变量只能包含最后一组系数估计值。问题 #3 可以通过使用generate而不是解决egen,也可以使用不同的代码,但问题 #4 和 #5 仍然存在。

幸运的是,有一个简单的方法可以解决这一切。您需要statsby命令来保存regress结果。如果您希望将系数估计值与原始数据集一起使用,请使用merge.

您的问题命名标准错误 [of what?] 但您的代码中没有任何内容访问标准错误;尽管如此,它们也可以使用statsby.

我在这里专注于您提供的一段代码。问题的其余部分是指我不明白的经济细节。和 Stack Overflow 上的几乎所有人一样,我不是经济学家。

于 2015-03-24T10:38:40.890 回答