Stata-生成滚动平均变量

Stata-生成滚动平均变量,stata,moving-average,weighted-average,Stata,Moving Average,Weighted Average,我想从篮球数据集中生成一个滚动平均变量。因此,如果第一次观测是1月1日的25个点,则生成的变量将显示25。如果第二次观测值为1月2日的30点,则生成的变量将显示27.5。如果第三个观察值为35个点,则生成的变量将显示30个点,以此类推。对于变量y,按时间排序t,最简单的情况是,迄今为止的平均值为 gen yave = sum(y) / _n 这是累计总和除以观察次数。如果偶尔出现缺失值,它们将被sum()忽略,但分母需要固定,例如 gen yave = sum(y) / sum(y <

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

对于变量
y
,按时间排序
t
,最简单的情况是,迄今为止的平均值为

gen yave = sum(y) / _n 
这是累计总和除以观察次数。如果偶尔出现缺失值,它们将被
sum()
忽略,但分母需要固定,例如

 gen yave = sum(y) / sum(y < .) 
gen yave=sum(y)/sum(y<.)
这很容易推广到面板结构

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

这是我提出的解决方案。我必须创建三个变量,一个累积积分(分子)和一个跑步计数(分母),然后将这两个变量除以,得到每场比赛的球员积分:

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

是的,我已经试过了,但没有效果,我希望得到一个egen命令或gen命令,所以请准确地告诉我们您键入了什么,Stata回答了什么,以及问题是什么。您不应该在没有代码的情况下发布问题。如果你自己解决了一个问题,你应该发布一个解决方案。我已经发布了一个解决方案来给这个线程一些值。只要没有丢失的值,这是正确的。请注意,没有必要为计数创建新变量。