preserve. set printback=on. * PROPORTIONS (Version 2.0) Valentim R. Alferes, University of Coimbra (Portugal), 2014. * TEST OF DIFFERENCES BETWEEN THREE OR MORE INDEPENDENT PROPORTIONS Input Mode: Proportions of Success and Sample Sizes. * Program: kIndProC.sps. set printback=off. set ovars labels onumbers values tvars labels tnumbers labels. set olang=English small=0 errors=none decimal=dot. data list list/Proportions(f8.3) N(f8.0). * Enter Proportions of Success end Sample Sizes (one sample per row). begin data .593 216 .858 232 .738 252 end data. * Enter Alpha level for the Marascuilo Procedure (by default, Alpha=.05). compute Alpha=.05. compute Successes=rnd(Proportions*N). compute Failures=N-Successes. compute Proportions=Successes/N. compute Sample=$casenum. compute k=1. execute. aggregate/outfile=* mode=addvariables/break=k/nSum=sum(N) /SuccessesSum=sum(Successes)/NoProp=N. compute pMean=SuccessesSum/nSum. compute Product=N*(Proportions-pMean)**2. execute. aggregate/outfile=* mode=addvariables/break=k /ProductSum=SUM(Product). compute ChiSquare=(1/(pMean*(1-pMean)))*ProductSum. compute df=NoProp-1. compute Probability=1-cdf.chisq(ChiSquare,df). execute. variable labels Proportions'Proportions of Success' ChiSquare'Chi-Square'. formats all(f8.0) Proportions(f8.3) ChiSquare(f8.3) Probability(f8.4). oms/select tables/if commands=["summarize"] subtypes=["case processing summary"]/destination viewer=no. summarize/tables=Sample Successes Failures N Proportions /format=list nocasenum nototal/title="Independent Proportions" +" (User's Data)"/cells=none. do if (Sample>1). recode ChiSquare df Probability (0 thru highest=sysmis). end if. execute. summarize/tables=ChiSquare df Probability/format=validlist nocasenum nototal/title='Omnibus Chi-Square Test'/cells=none. compute w=$casenum. execute. save outfile='%temp%\fout0'/keep=w N Proportions. save outfile='%temp%\TestData'/keep=Sample Successes Failures N Proportions ChiSquare df Probability. rename variables (N=Nx) (Proportions=Proportionsx). delete variables w. loop w=1 to NoProp. xsave outfile='%temp%\fout1'. end loop. get file='%temp%\fout1'. sort cases by w(a). match files file=*/table='%temp%\fout0'/by w. save outfile='%temp%\fout2'. if(sample>w) filter=1. execute. sel if(filter=1). execute. compute ABSdif=abs(proportions-proportionsx). compute CHIcrit=idf.chisq(1-alpha,NoProp-1). compute PROcrit=((proportions*(1-proportions))/N)+((proportionsx*(1-proportionsx))/Nx). compute CriRange=sqr(CHIcrit)*sqr(PROcrit). execute. if(ABSdif>=CriRange) Significance=1. if(ABSdif1). recode Alpha (0 thru highest=sysmis). end if. execute. summarize/tables=alpha/format=validlist nocasenum nototal /title='Alpha Level* for Critical Range'/footnote "* User's specification" /cells=none. get file='%temp%\TestData'. save outfile='%userprofile%\desktop\TestData.sav'. erase file='%temp%\fout0'. erase file='%temp%\fout1'. erase file='%temp%\fout2'. erase file='%temp%\TestData'. restore.