[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