Бутстреп оценки коэффициентов линейной регрессии
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. |