[R] standard errors for predict.nls?

Christoph Scherber Christoph.Scherber at agr.uni-goettingen.de
Fri Nov 7 11:33:32 CET 2008


Dear all,

I would like to get standard errors (or confidence intervals) for *predicted* values from an nls fit.

I have tried to implement code from p.225 in MASS (bootstrapping a nls fit), but this gives only the 
confidence intervals of the parameter estimates, but not an overall confidence interval for the 
predicted value(s):

puro1<-nls(rate~a*conc/(b+conc), data=Puromycin[1:12,], start=list(a=200, b=1))  #set up nls model

# assume only one predicted value is obtained using predict(puro1,list(conc=0.02)):

st=cbind(Puromycin[1:12,],fit=predict(puro1,list(conc=0.02)))

puro.bf=function(rs,i){
	st$rate=st$fit+rs[i]
	coef(nls(rate~a*conc/(b+conc), st, start=coef(puro1)))
}

rs=scale(resid(puro1),scale=F)
(puro.boot=boot(rs,puro.bf,R=100))

boot.ci(puro.boot,index=1,type=c("norm"))
boot.ci$t0
boot.ci$norm
###

How do I have to change the code to get the c.i. for the predicted value?


Many thanks and best wishes,
Christoph





Prof Brian Ripley schrieb:
> On Mon, 3 Nov 2008, Ben Bolker wrote:
> 
>> Prof Brian Ripley wrote:
>>>> Christoph Scherber <Christoph.Scherber <at> agr.uni-goettingen.de>
>>>> writes:
>>>>
>>>>>
>>>>> Dear all,
>>>>>
>>>>> Is there a way to retrieve standard errors from nls models?
>>>>> The help page tells me that arguments
>>>>> such as se.fit are ignored...
>>>>>
>>>>> Many thanks and best wishes
>>>>> Christoph
>>
>>> In general using the delta method (which is I guess what you mean, local
>>> linearization via derivatives) is nowhere near accurate enough to be
>>> useful.  That's why it has not been done on several occasions in the 
>>> past.
>>> If you think it might be, see ?delta.method in package alr3.
>>>
>>> I would suggest using simulation/bootsrapping to explore the 
>>> uncertainty.
>>> There is an example in MASS of doing so (and that illustrates some of
>>> the pitfalls).
>>
>>  Hmmm.  By an example, do you mean an example of using bootstrapping to
>> explore uncertainty in general, or of using bootstrapping to get
>> standard errors of predictions from nonlinear regressions?  I looked
>> through my copy of MASS (4th ed.) and found only section 5.7
>> (bootstrapping in general) and chapter 8 (nonlinear and smooth
>> regression, esp. p. 225 "bootstrapping" for getting bootstrap c.i.'s on
>> parameter estimates).  I didn't find anything *specifically* covering
>> s.e./c.i. for nls predictions, but maybe that's not what you meant.
> 
> I meant the example on p.225 on bootstrapping a nls fit (and that you 
> needed to bootstrap residuals in some cases).  You can use almost 
> identical code to set s.e./c.i. for nls predictions.
> 
>>  And yes, I meant "delta method" rather than "delta function" in my
>> original post.  Oops.
>>
>>  I might add something quick/dirty/naive to the wiki giving
>> some examples of delta method/bootstrap approaches ...
>>
>>  If there is no intention to add confidence interval calculation
>> to predict.se in the foreseeable future might I suggest that the details
>> under "Value" as to what "se.fit" will do when it is implemented be
>> removed? (And perhaps even a statement to the effect [as you say
>> above] that delta method is considered unreliable?)  As written it's a
>> bit of a tease ...
> 
> I didn't write that ... and its author might have other opinions.
> 
>>  cheers
>>    Ben Bolker
>>
> 

-- 
Dr. rer.nat. Christoph Scherber
University of Goettingen
DNPW, Agroecology
Waldweg 26
D-37073 Goettingen
Germany

phone +49 (0)551 39 8807
fax   +49 (0)551 39 8806

Homepage http://www.gwdg.de/~cscherb1



More information about the R-help mailing list