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

Stata中有3个标识符的面板的滚动平均值,stata,mean,Stata,Mean,我有一个带有3个标识符(日期、公司和人员)的不平衡面板,我想计算我的变量(price)在过去90天内每个公司和日期的滚动平均数。当我用tsset分配面板时,我得到一条错误消息面板内重复的时间值。由于我的面板中的每个人都属于多个公司,因此我在每个日期都有多对公司人员。 以下是我目前的代码: tsset company_id date_id tsegen Mean_90days = rowmean(L(0/90).price) 有没有办法做这样的计算 我的解决方案是使用group(comp

我有一个带有3个标识符(日期、公司和人员)的不平衡面板,我想计算我的变量(
price
)在过去90天内每个公司和日期的滚动平均数。当我用
tsset
分配面板时,我得到一条错误消息
面板内重复的时间值
。由于我的面板中的每个人都属于多个公司,因此我在每个日期都有多对公司人员。 以下是我目前的代码:

tsset company_id date_id
tsegen Mean_90days = rowmean(L(0/90).price)    
有没有办法做这样的计算


我的解决方案是使用
group(company\u-id-person\u-id)
生成
company\u-person\u-id
,计算每个
company\u-person\u-id日期观察的平均值,并使用mean
egen=mean()。然而,我仍然不确定这是否合理。

你不可能在这台机器上两全其美。如果您声明公司是面板,则不会清洗,因为相同面板和时间的复制
tsset
将失败,
tsegen
(您应该解释一下,SSC)将不动。如果
tsset
框架拒绝,那么基于它的任何东西都不会也帮不上忙

如果声明(公司、人员)对为面板,则可以继续计算,但不会为同一公司中的不同人员合并值。这似乎是你想要的

但也有好消息

rangestat
(SSC)(已宣布)应该会有所帮助

我想你的命令会像

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

请注意,这是对过去90天和现在的计算,如在您的通话中

那台机器不能两全其美。如果您声明公司是面板,则不会清洗,因为相同面板和时间的复制
tsset
将失败,
tsegen
(您应该解释一下,SSC)将不动。如果
tsset
框架拒绝,那么基于它的任何东西都不会也帮不上忙

如果声明(公司、人员)对为面板,则可以继续计算,但不会为同一公司中的不同人员合并值。这似乎是你想要的

但也有好消息

rangestat
(SSC)(已宣布)应该会有所帮助

我想你的命令会像

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

请注意,这是对过去90天和现在的计算,如在您的通话中

你的两步解决方案似乎是合理的,因为方法是有效的,但有一个更直接的途径:见我的答案。实际上,除非你考虑到不同的方法(公司、个人)对可能基于不同的测量数量,否则解决方法将是有问题的。正确的变通方法应该是加权平均值。是的,你是对的@Nick Cox-在我的情况下,加权平均值更好。你的两步解决方案似乎是合理的,因为方法是有效的,但有一个更直接的途径:见我的答案。事实上,变通方法会有问题,除非你考虑到不同的方法不同(公司、个人)配对可以基于不同数量的测量。正确的解决方法是加权平均值。是的,你是对的@Nick Cox-加权平均值在我的情况下更好。非常感谢,我认为
rangestat
是我需要的。非常感谢,我认为
rangestat
是我需要的。