Dear All,
I have the following dataset:
data have;
input id date X;
datalines;
1 194503 .
1 194506 .
1 194509 0.1 2 194703 .
2 194706 0.2
2 194709 0.1 2 194712 0.3 2 194803 0.2;
I would like to compute the rolling standard deviation (STDX) for different IDs of the variable X using 3 observations (with no less than 2). For example, in row 5 after two observations of X (0.2 and 0.1), I want to compute STDX as 0.05. In row 6, after three observations of X (0.2, 0.1 and 0.3), I wnat to compute STDX as 0.082
data want;
input id date X STDX;
datalines;
1 194503 . .
1 194506 . .
1 194509 0.1 . 2 194703 . .
2 194706 0.2 .
2 194709 0.1 0.05 2 194712 0.3 0.082 2 194803 0.2 0.082;
My attempt involves proc expand as follows. Yet, I'm not able to get the desired result. Moreover, I'm also getting the following warning: WARNING: The variable X has only 0 nonmissing observations, which is too few to apply the conversion method. The result series is set to missing.
Any help would be highly appreciated. Many thanks!
PROC EXPAND DATA=have OUT=want;
by id;
convert X=STDX / transformout=(MOVSTD 3 trim 2);
RUN;
... View more