[R] Use of the newdata parameter in the predict.coxph function

Andrews, Chris chrisaa at med.umich.edu
Mon Feb 25 13:15:26 CET 2013


Couldn't reproduce your error (but I did get a warning message):

> ads1S <- with(ads1,Surv(INTERVAL_START,EVENT,STATUS,type=c('counting')))
Warning message:
In Surv(INTERVAL_START, EVENT, STATUS, type = c("counting")) :
  Stop time must be > start time, NA created
> cox_out  <-   coxph(ads1S~Meter3.Value + Meter4.Value + Meter5.Value + Meter10.Value,  data=ads1, model=TRUE, x=TRUE, y=TRUE )
> predict(cox_out)
 [1] -1.19774097 -1.47279824 -0.76264670 -0.89077702 -0.31121008 -0.31378214 -0.33851989 -0.41849240 -0.59889048 -0.27402152 -0.82761338
[12] -0.79388564 -1.02774234 -1.12108786 -1.39410460 -0.02585448  1.04098785  1.09806886  0.11804219  0.85303783  0.54535465  0.37521077
[23]  0.35958454  0.46680146  0.40568869  1.15677782 -1.05489122 -0.69323263  1.11558766  0.44046102 -0.51461595 -0.16067974 -0.44230767
[34] -0.08525554  0.08454627 -0.14084451 -0.12752372  0.26456751 -0.22514447 -0.23150850  0.25184530  0.39600332  0.21792620 -0.11326854
[45] -0.25130227  0.24762887  0.71834917 -0.12449250  0.44837962  0.28646581  0.35451803 -0.05495787  0.03494455  0.29297170  0.45655617
[56]  0.95394560  1.93318616  0.53368463  0.46502719  0.51133378  0.24489253 -0.68318291
> predict(cox_out,type="expected")
        1         2         3         4         5         7         8         9        10        11        12        13        14 
0.8987255 0.3895238 0.2455976 4.6584416 1.3184868 1.9914932 0.9221335 0.4582996 0.7141309 0.3724664 2.3198246 0.4748342 0.7120890 
       15        17        18        20        21        23        24        26        28        29        30        31        32 
0.5367001 0.1626016 0.7634858 0.9036739 0.9085294 0.7884793 0.8860263 1.7337697 1.7277863 1.5317648 0.7953659 0.7852396 0.8857003 
       34        36        37        38        39        40        41        42        43        44        45        46        47 
0.4590633 0.5492261 0.8814637 0.7910453 0.5929469 0.6748266 0.6102752 0.6911543 0.7261793 0.6791640 0.6820596 1.4005810 0.5215031 
       48        49        50        51        52        53        54        55        56        57        58        59        61 
1.0404717 0.6377536 0.6703538 0.6298815 1.1060371 1.6495236 2.0729627 0.8243298 0.6688793 0.7817669 0.7528888 0.7653308 0.6840951 
       62        63        64        65        66        67        68        69        70        71 
0.7031948 1.5018867 1.5925973 0.8788610 0.9507775 0.8265580 1.6465624 0.8365011 1.6341284 0.0000000 
> predict(cox_out,newdata=data.frame(Meter3.Value=100.001,
+ Meter4.Value=200.001,Meter5.Value=300.001,Meter10.Value=
+ 400.001,type="expected"))
       1 
12.14023

-----Original Message-----
From: Steve Einbender [mailto:steve.einbender at gmail.com] 
Sent: Sunday, February 24, 2013 9:40 AM
To: r-help at r-project.org
Subject: [R] Use of the newdata parameter in the predict.coxph function

Hello,
I've executed the following predict.coxph function to enable prediction for new variable values (error is included).

*predict(cox_out,newdata=data.frame(Meter3.Value=100.001,
Meter4.Value=200.001,Meter5.Value=300.001,Meter10.Value=
400.001,type="expected"))

Error in model.frame.default(data = data.frame(Meter3.Value = 100.001,  :
  variable lengths differ (found for 'Meter3.Value')

6: model.frame.default(data = data.frame(Meter3.Value = 100.001,
       Meter4.Value = 200.001, Meter5.Value = 300.001, Meter10.Value = 400.001,
       type = "expected"), formula = ads1S ~ Meter3.Value + Meter4.Value +
       Meter5.Value + Meter10.Value, na.action = function (object, ...)
 object)*


I feel as though I've exhaustively researched the "variable length" problem, that is:
Meter3.Value is Double, Numeric in both the original dataframe that created
the cox_out object (i.e., type: list   class:coxph) and Double, Numeric in
the newdata dataframe below.

Thanks for taking a look at this.
Steve

I've included all the code and two datasets at this location in Dropbox:

https://www.dropbox.com/sh/2m51tl4l60iq9ru/0DkPYA1E-c

   1. R_code_for_coxph.txt is the set of R functions used in the analysis
   2. final_sheet_v3_2.xlsx is the input data set
   3. cox_out.R is the coxph object





I'm also curious if anyone has had any experience with the collapse parameter in predict().  Any insight here would be very helpful.
I'm using the same data as above.
I'm assuming, based on the documentation, that collapse is just a vector of the subject ID's to aggregate the hazard function by subject ID but it's not working.  I created a simple dataframe called collapse:
ASSET_ID
1       260
2       263

but the predict function is complaining about one of the covariates:

*predict(cox_out,type="expected",collapse)*

*Error in eval(expr, envir, enclos) : object 'Meter3.Value' not found*

	[[alternative HTML version deleted]]


**********************************************************
Electronic Mail is not secure, may not be read every day, and should not be used for urgent or sensitive issues 



More information about the R-help mailing list