************************************************************** * MACRO NAME: RMPOSTB.SPS * * * * README FILE: RMPOST.RM * * * * SPSS REQUIREMENTS: Release 6.0 or above * * Advanced Statistics Module * * * * AUTHOR: David Nichols (nichols@spss.com) * * * * LAST UPDATED: 09/13/96 * ************************************************************** preserve set printback=off mprint=off define rmpost (var=!charend('/') /alpha=!default(.05) !charend('/')) preserve set printback=off mprint=off results=off save outfile=rm__tmp1.sav count ms__ = !var (missing) select if ms__ = 0 set results off correlations !var /missing=listwise /matrix out(*) do if rowtype_='CORR' recode !var (sysmis=0) end if execute mconvert matrix get x /var=!var compute k=ncol(x) compute n=x(3,1) compute ncomp=k*(k-1)/2 compute dfe=make(ncomp,1,n-1) compute mean1=make(ncomp,1,0) compute mean2=make(ncomp,1,0) compute diff=make(ncomp,1,0) compute sediff=make(ncomp,1,0) compute pval=make(ncomp,1,1-(!alpha/ncomp)) compute h=0 loop #i=1 to k-1 + loop #j=#i+1 to k + compute h=h+1 + compute mean1(h)=#i + compute mean2(h)=#j + compute diff(h)=x(1,#i)-x(1,#j) + compute sediff(h)=sqrt((x(#i+3,#i)+x(#j+3,#j)-2*x(#i+3,#j))/n) + end loop end loop save {mean1,mean2,diff,sediff,dfe,pval} /outfile=rm__tmp2.sav /variables=mean1,mean2,diff,sediff,dfe,pval end matrix get file=rm__tmp2.sav compute lower=diff-sediff*sqrt(idf.f(pval,1,dfe)) compute upper=diff+sediff*sqrt(idf.f(pval,1,dfe)) compute sig1=0 if lower gt 0 or upper lt 0 sig1=1 string vs (a3) sig (a2) recode vs (' '='vs.') do if sig1=1 recode sig (' '='**') end if formats mean1 mean2 (f2.0) diff sediff lower upper (f7.6) variable labels mean1 'Mean' mean2 'Mean' vs '' sig 'Sig.' variable labels diff 'Mean Difference' sediff 'Standard Error of Difference' variable labels lower 'Lower Bound' upper 'Upper Bound' set results on report format=list automatic align(center) /variables=mean1 vs mean2 sig diff sediff lower upper /title='Bonferroni Pairwise Comparisons' get file=rm__tmp1.sav restore !enddefine restore