[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

From |
"Nick Cox" <n.j.cox@durham.ac.uk> |

To |
<statalist@hsphsun2.harvard.edu> |

Subject |
RE: st: troubleshooting code for simulating survival data |

Date |
Thu, 29 May 2008 16:25:26 +0100 |

This trace does not add to what you know already. One alternative is to increase the trace depth, but the program is sufficiently short that line-by-line scrutiny pays dividends. Your bootstrap command expects to see a scalar r(a). This will be produced if, and only if, the local macro X contains a. But First, Svend pointed out that local macro X is never defined by your program. Nor is it defined by -indeplist-. -indeplist, local- defines a local locnames, as its help indicates. You do not address this point in your reply. Second, you are calling -stcox- without covariates, so I see no point in firing up -indeplist- to find out what your covariates are. One of those things is either wrong or irrelevant. I don't understand exactly what your program is trying to do but it does appear buggy. You may also be getting confused between a and `a', which are quite different beasts. The variable `id' does nothing in your program. I don't know if that matters. My guess is not. Nick n.j.cox@durham.ac.uk Michael McCulloch Thanks Svend. I've re-run the program preceded by . set tracedepth 1 . set trace on and here is what is returned, but I'm not sure how to understand the error messages given. ********* begin command ************* . capture program drop sim_surv . program define sim_surv, rclass 1. tempname lambda a id t 2. set obs 10 //create 10 observations 3. gen `id'=_n //Create ID numbers 4. set seed 1235 //set random number seed for reproducibility 5. gen `a'=0 + int(2*uniform()) //Generate treatment: discrete 0/1 uniform random variable > s 6. gen `lambda'=-2 7. gen `t'=(ln(uniform())/(`lambda'*exp(-0.8*`a'))) // using Bender, 2005 8. stset `t' 9. stcox `t' 10. indeplist, local 11. foreach var of varlist `X' { 12. return scalar `var' = exp(_b[`var']) 13. } 14. . end . set seed 12358 . bootstrap a=r(a), eform reps(10): sim_surv ********* begin response ************* ------------------------------------------------------------------------ ------ begin bootstrap --- - version 9, missing - local version : di "version " string(_caller()) ", missing:" - if _caller() < 9 { capture syntax [anything] using [, * ] if !c(rc) { if _by() { error 190 } `version' bootstrap_8 `0' exit } } - capture _on_colon_parse `0' = capture _on_colon_parse a=r(a), eform reps(10): sim_surv - if c(rc) | `"`s(after)'"' == "" { = if c(rc) | `" sim_surv"' == "" { gettoken old : 0 , qed(qed) if `qed' { `version' bootstrap_8 `0' exit } else if "`old'" != "" { capture which `old' if !c(rc) { `version' bootstrap_8 `0' exit } capture program list `old' if !c(rc) { `version' bootstrap_8 `0' exit } } capture syntax [, * ] if !c(rc) { if _caller() < 9 { `version' bootstrap_8 `0' exit } if "`e(prefix)'" != "bootstrap" { error 301 } `version' Display `0' exit } else { `version' bootstrap_8 `0' exit } } - preserve - `version' BootStrap `0' = version 9.2, missing: BootStrap a=r(a), eform reps(10): sim_surv (running sim_surv on estimation sample) 'r(a)' evaluated to missing in full sample ------------------------------------------------------------------------ -------- end bootstrap --- r(322); >Michael McCulloch wrote: > >I've written the following do-file to simulate survival data, in the >case of exponential distribution with one treatment variable (a) and >no covariates. The code works when not in a program, and returns the >specified Beta-coefficient (-0.8). May I ask for help in fine-tuning >the program? I'm getting error message: " 'r(a)' evaluated to >missing in full sample". > >clear >capture program drop sim_surv > program define sim_surv, rclass > tempname lambda a id t > set obs 10 //create 10 observations > gen `id'=_n //Create ID numbers > set seed 1235 //set random number seed for reproducibility > gen `a'=0 + int(2*uniform()) //Generate treatment: discrete >0/1 uniform random variables > gen `lambda'=-2 > gen `t'=(ln(uniform())/(`lambda'*exp(-0.8*`a'))) // using >Bender, 2005 > stset `t' > stcox `t' > indeplist, local > foreach var of varlist `X' { > return scalar `var' = exp(_b[`var']) > } > >end >set seed 12358 >bootstrap a=r(a), eform reps(10): sim_surv > >============================================================== > >It seems that contents of the local macro `X' is not defined within >the program. That may explain why the code works when not in a >program, but not in this program. > >To examine such problems try: > > set tracedepth 1 > set trace on > >Other advice: Tell which command in the program that gave rise to >the error message, by copying and pasting both command and response >to you mai.. > > * * For searches and help try: * http://www.stata.com/support/faqs/res/findit.html * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**Follow-Ups**:**RE: st: troubleshooting code for simulating survival data***From:*Michael McCulloch <mm@pinest.org>

**References**:**Re: st: troubleshooting code for simulating survival data***From:*Svend Juul <SJ@SOCI.AU.DK>

**Re: st: troubleshooting code for simulating survival data***From:*Michael McCulloch <mm@pinest.org>

- Prev by Date:
**Re: st: troubleshooting code for simulating survival data** - Next by Date:
**Re: st: creating age variable for all ids** - Previous by thread:
**Re: st: troubleshooting code for simulating survival data** - Next by thread:
**RE: st: troubleshooting code for simulating survival data** - Index(es):

© Copyright 1996–2016 StataCorp LP | Terms of use | Privacy | Contact us | What's new | Site index |