在Stata中具有3个标识符的面板的滚动平均值

时间:2016-04-05 14:21:37

标签: stata mean

我有一个带有3个标识符(日期,公司和人)的不平衡面板,我想为每个公司和日期计算过去90天内变量(price)的滚动平均值。当我为tsset分配面板时,收到错误消息repeated time values within panel。由于我的小组中的每个人都属于几家公司,因此我每个日期都有几个公司 - 人员对。 到目前为止,这是我的代码:

tsset company_id date_id
tsegen Mean_90days = rowmean(L(0/90).price)    

有什么方法可以进行这样的计算吗?

我的解决方案是使用company_person_id生成group(company_id person_id),计算每次company_person_id date观察的平均值,并使用均值egen=mean()汇总by (company_id date_id)。但是我仍然不确定它是否合理。

1 个答案:

答案 0 :(得分:5)

你不能用这种机器两种方式。如果您声明公司是面板,那么由于相同面板和时间的重复而不能清洗。 tsset将失败,而tsegen(SSC,正如您应该解释的那样)不会让步。如果tsset框架拒绝,那么基于它的任何内容都不会也无法帮助。

如果您声明(公司,个人)对是面板,您的计算可以继续进行,但您不会为同一公司中的不同人员汇总值。这似乎是你想要的。

但有好消息。

rangestat(SSC)(宣布here)应该有所帮助。

我认为你的命令类似于

rangestat (mean) price, interval(date_id -90 0) by(company)

请注意,这是计算过去90天当前的情况,与您的通话一样。