preserve. set printback=on. * SIMPLE AND COMPLEX RANDOM ASSIGNMENT IN EXPERIMENTAL DESIGNS Valentim R. Alferes, University of Coimbra (Portugal), 2009. * StrataRand3.sps - Stratified Random Assignment (Forced unequal sizes). set printback=off. set ovars labels onumbers values tvars labels tnumbers values. set errors=none. data list list/Strata(f8.0) nstrata(f8.0). * Enter Stratum number, Treatment number, and number of units per treatment within stratum. data list list /Stratum (f8.0) Treatment(f8.0) nwithin(f12.0). begin data 1 1 30 1 2 40 1 3 50 2 1 35 2 2 45 2 3 55 3 1 6 3 2 12 3 3 18 4 1 5 4 2 10 4 3 15 end data. compute stratrea=stratum*10**5+treatment. execute. rank variables=stratrea(a)/print=no. compute estrato=rstratrea. execute. compute x=1. aggregate/outfile=file1/break=x/nstudy=sum(nwithin). match files/file=*/table=file1/by x/drop x. execute. save outfile=filex. loop id=1 to nwithin. xsave outfile=file2/keep=all. end loop. execute. get file=file2. set rng=mt mtindex=random. compute rn=uniform(1). execute. rank variables=rn(a) by stratum/print=no. variable labels rrn"Unit". formats all(f8.0). oms/select tables/if commands=["summarize"] subtypes=["case processing summary"]/destination viewer=no. oms/select tables/if commands=["crosstabs"] subtypes=["case processing summary"]/destination viewer=no. sort cases by stratum(a) rrn(a). summarize/tables=stratum rrn treatment/format=validlist nocasenum nototal /title='Stratified Random Assignment \n Sorted by Stratum/Unit'/cells=none. sort cases by treatment(a) stratum(a) rrn(a). summarize/tables=stratum rrn treatment/format=validlist nocasenum nototal /title='Stratified Random Assignment \n Sorted by Treatment'/cells=none. crosstabs/tables=Stratum by Treatment/cells=count row. restore.