[R] Issue when using a coxph + summary function in R while using a pspline-transformed covariate

David Winsemius dwinsemius at comcast.net
Thu Aug 1 17:59:11 CEST 2013


On Aug 1, 2013, at 1:02 AM, Dumortier, Thomas wrote:

> Hello 
>  
> I have an issue with obtaining a confidence interval from a coxph object in R while using a spline-transformed covariate.
> 
> This is a time to event analysis using coxph() from the survival package.
> In the model below, COVA is a continuous covariate. COVA is time-dependent hence the counting process notation. COVA is transformed via pspline, COVB (FALSE or TRUE) is a fixed covariate. 
> My goal is to get the confidence interval for COVB. With this purpose, I use the summary(…,conf.int=.95) function.
> I have pasted the code and the console below.
> 
> The estimation works well.
> The summary function returns the desired confidence interval in the console, but it returns a NULL object (psp.sum is returned NULL, see below the code and the console) 
> 
> Note that if I do not use pspline, it works !!!!!
> So it seems that the use of pspline is not compatible with the summary function.

Not exactly. It's two different functions in reality.
> 
> This is a problem because I would like to do some simulation and need to retrieve the confidence interval from psp.sum.
> 
> Can you kindly help?
> 
> Rgds
> Tom
> 
> CODE
>  
> psp<-coxph(Surv(DAY2,DAY2P1,EVTF)~COVB+pspline(COVA, df = 0, caic = T),data=dsn4,method='breslow')
> psp
> psp.sum<-summary(psp,conf.int=.95)
> psp.sum
>  

If you add the line:

class(psp) # you will find that it returns [1] "coxph.penal" "coxph"    

Then looking at the code for survival:::summary.coxph.penal, you will see that the final line is `invisible()`, so Therneau did not intend anything to be returned from a penalized fit. Generally the failure to return an object is a sign that the author thought it was a bad idea. I think the problem comes from the interval nature of the data layout. In the past, Therneau has written that the request for even  plotting a survival curve itself is problematic in this situation.

http://markmail.org/message/ufmtidvzfcgqdsot?q=list:org%2Er-project%2Er-help+time+dependent+covariates+survival+from:%22Terry+Therneau%22&page=1

-- 
David.

> CONSOLE
> 
> 1> psp<-coxph(Surv(DAY2,DAY2P1,EVTF)~COVB+pspline(COVA, df = 0, caic = T),data=dsn4,method='breslow')
>  
> 1> psp
> Call:
> coxph(formula = Surv(DAY2, DAY2P1, EVTF) ~ COVB + pspline(COVA, 
>     df = 0, caic = T), data = dsn4, method = "breslow")
>  
>                           coef   se(coef) se2    Chisq DF   p      
> COVBTRUE                  -1.625 0.4223   0.4198 14.80 1.00 1.2e-04
> pspline(COVA, df = 0, caic -0.341 0.0761   0.0761 20.04 1.00 7.6e-06
> pspline(COVA, df = 0, caic                         1.95 0.83 1.3e-01
>  
> Iterations: 10 outer, 29 Newton-Raphson
>      Theta= 0.98 
> Degrees of freedom for terms= 1.0 1.8 
> Likelihood ratio test=22.3  on 2.81 df, p=4.52e-05  n= 16933 
>  
> 1> psp.sum<-summary(psp,conf.int=.95)
> Call:
> coxph(formula = Surv(DAY2, DAY2P1, EVTF) ~ COVB + pspline(COVA, 
>     df = 0, caic = T), data = dsn4, method = "breslow")
>  
>   n= 16933, number of events= 35 
>  
>                           coef   se(coef) se2    Chisq DF   p      
> COVBTRUE                  -1.625 0.4223   0.4198 14.80 1.00 1.2e-04
> pspline(COVA, df = 0, caic -0.341 0.0761   0.0761 20.04 1.00 7.6e-06
> pspline(COVA, df = 0, caic                         1.95 0.83 1.3e-01
>  
>           exp(coef) exp(-coef) lower .95 upper .95
> COVBTRUE    0.19690       5.08  8.61e-02    0.4506
> ps(COVA)3    0.59903       1.67  3.48e-01    1.0301
> ps(COVA)4    0.35872       2.79  1.36e-01    0.9470
> ps(COVA)5    0.21394       4.67  5.82e-02    0.7857
> ps(COVA)6    0.12594       7.94  2.69e-02    0.5898
> ps(COVA)7    0.07290      13.72  1.31e-02    0.4051
> ps(COVA)8    0.04275      23.39  6.84e-03    0.2673
> ps(COVA)9    0.02647      37.78  3.89e-03    0.1802
> ps(COVA)10   0.01785      56.04  2.45e-03    0.1301
> ps(COVA)11   0.01310      76.32  1.68e-03    0.1024
> ps(COVA)12   0.01019      98.11  1.19e-03    0.0870
> ps(COVA)13   0.00810     123.39  8.32e-04    0.0790
> ps(COVA)14   0.00645     154.95  5.43e-04    0.0767
> ps(COVA)15   0.00512     195.45  3.26e-04    0.0803
> ps(COVA)16   0.00405     246.92  1.80e-04    0.0913
> ps(COVA)17   0.00320     312.04  9.11e-05    0.1127
> ps(COVA)18   0.00254     394.32  4.29e-05    0.1499
> ps(COVA)19   0.00201     498.30  1.89e-05    0.2133
>  
> Iterations: 10 outer, 29 Newton-Raphson
>      Theta= 0.98 
> Degrees of freedom for terms= 1.0 1.8 
> Concordance= 0.673  (se = 0.05 )
> Rsquare= 0.001   (max possible= 0.026 )
> Likelihood ratio test= 22.3  on 2.81 df,   p=4.52e-05
> Wald test            = 24.6  on 2.81 df,   p=1.48e-05
>  
> 1> psp.sum
> NULL
> 1> 
>  
>  
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

David Winsemius
Alameda, CA, USA



More information about the R-help mailing list