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