[R] confidence interval for nls

Peter Dalgaard p.dalgaard at biostat.ku.dk
Thu Oct 7 15:02:25 CEST 2004


Henrik Andersson <h.andersson at nioo.knaw.nl> writes:

> Do I have the right impression that it's currently not possible to
> produce confidence intervals for the nls predictions using R?
> 
> I had a course were we used SAS PROC nlin and there you could get
> intervals for the parameters and the prediction but I do not have
> access to SAS.
> 
> Would it be difficult to implement, I tried to dig into the help pages
> of nls, vcov and nlsModel but I could not really make sense out of
> this?

It's pretty trivial (if you stick with the linear approximation), once
you realize that predict.nls actually returns the gradient in an
attribute:

example(predict.nls)
se.fit <- sqrt(apply(attr(predict(fm,list(Time = tt)),"gradient"),1, 
                  function(x) sum(vcov(fm)*outer(x,x))))
matplot(tt, predict(fm,list(Time = tt))+
               outer(se.fit,qnorm(c(.5, .025,.975))),type="l")

points(demand ~ Time, data = BOD)

One slight issue is that it doesn't work if "newdata" is omitted, but
then you can easily get the gradient from fm$m$gradient()

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: (+45) 35327907




More information about the R-help mailing list