我有一个带有3个标识符(日期,公司和人)的不平衡面板,我想price为每个公司和日期计算过去90天内变量()的滚动平均值.当我分配面板时,tsset我收到一条错误消息repeated time values within panel.由于我的小组中的每个人都属于几家公司,因此我每个日期都有几个公司 - 人员对.到目前为止,这是我的代码:
tsset company_id date_id
tsegen Mean_90days = rowmean(L(0/90).price)
Run Code Online (Sandbox Code Playgroud)
有什么方法可以进行这样的计算吗?
我的解决方案是生成一个company_person_id使用group(company_id person_id),计算每个company_person_id date观察的平均值并使用均值egen=mean()进行聚合by (company_id date_id).但是我仍然不确定它是否合情合理.
你不能用这种机器两种方式.如果您声明公司是面板,那么由于相同面板和时间的重复而不能清洗.tsset将失败,tsegen(SSC,你应该解释)不会让步.如果tsset框架拒绝,那么基于它的任何东西都不会也无法帮助.
如果您声明(公司,人)对是面板,您的计算可以继续进行,但您不会为同一公司中的不同人员汇总值.这似乎是你想要的.
但有好消息.
rangestat(SSC)(在此宣布)应该有所帮助.
我认为你的命令很像
rangestat (mean) price, interval(date_id -90 0) by(company)
Run Code Online (Sandbox Code Playgroud)
请注意,这是计算过去90天内和现在,在你的电话.