1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
* Опубликован: 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.