Skip to content

Contrasts in coxph

3 messages · Sorkin, John, Göran Broström, David Winsemius

#
I would like to define contrasts on the output of a coxph function. It appears that the contrast function from the contrast library does not have a method defined that will allow computation of contrasts on a coxph object.

How does one define and evaluate contrasts for a cox model?

Thank you,
John

John David Sorkin M.D., Ph.D.
Professor of Medicine
Chief, Biostatistics and Informatics
University of Maryland School of Medicine Division of Gerontology and Geriatric Medicine
Baltimore VA Medical Center
10 North Greene Street
GRECC (BT/18/GR)
Baltimore, MD 21201-1524
(Phone) 410-605-7119
(Fax) 410-605-7913 (Please call phone number above prior to faxing)
#
Dear John,

I googled "contrasts Cox regression" and found

https://stats.stackexchange.com/questions/15603/performing-contrasts-among-treatment-levels-in-survival-analysis

where Frank Harrell reports how to do what you want with his rms 
package. At least I think so, haven't tried it myself.

Best, G?ran
On 2021-04-06 05:28, Sorkin, John wrote:
#
On 4/5/21 8:28 PM, Sorkin, John wrote:
I suspect that you are hoping for post-hoc pairwise contrasts. If that's 
the case, then the multcomp package's glht is generally very capable. It 
has three examples in its vignette the involve survivla models. The last 
one constructs a categorical variable for age. That's not a procedure 
that I endorse, but it may have been done for illustration of a method 
and would therefore be free of sin.


library(multcomp)? # console output follows

 > if (require("survival") && require("MASS")) {
+???? ### construct 4 classes of age
+???? Melanoma$Cage <- factor(sapply(Melanoma$age, function(x){if( x <= 
25 ) return(1)
+???????? if( x > 25 & x <= 50 ) return(2)
+???????? if( x > 50 & x <= 75 ) return(3)
+???????? if( x > 75 & x <= 100) return(4) }
+???? ))
+ }
 > summary(Melanoma)
 ????? time????????? status????????? sex age???????????? year??????? 
thickness
 ?Min.?? :? 10?? Min.?? :1.00?? Min.?? :0.0000?? Min.?? : 4.00 Min.?? 
:1962?? Min.?? : 0.10
 ?1st Qu.:1525?? 1st Qu.:1.00?? 1st Qu.:0.0000?? 1st Qu.:42.00 1st 
Qu.:1968?? 1st Qu.: 0.97
 ?Median :2005?? Median :2.00?? Median :0.0000?? Median :54.00 Median 
:1970?? Median : 1.94
 ?Mean?? :2153?? Mean?? :1.79?? Mean?? :0.3854?? Mean?? :52.46 Mean?? 
:1970?? Mean?? : 2.92
 ?3rd Qu.:3042?? 3rd Qu.:2.00?? 3rd Qu.:1.0000?? 3rd Qu.:65.00 3rd 
Qu.:1972?? 3rd Qu.: 3.56
 ?Max.?? :5565?? Max.?? :3.00?? Max.?? :1.0000?? Max.?? :95.00 Max.?? 
:1977?? Max.?? :17.42
 ???? ulcer?????? Cage
 ?Min.?? :0.000?? 1: 14
 ?1st Qu.:0.000?? 2: 73
 ?Median :0.000?? 3:104
 ?Mean?? :0.439?? 4: 14
 ?3rd Qu.:1.000
 ?Max.?? :1.000
 > cm <- coxph(Surv(time, status == 1) ~ Cage, data = Melanoma)
 > ### specify all pair-wise comparisons among levels of "Cage"
 > cm.glht <- glht(cm, mcp(Cage = "Tukey"))
 > cm.glht

 ??? ?General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Linear Hypotheses:
 ?????????? Estimate
2 - 1 == 0? -0.2889
3 - 1 == 0?? 0.1910
4 - 1 == 0?? 1.0742
3 - 2 == 0?? 0.4800
4 - 2 == 0?? 1.3631
4 - 3 == 0?? 0.8832