Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# RE: st: Bootstrapping Harrell's C - problem with freezing model to establish optimism - stepwise etc.

 From "Jon Kroll Bjerregaard" To Subject RE: st: Bootstrapping Harrell's C - problem with freezing model to establish optimism - stepwise etc. Date Wed, 23 Feb 2011 21:48:54 +0100

```Thank you for your answer, I have read your publications (but perhaps not
fully understood them)

I am attempting to copy the method described by Harrell in his publication
in STATISTICS IN MEDICINE, VOL. 15,361-387 - 1996.

I quote from the article
*********************************************
1. Develop the model using all n subjects and whatever stepwise testing is
deemed necessary.
Let Dapp denote the apparent D from this model, i.e., the rank correlation
computed on the
same sample used  to derive the fit.
2.  Generate a sample of size n with replacement from the original sample
(for both predictors
and the response).
3.  Fit the full or possibly stepwise model, using the same stopping rule as
was used to derive
Dapp.
4.  Compute the apparent D for this model on the bootstrap sample with
replacement. Call it Dboot
5.  'Freeze'  this  reduced  model,  and  evaluate  its  performance  on
the  original  dataset.  Let Dorig denote the D
6.  The optimism in the fit from the bootstrap sample is Dboot - Dorig.
7.  Repeat steps 2 to 6 - 100 to 200 times.
8.  Average the optimism estimates to arrive at 0.
9.  The  bootstrap  corrected  performance  of  the  original  stepwise
model  is  D - 0. This
difference is  a  nearly  unbiased  estimate  of  the  expected  value  of
the  external  predictive
discrimination of  the process which generated DapV In other words, Dapp - 0
is an honest
estimate of  internal  validity, penalizing for overfitting.
******************************
As I read this I am not to split my dataset into training and tests sets,
but rather to use my whole set as the set for my stepwise function.
Then when that model has run, repeat my final model on the same sample and
calculate the difference.

make the tests.

What I am presently doing (with some difficulties is using my subprogram and
running it twice then subtracting them, since I bootstrap the sample from my
full data set.

I absolutely agree this is not a "regular" bootstrap but rather my simple
attempt of trying to get the optimism out, however I run into problems
running this subprogram

*********************************************
capture program drop b_conc
program define b_conc, rclass
xi: stepwise, pr(.15) lockterm1: stcox (i.AJCC i.inf_PS) zalder
i.gender vol_GTV i.forb_regime i.hem_LNL zwbc zthromb i.LDH_UNL i.ALAT_UNL
i.BASP_UNL sero_bili i.resection_perf, efron
estat concordance
return scalar c = r(C)
end
bs c=r(c), reps(200) seed (1234567) saving(myfile_full, replace): b_conc
**********************

my plan was simply to run this then one with the my final model and then
subtract the 2 D's (or C's ) then get the optimism, sadly the stepwise
function fails for reasons not fully understood.

I do hope I haven't misunderstood the Harell method, but would appreciate

Sincerely

Jon K. Bjerreaard

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Roger Newson
Sent: 21. februar 2011 15:51
To: statalist@hsphsun2.harvard.edu
Subject: Re: st: Bootstrapping Harrell's C - problem with freezing model to
establish optimism - stepwise etc.

I don't know who "Choot" and "Corig" are, although I think I know which
2 papers by Harrell et al. you are referring to. You should include
references, because not everybody on the list will know the papers to which
you refer.

However, I have written a paper on the use of Harrell's c (and Somers'
D) with models in general and survival models in particular (Mewson, 2010).
This stresses the importance of training sets and test sets, and discusses
the Harrell et al. methods. The Harrell et al. methods are bootstrap-like,
but are not the bootstrap. Instead, the user must divide the data into
multiple pairs of a training set and a test set, and, for each training
set-test set pair, estimate the optimism, and then calculate the confidence
limits using methods similar to the bootstrap.
The -bs- command does not do this for you. You will probably have to write
your own program for defining multiple test sets and multiple training sets.

I hope this helps. Let me know if you have any more queries.

Best wishes

Roger

References

Newson RB. 2010. Comparing the predictive powers of survival models using
Harrell's C or Somers' D. The Stata Journal 10(3): pp. 339-358 .
Purchase from
http://www.stata-journal.com/article.html?article=st0198
http://www.imperial.ac.uk/nhli/r.newson/papers.htm#papers_in_journals

Roger B Newson BSc MSc DPhil
Lecturer in Medical Statistics
Respiratory Epidemiology and Public Health Group
National Heart and Lung Institute
Imperial College London
Royal Brompton Campus
Room 33, Emmanuel Kaye Building
London SW3 6LR
UNITED KINGDOM
Tel: +44 (0)20 7352 8121 ext 3381
Fax: +44 (0)20 7351 8322
Email: r.newson@imperial.ac.uk
Web page: http://www.imperial.ac.uk/nhli/r.newson/
Departmental Web page:
tics/reph/

Opinions expressed are those of the author, not of the institution.

On 19/02/2011 08:06, Jon Kroll Bjerregaard wrote:
> Hello
>
> I'm trying to determine the optimism - as described by Harrell et al. for
a
> Cox model established for pancreatic cancer (with Harrell's C instead of
> Somers' D).
>
> I have made a model including clinical (forced into) and clinical
> (stepwise'ed selected) variables - I have 150 events in 178 patients.
>
> Selection statement
> xi: stepwise, pr(.15) lockterm1: stcox (i.AJCC i.inf_PS) zalder i.gender
> vol_GTV i.forb_regime i.hem_LNL zwbc zthromb i.LDH_UNL i.ALAT_UNL
i.BASP_UNL
> sero_bili i.resection_perf
> Ending with the final model
> xi: stcox i.AJCC i.inf_PS i.BASP_UNL vol_GTV i.resection_perf
i.forb_regime
> Which is a mixture of continuous and categorical variables.
>
> This is what I'm trying to do(as Harrell describes 1996/2001):
> Bootstrap Harrell's C from the full model including the stepwise
selection-
> (Cboot)
> "Freeze" the bootstrapped model and apply it to the original dataset and
> calculate Harrell's C (Corig)
> Calculate optimism from: Cboot-Corig
> Repeat 200 times bootstrap
>
> So this is where my problems start (or my lack of skills)
>
> I use this program - adapted from another statalist post
> ****************************************************
> capture program drop b_conc
> program define b_conc, rclass
>                               xi: stepwise, pr(.15) lockterm1: stcox
(i.AJCC
> i.inf_PS) zalder i.gender vol_GTV i.forb_regime i.hem_LNL zwbc zthromb
> i.LDH_UNL i.ALAT_UNL i.BASP_UNL sero_bili i.resection_perf, efron
>                               estat concordance
>                               return scalar c = r(C)
>                               end
> bs d=r(c), reps(200) seed (123456) saving(myfile, replace): b_conc
> ***************************************************
> Then I do another one with the final model and substract them - but this
is
> not really the plan.
>
> I have several problems with this since it refuses to perform the
bootstrap
> (I get a lot of x's) which is most likely due to not using temporary
> variables - haven't figured out exactly what is wrong yet.
> I also need to put in the "freezed" model and apply to the original
dataset
> - which I'm not sure how I get into a bootstrap routine.
>
>
> Jon K. Bjerregaard, MD.
> Dep. of Oncology, Odense University Hospital
>
>
>
>
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```