
**************************************************************
*  MACRO NAME:         RMPOSTB2.SPS                          *
*                                                            *
*  README FILE:        RMPOST.RM                             *
*                                                            *
*  SPSS REQUIREMENTS:  Release 4.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=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 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
compute pval=1-(!alpha/ncomp)
compute fstat=(diff&/sediff)&**2
compute sig1=make(ncomp,1,0)
loop #i=1 to ncomp
+ compute sig1(#i)=fcdf(fstat(#i),1,dfe)-pval
end loop
save {mean1,mean2,diff,sediff,sig1}
 /outfile=rm__tmp2.sav
 /variables=mean1,mean2,diff,sediff,sig1
end matrix
get file=rm__tmp2.sav
string vs (a3) sig (a2)
recode vs ('   '='vs.')
do if sig1 gt 0
recode sig ('  '='**')
end if
formats mean1 mean2 (f2.0) diff sediff (f7.6)
variable labels mean1 'Mean' mean2 'Mean' vs '' sig 'Sig.'
variable labels diff 'Mean Difference' sediff 'Standard Error of Difference'
set results on
report format=list automatic align(center)
 /variables=mean1 vs mean2 sig diff sediff
 /title='Bonferroni Pairwise Comparisons'
get file=rm__tmp1.sav
restore
!enddefine
restore

