我在 SAS 中有一个面板/纵向数据集。
一个字段表示一个类或类型,另一个字段表示没有中断的时间点,另一个是观察到的历史,另一个是所述历史的对数差异预测。我想添加一个新字段:历史字段,由预测字段推进。
因此,如果时间字段在“未来”,我想递归地推进我的目标变量,它有自己的滞后,乘以对数差异预测变量的 exp。在我看来,这是一个微不足道的操作。
我试图用下面的玩具数据集来复制这个问题。
data in;
input class time hist forecast;
datalines;
1 1 100 .
1 2 . .1
1 3 . .15
1 4 . .17
2 1 100 .
2 2 . .18
2 3 . .12
2 4 . .05
run;
proc sort data=work.in;
by class time;
run;
data out;
set in;
by class time;
retain goal hist;
if time > 1 then goal= lag1(goal) * exp(forecast);
run;