SAS: стандартное отклонение для нефиксированного подвижного окна
Я думаю, что я отправил подобный вопрос раньше. Но на этот раз я борюсь с данными ID.
Мои данные выглядят как
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 ...
Мне нужно отработать скользящее среднее / стандартное отклонениеза каждую акцию основано на (-3, + 3) торговых днях.
Поскольку это торговые дни (а не календарные дни), а количество сделок в каждом дне различно, я создал подзапрос и применил следующий код.
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;
Я старалсяgroup by stock
, Тем не менее, кодпроигнорировал группу акций и дал мне только стандартную динамику за весь период, Мне нужен движущийся стандартныйдля разных акций.
Кто-нибудь может дать мне идею? Спасибо !