分10组, 大致思路如下 不只是否有帮助?:
data a; set yourdata; by date mv; if first.date then n=0; n+1; run;
proc sort data=a; by date descending mv; run;
data b; set a; by date; retain m; if first.date then m=n/10; run;
proc sort data=b; by date n; run;
data c; set b; do i=1 to 10; if (i-1)*m<n then if n<=i*m the do ; protfolio=i; return; end; end; run;
然后计算收益,但要先确定股票在每一个size组里是按什么来加权的?equal-weighted or value-weighted?