************************************************************************ * MODELS.DO * * Estimate various relative survival models. * The data files are constructed using SURVIVAL.DO. * * INDIVID.DTA contains subject-band observations * GROUPED.DTA contains collapsed data (i.e. life table rows) * * Paul Dickman * April 2004 * ************************************************************************* /********************************************************************* Fit the model using the full likelihood approach (Esteve approach) The file esteve.ado must be somewhere Stata can find it. (for example, in c:\ado\personal\) ***********************************************************************/ use individ if end < 6, clear quiet tab end, gen(end) quiet tab sex, gen(sex) quiet tab year, gen(year) quiet tab agegrp, gen(agegrp) ml model lf esteve (d=end2-end5 sex2 year2 agegrp2-agegrp4) ml maximize, eform("RER") /********************************************************************* Fit the glm to individual data The file rs.ado must be somewhere Stata can find it. (for example, in c:\ado\personal\) ***********************************************************************/ use individ if end < 6, clear xi: glm d i.end i.sex i.year8594 i.agegrp , fam(pois) link(rs d_star) lnoffset(y) glm, eform /********************************************************************* Fit the Poisson GLM using exact survival times (to collapsed data) ***********************************************************************/ use grouped if end < 6, clear xi: glm d i.end i.sex i.year8594 i.agegrp , fam(pois) link(rs d_star) lnoffset(y) glm, eform /********************************************************************* Fit the Poisson GLM using grouped survival times (to collapsed data) Y and e (expected deaths) are now approximated ***********************************************************************/ use grouped if end < 6, clear gen y_approx=n-(d+w)/2 gen e_approx=n_prime*(1-p_star) label variable y_approx "Approximated (using grouped data) time at risk" label variable e_approx "Approximated (using grouped data) expected deaths" xi: glm d i.end i.sex i.year8594 i.agegrp , fam(pois) link(rs e_approx) lnoffset(y_approx) glm, eform /********************************************************************* Fit the Hakulinen-Tenkanen model The file ht.ado must be somewhere Stata can find it. (for example, in c:\ado\personal\) ***********************************************************************/ use grouped if end < 6, clear xi: glm ns i.end i.sex i.year8594 i.agegrp , fam(bin n_prime) link(ht p_star) glm, eform