У меня ЕЖЕДНЕВНАЯ доходность отраслевых портфелей в SAS.
Я хотел бы рассчитать ЕЖЕНЕДЕЛЬНЫЕ доходы.
Ежедневная доходность в процентах, поэтому я думаю, что это должна быть просто сумма возвратов за каждую неделю.
Очевидные проблемы, с которыми я сталкиваюсь, состоят в том, что недели могут иметь различное количество дней.
Таблица, которую я имею в SAS, имеет следующий формат:
INDUSTRY_NUMBER DATE DAILY_RETURN
Любая помощь будет принята с благодарностью.
Я пробовал это:
proc expand data=Day_result
out=Week_result from=day to=week;
Industry_Number Trading_Date;
convert Value_weighted_return / method=aggregate observed=total;
run;
Ежедневные данные находятся в Day_Result
, когда я удаляю четвертую строку, т.е.
proc expand data=Day_result
out=Week_result from=day to=week;
convert Value_weighted_return / method=aggregate observed=total;
run;
Это работает так же, как и эточто я хочу, чтобы он делал, но он делает это не для каждой категории, а для всей таблицы.
Так что, если у меня есть 40 категорий, я хочу еженедельный доход для каждой категории.
Второй набор кодов обеспечивает еженедельный доход для каждой категории.
ПРИМЕРНЫЕ ДАННЫЕ:
data have;
format trading_date date9.;
infile datalines dlm=',';
input trading_date:ddmmyy10. industry_number value_weighted_return;
datalines;
19/01/2000,1, -0.008
20/01/2000,1, 0.008
23/01/2000,1, 0.008
24/01/2000,1, -0.007
25/01/2000,1, -0.009
26/01/2000,1, 0.008
27/01/2000,1, -0.008
30/01/2000,1, 0.003
31/01/2000,1, -0.001
01/02/2000,1, 0.004
02/02/2000,2, -0.008
03/02/2000,2, -0.005
06/02/2000,2, -0.004
07/02/2000,2, -0.009
08/02/2000,2, 0.002
09/02/2000,2, 0.006
10/02/2000,2, 0.008
13/02/2000,2, 0.008
14/02/2000,2, 0.002
15/02/2000,2, 0.01
16/02/2000,2, -0.008
;
run;