Sampling with Replacement and Regression Macro
The most complicated part of the
OMS bootstrapping example has nothing to
do with the
OMS command. A macro
routine is used to generate the samples and run the
REGRESSION commands. Only the basic functionality
of the macro is discussed here. For detailed information on macros,
DEFINE regression_bootstrap (samples=!TOKENS(1) /depvar=!TOKENS(1) /indvars=!CMDEND) COMPUTE dummyvar=1. AGGREGATE /OUTFILE=* MODE=ADDVARIABLES /BREAK=dummyvar /filesize=N. !DO !other=1 !TO !samples SET SEED RANDOM. WEIGHT OFF. FILTER OFF. DO IF $casenum=1. - COMPUTE #samplesize=filesize. - COMPUTE #filesize=filesize. END IF. DO IF (#samplesize>0 and #filesize>0). - COMPUTE sampleWeight=rv.binom(#samplesize, 1/#filesize). - COMPUTE #samplesize=#samplesize-sampleWeight. - COMPUTE #filesize=#filesize-1. ELSE. - COMPUTE sampleWeight=0. END IF. WEIGHT BY sampleWeight. FILTER BY sampleWeight. REGRESSION /STATISTICS COEFF /DEPENDENT !depvar /METHOD=ENTER !indvars. !DOEND !ENDDEFINE. GET FILE='/examples/data/Employee data.sav'. regression_bootstrap samples=100 depvar=salary indvars=salbegin jobtime.
- A macro named regression_bootstrap is defined. It is designed to work with arguments similar to IBM® SPSS® Statistics subcommands and keywords.
- Based on the user-specified number of samples, dependent
variable, and independent variable, the macro will draw repeated random
samples with replacement and run the
REGRESSIONcommand on each sample.
- The samples are generated by randomly selecting cases with replacement and assigning weight values based on how many times each case is selected. If a case has a value of 1 for sampleWeight, it will be treated like one case. If it has a value of 2, it will be treated like two cases, and so on. If a case has a value of 0 for sampleWeight, it will not be included in the analysis.
REGRESSIONcommand is then run on each weighted sample.
- The macro is invoked by using the macro name like a command. In this example, we generate 100 samples from the employee data.sav file. You can substitute any file, number of samples, and/or analysis variables.