/** set your overall alpha here and input your data **/ /** assumes your dataset is called "hoch" **/ %let overall=.05; data hoch; input raw_p; datalines; .147 .005 .002 ; run; /*******************************************************/ /** shouldn't need to alter anything below this line! **/ /*******************************************************/ proc sort data=hoch; by descending raw_p; run; data hoch; set hoch nobs=N_of_comparisons; by descending raw_p; * initialize..; if _N_=1 then do; rej = 0; revRank=N_of_comparisons; end; retain critical_value rej revRank; if rej=0 then do; critical_value = &overall/(N_of_comparisons - revRank + 1); if raw_p <= critical_value then rej=1; end; /* else: don't compute critical value for subsequent significant entries */ else if rej=1 then critical_value = .; revRank=revRank-1; run; proc format; value rejfmt 1='yes' 0='no'; run; TITLE "Overall alpha=&overall"; proc print data=hoch; var raw_p critical_value rej; format rej rejfmt.; format raw_p critical_value 5.4; run; /*******************************************************/ /*******************************************************/ /** Programmer: Karen Spritzer, UCLA, 3/12/14 ***/ /*******************************************************/