Rev 104 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
# From Gail, Sautner and Brown, Biometrics 36, 255-66, 1980# 48 rats were injected with a carcinogen, and then randomized to either# drug or placebo. The number of tumors ranges from 0 to 13; all rats were# censored at 6 months after randomization.# Variables: rat, treatment (1=drug, 0=control), o# observation # within rat,# (start, stop] status# The raw data has some intervals of zero length, i.e., start==stop.# We add .1 to these times as an approximate solution#rat2 <- read.table('data.rat2', col.names=c('id', 'rx', 'enum', 'start','stop', 'status'))temp1 <- rat2$starttemp2 <- rat2$stopfor (i in 1:nrow(rat2)) {if (temp1[i] == temp2[i]) {temp2[i] <- temp2[i] + .1if (i < nrow(rat2) && rat2$id[i] == rat2$id[i+1]) {temp1[i+1] <- temp1[i+1] + .1if (temp2[i+1] <= temp1[i+1]) temp2[i+1] _ temp1[i+1]}}}rat2$start <- temp1rat2$stop <- temp2r2fit0 <- coxph(Surv(start, stop, status) ~ rx + cluster(id), rat2)r2fitg <- coxph(Surv(start, stop, status) ~ rx + frailty(id), rat2)r2fitm <- coxph(Surv(start, stop, status) ~ rx + frailty.gaussian(id), rat2)r2fit0r2fitgr2fitm#This example is unusual: the frailties variances end up about the same,# but the effect on rx differs. Double check it# Because of different iteration paths, the coef won't be exactly the# same, but darn close.temp <- coxph(Surv(start, stop, status) ~ rx + offset(r2fitm$frail[id]), rat2)all.equal(temp$coef, r2fitm$coef[1])temp <- coxph(Surv(start, stop, status) ~ rx + offset(r2fitg$frail[id]), rat2)all.equal(temp$coef, r2fitg$coef[1])## What do I get with AIC#r2fita1 <- coxph(Surv(start, stop, status) ~ rx + frailty(id, method='aic'),rat2)r2fita2 <- coxph(Surv(start, stop, status) ~ rx + frailty(id, method='aic',dist='gauss'), rat2)r2fita3 <- coxph(Surv(start, stop, status) ~ rx + frailty(id, dist='t'),rat2)r2fita1r2fita2r2fita3