[R] Make natural splines constant outside boundary

Gad Abraham g.abraham at ms.unimelb.edu.au
Mon Dec 10 06:45:55 CET 2007


Charles C. Berry wrote:
> On Sat, 8 Dec 2007, Charles C. Berry wrote:
> 
>> Gad Abraham <g.abraham <at> ms.unimelb.edu.au> writes:
>>
>>> Hi,
>>>
>>> I'm using natural cubic splines from splines::ns() in survival
>>> regression (regressing inter-arrival times of patients to a queue on
>>> queue size). The queue size fluctuates between 3600 and 3900.
>>>
>>> I would like to be able to run predict.survreg() for sizes <3600 and
>>>> 3900 by assuming that the rate for <3600 is the same as for 3600 and
>>> that for >4000 it's the same as for 4000 (i.e., keep the splines cubic
>>> within the boundaries but make them constant outside the boundaries).
>>>
>> [snip]
>>
>>> Any suggestions?
>> Here is one.
>>
>>> range(ovarian$age)
>> [1] 38.8932 74.5041
>>> trim <- function(x) pmin(74.5041 ,pmax(38.8932 , x))
>>> s <- survreg(Surv(futime, fustat) ~ ns(age, knots=c(50,
>> 60),Boundary.knots=c(38.8932, 74.5041)),data=ovarian)
>>> s2 <- survreg(Surv(futime, fustat) ~ ns(trim(age), knots=c(50,
>> 60),Boundary.knots=c(38.8932, 74.5041)),data=ovarian)
> 
> Should have copy-and-pasted this here:
> 
> newage <- data.frame( age=seq(10,200,10 ) )
> 
>>> matplot(newage, cbind(predict(s,newdata=newage),predict(s2,newdata=newage)))

Thanks Chuck, that works nicely.

Cheers,
Gad

-- 
Gad Abraham
Department of Mathematics and Statistics
The University of Melbourne
Parkville 3010, Victoria, Australia
email: g.abraham at ms.unimelb.edu.au
web: http://www.ms.unimelb.edu.au/~gabraham

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



More information about the R-help mailing list