Workshop 1Alternative models
for clustered survival data
Log-linear model representationin parametric survival models
• In most packages (SAS, R) survival models (and their estimates) are parametrized as log linear models
• If the error term eij has extreme value distribution, then this model corresponds to– PH Weibull model with
– AFT Weibull model with
ijijij exT log
)exp( 1
)exp( 1
The first data setbivariate survival data
• Time to reconstitution of blood-milk barrier after mastitis– Two quarters are infected with E. coli– One quarter treated locally, other quarter not– Blood milk-barrier destroyed– Milk Na+ increases– Time to normal Na+ level
Time to reconstitution data
Cow number 1 2 3 … 99 100
Heifer 1 1 0 … 1 0
Treatment 1.9 6.50* 4.78 … 0.66 4.93
Placebo 0.41 6.50* 2.62 … 0.98 6.50*
Reading in the data
library(survival)
bloodmilk<-read.table("c://bivariate.dat",header=T)
cows<-bloodmilk$cows
y<-bloodmilk$y
uncens<-bloodmilk$uncens
trt<-bloodmilk$trt
heifer<-bloodmilk$heifer
table(trt,uncens)
uncens
trt 0 1
0 28 72
1 19 81
Types of models fitted
• Treatment effect– Parametric models with constant hazard
• Unadjusted model
• Marginal model
• Fixed effects model
– Parametric models based on Weibull distribution• Unadjusted model and coefficient interpretation
– Models with unspecified baseline hazard• Stratified model
• Semiparametric marginal model
• Heifer effect• Fixed effects model with constant hazard
• Stratified model
)exp()( ijij xth
)exp()( iijij cxth )exp()(, mijmmij xth
)exp()()( ,0, mijmmij xthth )exp()()( 0 ijiij xthth
)exp()( 1 ijij xtth
)exp()( iiij cxth )exp()()( 0 iiij xthth
Exponential unadjusted model
res.unadjust<-survreg(Surv(y,uncens)~trt,dist="exponential",data=bloodmilk)summary(res.unadjust)b.unadjust<- -res.unadjust$coef[2]v.unadjust<- sqrt(res.unadjust$var[2,2])l.unadjust<-exp(-res.unadjust$coef[1])
Call: survreg(formula = Surv(y, uncens) ~ trt, data = bloodmilk, dist = "exponential")
Value Std. Error z p(Intercept) 1.531 0.118 12.99 1.33e-38trt -0.176 0.162 -1.09 2.77e-01
> l.unadjust(Intercept) 0.2162472
)exp()( ijij xth
Exponential marginal model
ncows<-length(levels(as.factor(cows)))
bdel<-rep(NA,ncows)
for (i in 1:ncows){
temp<-bloodmilk[bloodmilk$cows!=i,]
bdel[i]<-survreg(Surv(y,uncens)~trt,data=temp,dist="exponential")$coeff[2]}
sqrt(sum((bdel-b.unadjust)^2))
0.1535
)exp()(, mijmmij xth
Exponential fixed effects model
res.fixed<- survreg(Surv(y,uncens)~trt+as.factor(cows),dist="exponential",data=bloodmilk)summary(res.fixed)b.fix<- -res.fixed$coef[2]v.fix<- sqrt(res.fixed$var[2,2])
Call:survreg(formula = Surv(y, uncens) ~ trt + as.factor(cows), data = bloodmilk, dist = "exponential") Value Std. Error z p(Intercept) 2.10e+01 3331.692 0.00629
0.995trt -1.85e-01 0.190 -0.96993 0.332as.factor(cows)2 -1.88e+01 3331.692 -0.00564 0.995…as.factor(cows)100 -1.86e+01 3331.692 -0.00557 0.996
)exp()( iijij cxth
Weibull unadjusted model (1)
res.unadjustw<-survreg(Surv(y,uncens)~trt,dist="weibull",data=bloodmilk)summary(res.unadjustw)b.unadjustw<- -res.unadjustw$coef[2]/res.unadjustw$scalev.unadjustw<- sqrt(res.unadjustw$var[2,2])l.unadjustw<-exp(-res.unadjustw$coef[1]/res.unadjustw$scale)r.unadjustw<-1/res.unadjustw$scale
Call:survreg(formula = Surv(y, uncens) ~ trt, data = bloodmilk, dist = "weibull") Value Std. Error z p(Intercept) 1.533 0.1222 12.542 4.38e-36trt -0.180 0.1681 -1.072 2.84e-01Log(scale) 0.036 0.0695 0.518 6.04e-01Scale= 1.04
b.unadjustw trt 0.17387v.unadjustw 0.1681l.unadjustw (Intercept) 0.2278757 r.unadjustw 0.9646458
)exp()( 1 ijij xtth
)exp( 1
Weibull unadjusted model (2)
likelihood.unadjust.weib.exptransf<-function(p){
cumhaz<-exp(trt*p[2])*y^(exp(p[3]))*exp(p[1])
lnhaz<-uncens*(trt*p[2]+log(exp(p[1]))+log(exp(p[3]))+(exp(p[3])-1)*log(y) )
lik<- sum(cumhaz)-sum(lnhaz)}
initial<-c(log(0.23),0.2,log(1))
res<-nlm(likelihood.unadjust.weib.exptransf,initial)
l.unadjustw2<-exp(res$estimate[1])
b.unadjustw2<-res$estimate[2]
r.unadjustw2<-exp(res$estimate[3])
0.228
0.1740.965
)exp()( 1 ijij xtth
Weibull unadjusted model (3)
likelihood.unadjust.weib<-function(p){cumhaz<-exp(trt*p[2])*y^(p[3])*p[1]lnhaz<-uncens*(trt*p[2]+log(p[1])+log(p[3])+(p[3]-1)*log(y))lik<- sum(cumhaz)-sum(lnhaz)}
initial<-c(exp(res$estimate[1]),res$estimate[2],exp(res$estimate[3]))res.unadjustw2<-nlm(likelihood.unadjust.weib,initial,iterlim=1,hessian=T)l.unadjustw2<-res.unadjustw2$estimate[1]b.unadjustw2<-res.unadjustw2$estimate[2]r.unadjustw2<-res.unadjustw2$estimate[3]v.unadjustw2<-sqrt(solve(res.unadjustw2$hessian)[2,2])
0.2280.1740.965
0.162
)exp()( 1 ijij xtth
Stratified model
res.strat<-coxph(Surv(y,uncens)~trt+strata(cows))summary(res.strat)b.strat<-res.strat$coef[1]v.strat<-res.strat$coef[3]
Call: coxph(formula = Surv(y, uncens) ~ trt + strata(cows)) n= 200 coef exp(coef) se(coef) z p exp(-coef) lower .95 upper .95trt 0.131 1.14 0.209 0.625 0.53 0.878 0.757 1.72
)exp()()( 0 ijiij xthth
Semiparametric marginal model (1)
res.semimarg<-coxph(Surv(y,uncens)~trt+cluster(cows))summary(res.semimarg)b.semimarg<-summary(res.semimarg)$coef[1]v.semimarg<-summary(res.semimarg)$coef[4]
Call: coxph(formula = Surv(y, uncens) ~ trt + cluster(cows)) n= 200
coef exp(coef) se(coef) robust se z p lower .95 upper .95trt 0.161 1.17 0.162 0.145 1.11 0.27 0.883 1.56 Rsquare= 0.005 (max possible= 0.999 )Likelihood ratio test= 0.98 on 1 df, p=0.322Wald test = 1.22 on 1 df, p=0.269Score (logrank) test = 0.98 on 1 df, p=0.322, Robust = 1.23 p=0.268
)exp()()( ,0, mijmmij xthth
Semiparametric marginal model (2)
b.unadjust<-coxph(Surv(y,uncens)~trt)$coeff[1]ncows<-length(levels(as.factor(cows)))bdel<-rep(NA,ncows)for (i in 1:ncows){temp<-bloodmilk[bloodmilk$cows!=i,]bdel[i]<- -coxph(Surv(y,uncens)~trt,data=temp)$coeff[1]}sqrt(sum((-bdel-b.unadjust)^2))
[1] 0.1468473
)exp()()( ,0, mijmmij xthth
Fixed effects model with heifer,heifer first
summary(survreg(Surv(y,uncens)~heifer+as.factor(cows),dist="exponential", data=bloodmilk))
Call:survreg(formula = Surv(y, uncens) ~ heifer + as.factor(cows),data=bloodmilk, dist = "exponential")
Value Std. Error z p(Intercept) 2.09e+01 4723 4.42e-03 0.996heifer -2.01e+01 6680 -3.01e-03 0.998as.factor(cows)2 1.21e+00 4723 2.56e-04 1.000...as.factor(cows)100 -1.85e+01 4723 -3.92e-03 0.997
)exp()( iiij cxth
Fixed effects model with heifer,cow first
summary(survreg(Surv(y,uncens)~as.factor(cows)+heifer,dist="exponential", data=bloodmilk))
Call:survreg(formula = Surv(y, uncens) ~ as.factor(cows) + as.factor(heifer),data=bloodmilk,dist="exponential")
Value Std. Error z p(Intercept) 2.09e+01 4723 0.00442 0.996as.factor(cows)2 -1.89e+01 4723 -0.00399 0.997as.factor(cows)100 -1.85e+01 4723 -0.00392 0.997as.factor(heifer)1 0.00e+00 6680 0.00000 1.000
)exp()( iiij xcth
Stratified model with heifer
> summary(coxph(Surv(y,uncens)~heifer+strata(cows),data=bloodmilk))Call:coxph(formula = Surv(y, uncens) ~ heifer + strata(cows), data = bloodmilk) n= 200 coef exp(coef) se(coef) z p exp(-coef) lower .95 upper .95heifer NA NA 0 NA NA NA NA NA
Rsquare= 0 (max possible= 0.471 )Likelihood ratio test= 0 on 0 df, p=NaNWald test = NA on 0 df, p=NAScore (logrank) test = 0 on 0 df, p=NaN
Warning messages: 1: X matrix deemed to be singular; variable 1 in: coxph(Surv(y, uncens) ~ heifer
+ strata(cows), data = bloodmilk) 2: NaNs produced in: pchisq(q, df, lower.tail, log.p) 3: NaNs produced in: pchisq(q, df, lower.tail, log.p)
)exp()()( 0 iij xthth
The data set: Time to first insemination
• Database of regional Dairy Herd Improvement Association (DHIA)– Milk recording service– Artificial insemination– Select sample– Subset of 2567 cows from 49 dairy farms
Fixed covariates data setinsemfix.dat
Effect of initial ureum concentration
• Fit the following models– Parametric models with constant hazard
• Unadjusted model• Fixed effects model• Marginal model
– Models with unspecified baseline hazard• Stratified model• Semiparametric marginal model• Fixed effects model
)exp()( ijij xth
)exp()( iijij cxth )exp()(, mijmmij xth
)exp()()( ,0, mijmmij xthth
)exp()()( 0 ijiij xthth
)exp()()( 0 iiij cxthth
Top Related