# load data mel <- read.table("http://publicifsv.sund.ku.dk/~pka/epidata/melanom-surv.txt", header = TRUE) # rescale age and thick mel$age <- mel$age/10 mel$thick <- mel$thick/100 # 1.: slide 17 library(survival) fit <- coxph(Surv(days, dc != 2) ~ factor(sex) + (ulc == 1) + thick + age, data = mel) summary(fit) # 2.: proportionality for ulc # since a time-dependent interaction term cannot be added as easily as in SAS, we use the cox.zph function. Proportional hazards can be # assumed for non-significant variables tmp <- cox.zph(fit) tmp # suggests proportionality for all variables # 3.: linear splines for thick mel$thick2 <- (mel$thick -2)*(mel$thick>2) mel$thick5 <- (mel$thick -5)*(mel$thick>5) fit3 <- coxph(Surv(days, dc != 2) ~ factor(sex) + (ulc == 1) + thick + age + thick2 + thick5, data = mel) summary(fit3) anova(fit, fit3, test = "LRT") # 4.: interaction of sex and thick fit4 <- coxph(Surv(days, dc != 2) ~ factor(sex) + (ulc == 1) + thick + age + factor(sex):thick, data = mel) summary(fit4)