Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Klaus Pforr <kpforr@googlemail.com> |
To | statalist <statalist@hsphsun2.harvard.edu> |
Subject | st: competing risk discrete time survival analysis with nlogit |
Date | Tue, 18 Jun 2013 21:23:57 +0200 |
<> Dear Listers,I want to estimate competing risk discrete time event history model as proposed in this paper: Hill, D. H., Axinn, W. G., & Thornton, A. (1993). Competing hazards with shared unmeasured risk factors. Sociological methodology, 23, 245.
I would be happy to get some feedback on my solution, especially on the way I specify the covariates at the different nest-levels in nlogit. Please excuse some redundancies in the code.
I tried to implement this on the example data used in the Stata Manual for stcrreg (hypoxia.dta).
This is my code to solve this. *********************************** * start *********************************** clear * set more off webuse hypoxia * for comparison if run the standard analysis given in the manual stset dftime, failure(failtype == 1) noisily stcrreg ifp tumsize pelnode, compete(failtype == 2) * now i go for the nlogit-solution * first i split the episode to have discrete time event history data * the choice of scale is arbitrary stset dftime, failure(failtype==1) id(stnum) scale(1) stsplit spell, every(1) * Outcome is definedgen outcome=1 if inlist(failtype,.,0) /* Censored, i.e. after treatment of cervix tumor everything is fine */
replace outcome=2 if failtype==1 /* Event of relapse of pelvic tumor */replace outcome=3 if failtype==2 /* Event of relapse of tumor in other body region */
label def out 1 "zens" 2 "local relapse" 3 "distant relapse" label val out out * Create index to mark "individual" choice sets for nlogit gen index=_n * Expand by number of outcomes expand 3 * Generate alternative-indicator bysort stnum spell: gen alternative=_n * Generate choice-indicator gen choice=outcome==alternative* Generate indicator for first nest (either 1=censored or 0=event or competing risk)
gen zens=alternative==1 * Check if nest-structure is defined as supposed noisily nlogittree alternative zens , choice(choice) * Indicator for processtime quietly tab spell, gen(spnr) * Estimate the model * Version 1: Covariates come in at level of censoring vs. event/comp.risk * Note that I added 8 processtime-indicatorsquietly nlogit choice || zens: ifp tumsize pelnode spnr2-spnr9, base(1) ||alternative: , base(1) case(index) vce(robust) difficult
noisily esttab, keep(zens1:ifp zens1:tumsize zens1:pelnode ) unstack eform * Version2: Covariates come in at last level * Note that I added no processtime-indicatorsquietly nlogit choice || zens: , base(1) ||alternative: ifp tumsize pelnode, base(1) case(index) vce(robust) difficult noisily esttab, keep(alternative2:ifp alternative2:tumsize alternative2:pelnode alternative3:ifp alternative3:tumsize alternative3:pelnode ) unstack eform
*********************************** * end of code *********************************** Some additional notes on the models:I use robust standard errors to correct for the choice sets as person-splits being nested within persons. I added the difficult-option because of convergence problems that arise when I add periodtime-indicators.
The questions that I have about this solution are:a) Is this a correct implementation of what is proposed by Hill etal. (1993)? b) What is the difference of putting the covariates in the first instead of putting them in the second level? c) Why does the model have severe convergence problems, when I put the covariates in the second level and add processtime-indicators?
Any comments are highly appreciated. best wishes Klaus -- __________________________________ Klaus Pforr GESIS -- Leibniz Institut für Sozialwissenschaft B2,1 Postfach 122155 D - 68072 Mannheim Tel: +49 621 1246 298 Fax: +49 621 1246 100 E-Mail: klaus.pforr@gesis.org <mailto:klaus.pforr@gesis.org> __________________________________ * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/