%macro mad( data , r ); /* data is the output from the reg */ proc means data = &data median noprint; var &r; output out = _temp_ median = median; run; data _null_; set _temp_; if _n_ =1 then call symput('median', median); run; data _temp_; set &data; newr = abs(&r - &median); run; proc means data= _temp_ median noprint; var newr; output out=_temp1_ median=median; run; data _null_; set _temp1_; call symput('mad', median/.6745); run; %mend;