抽取有替换取样的样本和回归宏样本
OMS Bootstrap 示例与 OMS 命令无关。宏例程用于生成样本和运行 REGRESSION 命令。这里只讨论宏的基本功能。有关宏的详细信息,请参阅 DEFINE-!ENDDEFINE。
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.
- 定义名为 regression_bootstrap 的宏。它可以与类似于 IBM® SPSS® Statistics 子命令和关键字的参数一起使用。
- 按照用户指定的样本数、因变量和自变量,宏将抽取有替换取样的重复随机样本,并对每个样本运行 REGRESSION 命令。
- 样本通过随机选择有替换取样的个案以及根据每个个案选择的次数来分配权重值而生成。如果一个个案的样本权重值为 1,它就当作一个个案处理。如果值为 2,则它将当作两个个案处理,依此类推。如果一个个案的样本权重值为 0,分析中将不包括它。
- 然后就对每个加权样本运行 REGRESSION。
- 宏的调用是通过将宏的名字像命令一样使用而实现的。在本示例中,我们从 employee data.sav 文件生成了 100 个样本。您可以替换任何文件、样本数和/或分析变量。