yes, these are my 2 questions! Here is a very rough attempt of coding using the Heart dataset as an example. The "??" correspond to my questions, where I do not know how to code adequately! Thank you so much!! /* from SASHELP data sets: HEART;
let's pretend: status = 1 -> alive
status = 0 -> dead
survival = AgeAtDeath - AgeAtStart
I'd like to do the following 200 times (i = 1 to 200)
1) resample with replacement the same number of observations as in the original imputated dataset
2) in this bootstrap dataset, run a cox proportional regression with backward selection
3) Apply the variables that were selected from the backward procedure, i.e. under variable "parameter" in the bootstrap
dataset -> "&outdata.predictor&i", and find the corresponding Harrell concordance c-statistic for this model in this bootstrap
and output the "estimate" and "stderr" from the Harrel c-stat added to dataset "performance", where the variable "estimate"
corresponds to variable estimboot; the variable "stderr" corresponds to variable stdboot for the corresponding
bootstrap variable boot (thus &i).
4) Apply the variables that were selected from the backward procedure, i.e. under variable "parameter" in the original
dataset -> "&outdata.estim&i", and find the corresponding Harrell concordance c-statistic for this model in the original dataset
-> &indataset., and also added to dataset "performance", where the variable "estimate"
corresponds to variable estimimpute; the variable "stderr" corresponds to variable stdimput for the corresponding
bootstrap variable boot (thus &i).
5) in the "performance" dataset: obtain the difference between "estimate original - estimate bootstrap" and
"stderr original - stderr bootstrap" as to be able to obtain the average difference for the estimate and stderr
*/
%macro resample (indataset=, outdata=, reps=, size=);
%do i=1 %to &reps;
proc surveyselect data = &indataset. out = &outdata.&i. noprint
method = urs
sampsize = &size outhits ;
run;
proc phreg data = &outdata.&i;
model survival * status (1) = sex Systolic Smoking Cholesterol Weight / selection = backward;
ods output parameterestimates = &outdata.predictor&i;
run;
proc phreg data = &outdata.&i concordance=harrell (se);
model survival * status (1) = ?? -> values that the variable parameter takes in predistor&i;
?? the parameterestimates:
estimate is added to the column variable estboot under the observation line corresponding to the boostrap # (&i)
in the dataset performance
stderr is added to the column variable stdboot under the observation line corresponding to the boostrap # (&i)
in the dataset performance
run;
proc phreg data = &indataset.&i concordance=harrell (se);
model survival * status (1) = ?? -> values that the variable parameter takes in predistor&i;
?? the parameterestimates:
estimate is added to the column variable estimpute under the observation line corresponding to the boostrap # (&i)
in the dataset performance
stderr is added to the column variable stdimpute under the observation line corresponding to the boostrap # (&i)
in the dataset performance
run;
%end;
%mend;
%resample (indataset=sashelp.heart, outdata=work.bootstrap, reps=200,size= 5209);
data summary; set performance;
diff_estim = estimpute - estboot;
diff_stderr = stdimpute - stdboot;
run;
... View more