mcgilchrist:aisbett:91 analyse time to first and second recurrence of infection in kidney patients on dialysis using a Cox model with a multiplicative frailty parameter for each individual. The risk variables considered are age, sex and underlying disease (coded other, GN, AN and PKD). A portion of the data are shown below.
We have analysed the same data assuming a parametric Weibull distribution for the survivor function, and including an additive random effect
for each patient in the exponent of the hazard model as follows
where AGE
is a continuous covariate, SEX
is a 2-level factor and DISEASE
(k = 1,2,3) are dummy variables representing the 4-level factor for underlying disease. Note that the the survival distribution is a truncated Weibull for censored observations as discussed in the mice example. The regression coefficients and the precision of the random effects (
) are given independent ``non-informative'' priors, namely
The shape parameter of the survival distribution r is given a Gamma(1, 0.0001) prior which is slowly decreasing on the positive real line.
The graphical model is shown in Figure 19, and the BUGS code is given below. The structure of the data file is similar to that used in the mice example.
Kidney: model specification in BUGS
model kidney;
const
N = 38, # number of patients
M = 2; # number of observations per patient
var
t[N,M], # failure time
t.cen[N,M], # censoring time
mu[N,M], r, # Weibull parameters
b[N], # random effects for patients
tau, # precision of random effects
sigma, # 1/sqrt(tau)
age[N,M],sex[N],disease[N], # covariates
beta.age,beta.sex, # regression coefficients
beta.disease[4],alpha; # regressioncoefficients
data t, t.cen, age, sex, disease in "kidney.dat";
inits in "kidney.in";
{
for (i in 1:N) {
for (j in 1:M) {
# Survival times bounded below by censoring times:
t[i,j] ~ dweib(r,mu[i,j]) I(t.cen[i,j],);
log(mu[i,j]) <- alpha + beta.age*age[i,j]
+ beta.sex*sex[i]
+ beta.disease[disease[i]] + b[i];
}
# Random effects:
b[i] ~ dnorm(0.0, tau)
}
# Priors:
alpha ~ dnorm(0.0, 0.0001);
beta.age ~ dnorm(0.0, 0.0001);
beta.sex ~ dnorm(0.0, 0.0001);
beta.disease[1] <- 0; # corner-point constraint
for(k in 2:4) {
beta.disease[k] ~ dnorm(0.0, 0.0001);
}
tau ~ dgamma(1.0E-3, 1.0E-3);
r ~ dgamma(1.0, 1.0E-3);
sigma <- 1/sqrt(tau); # s.d. of random effects
}
Figure 19:
Graphical model for kidney example
Analysis
A BUGS run took 4 minutes for 2500 iterations after a 2500 iteration burn-in. The output is summarized in the table below, and the results of mcgilchrist:aisbett:91's Cox analysis using an iterative Newton-Raphson estimation procedure are also shown for comparison.