Hi, in order to validate a multivariate logistic regression model, I’d like to perform a bootstrap analysis, which resamples the residuals. I am a student and new to SAS and have problems with the practical application. I‘ve read some explanations, which only focus on resampling observations not residuals. I did find the following explanation how to resample residuals in linear regression models but I have troubles to adapt it for my logistic model, since I model a probability of an event and not an actual value. Maybe someone could help me to adapt the following code or has other suggestions? I am using SAS 9.3. Any help is highly appreciated. from http://www2.sas.com/proceedings/forum2007/183-2007.pdf %let regressors = x; %let indata = temp1;
/* 1: perform the regression and get the predicted and residual values */
proc reg data= &INDATA;
model y=®RESSORS;
output out=out1 p=yhat r=res;
run;
/* 2: split the data: only the residuals will require URS */
data fit(keep=yhat ®RESSORS order) resid(keep=res);
set out1;
order+1;
run;
/* 3: this doesn’t do any sampling – it copies the FIT data set repeatedly */
proc surveyselect data=fit out=outfit method=srs samprate=1 rep=1000; run;
/* 4: this does the WR sampling of residuals for each replicate */
data outres2;
do replicate = 1 to 1000;
do order = 1 to numrecs;
p = ceil(numrecs * ranuni(394747373));
set resid nobs=numrecs point=p;
output;
end;
end;
stop;
run;
/* 5: then the randomized residuals are merged with the unrandomized records */
data prepped;
merge outfit outres2;
by replicate order;
new_y=yhat+res;
run;
/* 6: the bootstrap process runs on each replicate */
proc reg data=prepped outest=est1(drop=_:);
model new_y=®RESSORS;
by replicate;
run;
/* 7: and the sampling distribution is aggregated */
proc univariate data=est1;
var x;
output out=final pctlpts=2.5, 97.5 pctlpre=ci;
run;
proc print; run;
... View more