Skip to content
Back to formatted view

Raw Message

Message-ID: <2e47ad$givhj1@ironport10.mayo.edu>
Date: 2021-09-03T19:10:00Z
From: Terry Therneau
Subject: coxph means not equal to means of model matrix
In-Reply-To: <YT3PR01MB5026E0FB5440DC99B1D82DBBE6CF9@YT3PR01MB5026.CANPRD01.PROD.OUTLOOK.COM>

On 9/3/21 12:59 PM, Bond, Stephen wrote:
>
> I looked at the nocenter and it says (-1,0,1) values but it seems that any three-level 
> factor is included in that (represented as 1,2,3 in R) .
>
A factor is turned into a set of 0/1 dummy variable, so the nocenter applies.? I will add 
more clarification to the documentation.

> Also, is the baseline curve now showing the reference level and not the fictional .428 
> sex? If I predict the risk for a new row, should I multiply the coefficient shown in the 
> output by 1 for a sex=1? It used to be (1-.428)*coef.
>
Yes, the "mean" component is the reference level for predict and survfit.? If I could go 
back in time it would be labeled as "reference" instead of "mean".?? Another opportunity 
for me to make the documentation clearer.

Good questions,
 ? Terry T

> Thanks for clarifying.
>
> SB
>
> *From:* Therneau, Terry M., Ph.D. <therneau at mayo.edu>
> *Sent:* Friday, 3 September, 2021 12:37
> *To:* Bond, Stephen <Stephen.Bond at cibc.com>
> *Cc:* R-help <r-help at R-project.org>
> *Subject:* Re: coxph means not equal to means of model matrix
>
> [EXTERNAL]
>
> ------------------------------------------------------------------------------------------
>
> See ?coxph, in particular the new "nocenter" option.
>
> Basically, the "mean" component is used to center later computations.? This can be 
> critical for continuous variables, avoiding overflow in the exp function, but is not 
> necessary for 0/1 covariates.?? The fact that the default survival curve would be for a 
> sex of .453, say, was off-putting to many.
>
> Terry T.
>
> On 9/3/21 11:01 AM, Bond, Stephen wrote:
>
>     Hi,
>
>     Please, help me understand what is happening with the means of a Cox model?
>
>     I have:
>
>     R version 4.0.2 (2020-06-22) -- "Taking Off Again"
>
>     Copyright (C) 2020 The R Foundation for Statistical Computing
>
>     Platform: x86_64-w64-mingw32/x64 (64-bit)
>
>     getOption("contrasts")
>
>     ??????? unordered ordered
>
>     "contr.treatment" "contr.poly"
>
>     According to the help ?coxph.object has a component holding the means of the X
>     (model.matrix). This does not hold any more.
>
>     ```
>
>     library(survival)
>
>     test1 <- list(time=c(4,3,1,1,2,2,3),
>
>     ???????????????????status=c(1,1,1,0,1,1,0),
>
>     ???????????????????x=c(0,2,1,1,1,0,0),
>
>     ???????????????????sex=factor(c(0,0,0,0,1,1,1)))
>
>     m1 <- coxph(Surv(time, status) ~ x + sex, test1)
>
>     m1$means
>
>     ##??????? x????? sex1
>
>     ## 0.7142857 0.0000000
>
>     colMeans(model.matrix(m1))
>
>     ##???????? x????? sex1
>
>     ## 0.7142857 0.4285714
>
>     ```
>
>     Will new observations be scored using the zero mean from the object?? Is this just a
>     reporting change where $means shows the reference level and no longer the mean of
>     the model matrix??
>
>     Thanks everybody
>
> ATTENTION : This email originated outside your organization. Exercise caution before 
> clicking links, opening attachments, or responding with personal information.
>
> ------------------------------------------------------------------------------------------


	[[alternative HTML version deleted]]