全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
9196 24
2012-03-27
悬赏 5 个论坛币 已解决
要计算在每条记录出现之前的值的算术平均值如何实现呢?
   简单数据如下:
         stkcd         日期                   a             b
          2        2005-03-01            x1        
          2        2005-05-07            x2          x1
          2        2005-07-03            x3         (x1+x2)/2
          2        2005-10-11            x4        (x1+x2+x3)/3

       类似上面的数据结构,如何根据a计算出对应的b的值呢?b对应的计算法则是按照在该时间段之前出现的a值的算术平均值,stata中该如何实现呢?求解答,谢谢

最佳答案

sungmoo 查看完整内容

*修正一下,以过去的观测值数求均值: sort stkcd date fep by stkcd: g m=sum(fep[_n-1]) by stkcd: replace m=m[_n-1] if date==date[_n-1] by stkcd: g n=_n-1 by stkcd: replace n=n[_n-1] if date==date[_n-1] replace m=m/n 需要注意:这种情况下变量组stkcd date无法定义panel data。这时以往值的均值怎么求?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-3-27 09:58:58
*修正一下,以过去的观测值数求均值:

sort stkcd date fep
by stkcd: g m=sum(fep[_n-1])
by stkcd: replace m=m[_n-1] if date==date[_n-1]
by stkcd: g n=_n-1
by stkcd: replace n=n[_n-1] if date==date[_n-1]
replace m=m/n
2005-03-22这个日期重复出现了5次
需要注意:这种情况下变量组stkcd date无法定义panel data。这时以往值的均值怎么求?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-27 12:27:50
我是来学习的哦
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-27 14:42:15
恩,谢谢支持,希望有高手赶快解答!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-27 15:10:59
*对于真正的面板数据(且无缺失值):
bys stkcd (date): g m=sum(fep[_n-1])/(_n-1)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-27 17:06:34
sungmoo 发表于 2012-3-27 15:10
*不能存在缺失值
bys stkcd (date): egen b=sum(a/_n)
恩,谢谢sungmoo版主的回复,可是b的运算法则就是a在预测之前所有的预测值的算术平均值,所以按照这样的逻辑b的第一个值应该就没有吧,因为2005-03-01是第一条记录,执行命令出现错误
  " factor variables and time-series operators not allowed"
   数据是从2005年到2010年,要求每个公司内部计算一次,应该是双嵌套循环吧,实在是出不来结果。谢谢你的解答!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群