SAS: Standardabweichung bei nicht fixiertem Rollfenster

Ich glaube, ich habe schon eine ähnliche Frage gestellt. Aber diesmal habe ich Probleme mit der Daten-ID.

Meine Daten sehen aus wie

 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       ...

Ich muss den gleitenden Durchschnitt / die Standardabweichung berechnenfür jede Aktie basierend auf (-3, + 3) Handelstagen.

Da dies Handelstage sind (keine Kalendertage) und es an jedem Tag eine andere Anzahl von Trades gibt, habe ich eine Unterabfrage erstellt und den folgenden Code angewendet.

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;

Ich habe es versuchtgroup by stock. Der Codeignored die Aktiengruppe und gab mir nur die bewegte Std der gesamten Periode. Ich brauche den umzug stdfür verschiedene Aktien.

ann mir jemand eine Idee geben? Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage