# [R] frailty in coxph or repeated measures in cph (Design)

From: Williams Scott <Scott.Williams_at_petermac.org>
Date: Sun 26 Feb 2006 - 14:02:32 EST

I am trying to build a model to aid a clinical decision. Certain patients have a blood marker measured at each visit - a rise of this may indicate recurrence of the cancer after treatment (endpoint is "clinical recurrence", censored). In a proportion (up to 30%), this rise is a false positive - hence I wish to correlate factors at the time of the rising test to clinical recurrence, preferably expressed using nomogram (Design library). Many patients have more than one rise and sometimes even 5 rises doesn't mean inevitable failure. The aim is to identify the true positives early, to offer further therapy.

The data form presently disregards the potential multiplicity of measurements per individual, treating each as independent. For example:

id <- c(a,a,a,b,b,b) # patient id

risenumber <- c(1,2,3,1,2,3) # number of each rise per patient

clinfail <- c(1,1,1,0,0,0) # censored indicator of clinical failure status (the endpoint)

clinfailtime <- c(5,4,3,10,9,8) # time from rise to clinical failure endpoint

riseval <- c(10,20,30,1,2,3) # value of test at the time of rise

timesinceRx <- c(1,2,3,1,2,3) # years since treatment

Rxtype <- c(c,c,c,d,d,d) # type of treatment

...plus other variables at time of rise plus pre-treatment variables

In generic terms, analysis would be:

fit <- cph(Surv(clinfailtime, clinfail) ~ riseval +Rxtype...)

nomogram(fit)

I could easily convert these data to counting process notation and use time-dependent covariates aligned to treatment date. I do think the question is different however - not "what predicts clinical failure from the time of treatment" - rather, "what predicts the risk of clinical failure beyond the time of rise". To complicate things, the different treatments will be likely to have non-proportional hazards, with Rxtype=='d' likely to have large numbers of false positive rises at 1-2 years due to differing biology.

The obvious lack of independence between the successive rises in an individual is the problem - my feeling is to use the current data format with:

fit <- coxph(Surv(clinfailtime, clinfail) ~ riseval +Rxtype +frailty(id)

The frailty option is not available in cph (Design), meaning an illustrative nomogram would be more difficult to produce. Any thoughts on what might be the best solution to this would be most welcome.

Scott Williams MD