[R] survreg and pweibull solved for any distribution

Andrew Beckerman a.beckerman at sheffield.ac.uk
Thu Nov 27 10:59:53 CET 2008


Dear all -

Following up my own post, having found a Terry Therneau post about the  
value of predict(model,type="quantile"),

http://tolstoy.newcastle.edu.au/R/e4/help/08/03/5335.html

the following code ammendment produces what I was intending to see.   
It clear that the 0.5 quantile is the inflection point.  And predict()  
has the value of being distribution independent, and producing valid  
SE estimates.

data(lung)
lung.wbs <- survreg( Surv(time, status)~ 1, data=lung, dist='weibull')

curve(pweibull(x, scale=exp(coef(lung.wbs)), shape=1/lung.wbs 
$scale,lower.tail=FALSE),from=0, to=max(lung$time))
lines(survfit(Surv(time,status)~1, data=lung), col="red")

abline(h=0.5,lty=2)
abline(v=unique(predict(lung.wbs,type="quantile",p=0.5)),lty=2,col=4)

However, one last technical question.  In an intercept only model, how  
do you specify newdata to get just a single estimate?  In the above  
example I used unique against the model predictions evaluated at every  
datapoint.  But with no terms on the RHS of the model, how do you (can  
you) specify new data?

Best wishes,
Andrew



On 26 Nov 2008, at 16:27, Andrew Beckerman wrote:

> Dear all -
>
> I have followed the thread the reply to which was lead by Thomas  
> Lumley about using pweibull to generate fitted survival curves for  
> survreg models.
>
> http://tolstoy.newcastle.edu.au/R/help/04/11/7766.html
>
> Using the lung data set,
>
> data(lung)
> lung.wbs <- survreg( Surv(time, status)~ 1, data=lung, dist='weibull')
> curve(pweibull(x, scale=exp(coef(lung.wbs)), shape=1/lung.wbs 
> $scale,lower.tail=FALSE),from=0, to=max(lung$time))
> lines(survfit(Surv(time,status)~1, data=lung), col="red")
>
> Assuming this is correct, why does the inflection point of this  
> curve not match up to the exp(scale parameter)?  Am I wrong in  
> assuming that the scale represents the inflection, and the shape  
> adjusts the shape around this point?  I think I am.... perhaps  
> confusing the scale and the median with the inflection point  
> calcuation?
>
> One can visualise the mismatch with:
>
> abline(v=exp(coef(lung.wbs)),lty=2)
> abline(h=0.5,lty=2)
>
> Many thanks for the clarification....
>
> R version 2.8.0 (2008-10-20)
> i386-apple-darwin8.11.1
> locale:
> en_GB.UTF-8/en_GB.UTF-8/C/C/en_GB.UTF-8/en_GB.UTF-8
> attached base packages:
> [1] splines   datasets  utils     stats     graphics  grDevices  
> methods   base
> other attached packages:
> [1] survival_2.34-1 Hmisc_3.4-3     lattice_0.17-15 MASS_7.2-44
> loaded via a namespace (and not attached):
> [1] cluster_1.11.11 grid_2.8.0      tools_2.8.0
>
> Andrew
>
> ---------------------------------------------------------------------------------
> Dr. Andrew Beckerman
> Department of Animal and Plant Sciences, University of Sheffield,
> Alfred Denny Building, Western Bank, Sheffield S10 2TN, UK
> ph +44 (0)114 222 0026; fx +44 (0)114 222 0002
> http://www.beckslab.staff.shef.ac.uk/
>
> http://www.flickr.com/photos/apbeckerman/
> http://www.warblefly.co.uk
>
> ______________________________________________
> 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.



More information about the R-help mailing list