SAS: desviación estándar en ventana móvil no fija

Creo que publiqué una pregunta similar antes. Pero esta vez estoy luchando con la identificación de datos.

Mis datos se ven como

 date        Stock    value    standard_deviation
01/01/2015    VOD      18       ...
01/01/2015    VOD      15       ...
01/01/2015    VOD       5       ...
03/01/2015    VOD      66       ...
03/01/2015    VOD       7       ...
04/01/2015    VOD      19       ...
04/01/2015    VOD       7       ...
05/01/2015    VOD      3        ...
06/01/2015    VOD      7        ...
 .....          ...     ...     ...
01/01/2015    RBS      58       ...
01/01/2015    RBS      445      ...
01/01/2015    RBS      44       ...
03/01/2015    RBS      57       ...

Necesito calcular la media móvil / desviación estándarpara cada acción basado en (-3, + 3) días de negociación.

Como esos son días de negociación (no días calendario), y hay un número diferente de transacciones en cada día, creé una subconsulta y apliqué el siguiente código.

data want;
set input;
by   date;
retain gdate;
if first.date then gdate+1;
run;

proc sort data=want; by stock gdate ; run;


proc sql;
create table want1 as
select   
h.stock,
h.date,
h.value,
( select std(s.value) from want s
where h.gdate between s.gdate-2 and s.gdate+2) as std
from
 want h 
 group  by  stock;
  quit;

Lo intentégroup by stock. Sin embargo, el códigoignoré al grupo bursátil y solo me dio el estándar móvil de todo el período. Necesito el std móvilpara diferentes stocks.

¿Alguien me puede dar alguna idea? Gracias !

Respuestas a la pregunta(1)

Su respuesta a la pregunta