Stata - 生成滚动平均变量

时间:2015-02-14 23:48:43

标签: stata moving-average weighted-average

我想从篮球数据集中生成滚动平均变量。因此,如果第一次观察是1月1日的25点,则生成的变量将显示25.如果第二次观察是1月2日的30点,则生成的变量将显示27.5。如果第三次观察是35分,则生成的变量将显示30等。

2 个答案:

答案 0 :(得分:3)

对于变量y排序的某个时间t最简单的是迄今为止的平均值

gen yave = sum(y) / _n 

这是累积和除以观察数。如果偶尔会出现缺失值,sum()会忽略它们,但分母需要修复,比如说

 gen yave = sum(y) / sum(y < .) 

这很容易推广到面板结构

 bysort id (t) : gen yave = sum(y) / sum(y < .) 

答案 1 :(得分:0)

这是我提出的解决方案。我必须创建三个变量,累积点总数(分子)和运行计数(分母),然后将两个变量分开以获得每场比赛的玩家积分:

gen player_pts = points if player[_n]!=player[_n-1]
replace player_pts=points+player_pts[_n-1] if player[_n]==player[_n-1]&[_n]!=1
by player: gen player_games= [_n]
gen ppg=player_pts/player_games