[R] Kaplan Meier analysis: 95% CI wider in R than in SAS
Paul Miller
pjmiller_57 at yahoo.com
Fri Apr 13 17:36:40 CEST 2012
Hi Enrico,
Not sure how SAS builds the CI but I can look into it. The SAS documentation does have a section on computational formulas at:
http://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_lifetest_a0000000259.htm
Although I can't provide my dataset, I can provide the data and code below. This is the R-equivalent of an analysis from "Common Statistical Methods for Clinical Research with SAS Examples."
R produces the follwoing output:
> print(surv.by.vac)
Call: survfit(formula = Surv(WKS, CENS == 0) ~ VAC, data = hsv)
records n.max n.start events median 0.95LCL 0.95UCL
VAC=GD2 25 25 25 14 35 15 NA
VAC=PBO 23 23 23 17 15 12 35
SAS has the same 95% CI for VAC=GD2 but has a 95% CI of [10, 27] for VAC=PBO. This is just like in the analysis I'm doing currently.
Thanks,
Paul
#######################################
#### Chapter 21: The Log-Rank Test ####
#######################################
#####################################################
#### Example 21.1: HSV2 Vaccine with gD2 Vaccine ####
#####################################################
connection <- textConnection("
GD2 1 8 12 GD2 3 -12 10 GD2 6 -52 7
GD2 7 28 10 GD2 8 44 6 GD2 10 14 8
GD2 12 3 8 GD2 14 -52 9 GD2 15 35 11
GD2 18 6 13 GD2 20 12 7 GD2 23 -7 13
GD2 24 -52 9 GD2 26 -52 12 GD2 28 36 13
GD2 31 -52 8 GD2 33 9 10 GD2 34 -11 16
GD2 36 -52 6 GD2 39 15 14 GD2 40 13 13
GD2 42 21 13 GD2 44 -24 16 GD2 46 -52 13
GD2 48 28 9 PBO 2 15 9 PBO 4 -44 10
PBO 5 -2 12 PBO 9 8 7 PBO 11 12 7
PBO 13 -52 7 PBO 16 21 7 PBO 17 19 11
PBO 19 6 16 PBO 21 10 16 PBO 22 -15 6
PBO 25 4 15 PBO 27 -9 9 PBO 29 27 10
PBO 30 1 17 PBO 32 12 8 PBO 35 20 8
PBO 37 -32 8 PBO 38 15 8 PBO 41 5 14
PBO 43 35 13 PBO 45 28 9 PBO 47 6 15
")
hsv <- data.frame(scan(connection, list(VAC="", PAT=0, WKS=0, X=0)))
hsv <- transform(hsv,
CENS = ifelse(WKS < 1, 1, 0),
WKS = abs(WKS),
TRT = ifelse(VAC=="GD2", 1, 0))
library("survival")
surv.by.vac <- survfit(Surv(WKS,CENS==0)~VAC, data=hsv)
plot(surv.by.vac,
main = "The Log-Rank Test \n Example 21.1: HSV-Episodes with gD2 Vaccine",
ylab = "Survival Distribution Function",
xlab = "Survival Time in Weeks",
lty = c(1,2))
legend(0.75,0.19,
legend = c("gD2","PBO"),
lty = c(1,2), title = "Treatment")
summary(surv.by.vac)
print(surv.by.vac)
More information about the R-help
mailing list