Libname Us ' Tsclient E Badm742';

Total Page:16

File Type:pdf, Size:1020Kb

Libname Us ' Tsclient E Badm742';

libname us '\\tsclient\e\badm742';

/*data clean*/ data a; set us.crsp2017; year=year(date); month=month(date); if ret>-1; mktval=prc*shrout; if mktval>0; keep permno year month ret mktval; run;

/*all stocks are ranked into deciles (ten subgroups) based on their market values at the beginning of each year*/ data b; set a; if month=12; year=year+1; keep permno year mktval; run;

proc sort data=b; by year mktval; run; proc rank groups=10 data=b out=c; var mktval; ranks s1; by year; run; data d; set c; group=s1+1; keep permno year group; run; /* get monthly returns for the period between 1996 and 2015, and assign every stock to one of ten portfolios*/ data stk; set a; if year=1995 then delete; keep permno year month ret; run;

proc sort data=stk; by permno year;run; proc sort data=d; by permno year;run;

data all; merge stk d; by permno year; if ret=. or group=. then delete; run;

/* calculate the monthly return per portfolio, per month*/ proc sort data=all; by year month group; run; proc means data=all noprint; var ret; by year month group; output out=final mean = ret_port; data final; set final; keep group year month ret_port; run;

/*calculate mean, std of monthly returns of ten portfolios for the study period*/ proc sort data=final; by group; run; proc means data=final noprint; var ret_port; by group; output out=final1 mean = mean_ret std = std_ret; data final1; set final1; keep group mean_ret std_ret; run;

/* final results for means of monthly returns of ten portfolios can be found in final1 dataset*/

/* test the significance of difference in returns between small sized portfolio and large sized portfolio*/ data p1; set final; if group=1; ret_p1=ret_port; keep year month ret_p1; run;

data p10; set final; if group=10; ret_p10=ret_port; keep year month ret_p10; run;

proc sort data=p1; by year month; run; proc sort data=p10; by year month; run; data t; merge p1 p10; by year month; diff = ret_p1 - ret_p10; run;

proc means data=t noprint; var diff; output out=t_test mean = m_diff std = std_diff n = nob; data t_test; set t_test; t=(m_diff/std_diff)*sqrt(nob); keep m_diff std_diff nob t; run;

/* you will find t-stat in the table t_test*/

Recommended publications