The R program for chapter 13.
Since we will only be using the surv data set we will attach it to put it first in the search path.
attach(surv)
We have skipped pages 336-342 for now.
Table 13.3, p. 347.
ct1 <- crosstabs( ~ staget+death)
print(ct1, marginal.totals=F)
ct2 <- crosstabs( ~ perfbl[perfbl != "NA"]+death[perfbl != "NA"])
print(ct2, marginal.totals=F)
ct3 <- crosstabs( ~ treat+death)
print(ct3, marginal.totals=F)
ct4 <- crosstabs( ~ poinf[poinf != "NA"]+death[poinf != "NA"])
print(ct4, marginal.totals=F)
401 cases in table
+----------+
|N |
|N/RowTotal|
|N/ColTotal|
|N/Total |
+----------+
staget |death
|0 |1 |
-------+-------+-------+
0 |122 | 91 |
|0.57 |0.43 |
|0.62 |0.45 |
|0.3 |0.23 |
-------+-------+-------+
1 | 75 |113 |
|0.4 |0.6 |
|0.38 |0.55 |
|0.19 |0.28 |
-------+-------+-------+
Test for independence of all factors
Chi^2 = 12.07407 d.f.= 1 (p=0.0005112788)
Yates' correction not used
perfbl[perfbl != "NA"]|death[perfbl != "NA"]
|0 |1 |
-------+-------+-------+
0 |174 |163 |
|0.52 |0.48 |
|0.89 |0.8 |
|0.44 |0.41 |
-------+-------+-------+
1 | 22 | 40 |
|0.35 |0.65 |
|0.11 |0.2 |
|0.055 |0.1 |
-------+-------+-------+
Test for independence of all factors
Chi^2 = 5.463732 d.f.= 1 (p=0.01941514)
Yates' correction not used
treat |death
|0 |1 |
-------+-------+-------+
0 | 99 | 96 |
|0.51 |0.49 |
|0.5 |0.47 |
|0.25 |0.24 |
-------+-------+-------+
1 | 98 |108 |
|0.48 |0.52 |
|0.5 |0.53 |
|0.24 |0.27 |
-------+-------+-------+
Test for independence of all factors
Chi^2 = 0.409521 d.f.= 1 (p=0.5222127)
Yates' correction not used
poinf[poinf != "NA"]|death[poinf != "NA"]
|0 |1 |
-------+-------+-------+
0 |191 |189 |
|0.5 |0.5 |
|0.97 |0.93 |
|0.48 |0.47 |
-------+-------+-------+
1 | 5 | 15 |
|0.25 |0.75 |
|0.026 |0.074 |
|0.012 |0.038 |
-------+-------+-------+
Test for independence of all factors
Chi^2 = 4.852467 d.f.= 1 (p=0.02760662)
Yates' correction not used
Table 13.4, p. 348.
Log-linear model results.
surv.weibull <- censorReg( censor(days, death) ~ staget+perfbl+poinf+treat,
surv, distritution="weibull", na.action=na.omit)
summary(surv.weibull)
Coefficients:
Est. Std.Err. 95% LCL 95% UCL z-value p-value
(Intercept) 8.6423 0.158 8.332 8.953 54.563 0.00000
staget -0.5874 0.157 -0.896 -0.279 -3.733 0.00019
perfbl -0.5986 0.203 -0.996 -0.201 -2.951 0.00317
poinf -0.7124 0.309 -1.318 -0.107 -2.306 0.02109
treat -0.0831 0.155 -0.386 0.220 -0.538 0.59078
Table 13.5, p. 349.
Cox’ model results.
surv.cox <- coxph( Surv(days, death) ~ staget+perfbl+poinf+treat,
surv, na.action=na.omit)
summary(surv.cox)
coef exp(coef) se(coef) z p
staget 0.5367 1.71 0.142 3.777 0.00016
perfbl 0.5311 1.70 0.185 2.868 0.00410
poinf 0.6699 1.95 0.280 2.391 0.01700
treat 0.0705 1.07 0.142 0.497 0.62000
We have skipped pages 350-354 for now.
Fig. 13.9, p. 357.
#Obtaining the survival functions.
fit <- survfit(surv.cox, conf.type="none")
fit$surv2 <- fit$surv^exp(.54)
#calculating the log(-log(S(t))
fit$log.surv <- log( -log(fit$surv))
fit$log.surv2 <- log( -log(fit$surv2))
#Plotting
plot( fit$time, fit$log.surv2 , type="s", xlab="time",
ylab="log(-log(S(t)))" )
points(fit$time, fit$log.surv, type="s")
Unless you plan to continue working with the surv data set it is advisable to detach it from being first in the search path.
detach(surv)

