1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
#
# Do a contour plot of the donnell data
#
npt <- 25
beta0 <- seq(.4, 2.4, length=npt)
logsig <- seq(-1.4, 0.41, length=npt)
donlog <- matrix(0,npt, npt)
for (i in 1:npt) {
for (j in 1:npt) {
fit <- survreg(Surv(time1, time2, status, type='interval') ~1,
donnell, init=c(beta0[i],logsig[j]),
control=list(maxiter=0))
donlog[i,j] <- fit$log[1]
}
}
clev <- -c(51, 51.5, 52:60, 65, 75, 85, 100, 150)
contour(beta0, logsig, pmax(donlog, -200), levels=clev, xlab="Intercept",
ylab="Log(sigma)")
points(2.39, log(.7885), pch=1, col=2)
title("Donnell data")
#
# Compute the path of the iteration
# Step 2 isn't so good, and is followed by 3 iters of step-halving
#
niter <- 14
donpath <- matrix(0,niter+1,2)
for (i in 0:niter){
fit <- survreg(Surv(time1, time2, status, type='interval') ~1,
donnell, maxiter=i)
donpath[i+1,] <- c(fit$coef, log(fit$scale))
}
points(donpath[,1], donpath[,2])
lines(donpath[,1], donpath[,2], col=4)
rm(beta0, logsig, niter, fit, npt, donlog, clev)
|