* Опубликован: 30.12.2005.
*Бутстреп-оценка коэффициентов регрессии с использованием OMS (Output Management System - система управления выдачей результатов, доступной, начиная с версии SPSS 12).
***oms_bootstrapping.sps***.
***если путь c:\\temp не существует, задайте вместо c:\\temp существующий путь во всех случаях.
PRESERVE.
SET TVARS NAMES.
*первая команда OMS просто подавляет выдачу результатов в окно результатов.
OMS /DESTINATION VIEWER=NO /TAG='suppressall'.
*опишем коэффициенты из таблицы с будущими результатами регрессии, которые будем записывать в файл данных.
OMS /SELECT TABLES
/IF COMMANDS=['Regression'] SUBTYPES=['Coefficients']
/DESTINATION FORMAT=SAV OUTFILE='c:\\temp\\temp.sav'
/COLUMNS DIMNAMES=[ 'Variables' 'Statistics']
/TAG='reg_coeff'.
*определим макрос, генерирующий выборки с возвращением и выполняющий регрессию для каждой выборки.
DEFINE regression_bootstrap (samples=!TOKENS(1)
/depvar=!TOKENS(1)
/indvars=!CMDEND)
COMPUTE dummyvar=1.
AGGREGATE
/OUTFILE='c:\\temp\\aggrtemp.sav'
/BREAK=dummyvar
/filesize=N.
MATCH FILES FILE=* /TABLE='c:\\temp\\aggrtemp.sav'
/BY dummyvar.
!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='c:\\Program Files\\SPSS\\Employee data.sav'.
***Вызовем макрос, указав число выборок, зависимую и независимые переменные..
regression_bootstrap
samples=100
depvar=salary
indvars=salbegin jobtime .
OMSEND.
GET FILE 'c:\\temp\\temp.sav'.
FREQUENCIES
VARIABLES=salbegin_B salbegin_Beta jobtime_B jobtime_Beta
/FORMAT NOTABLE
/PERCENTILES= 2.5 97.5
/HISTOGRAM NORMAL.
RESTORE.