[R] A problem with anova()
Christian Ritz
ritz at life.ku.dk
Fri May 9 11:59:43 CEST 2008
Hi Peter,
I think one option for what anova could do in the nonlinear case is to report the analysis
of variance (or deviance) table obtained when doing a lack-of-fit test, that is comparing
the nonlinear regression model to an appropriate ANOVA model. This is for example the use
of anova in the package 'drc':
## Using the package 'drc' from CRAN
library(drc)
## Fitting the 4-par log-logistic model
ryegrass.ll <- drm(rootl ~ conc, data = ryegrass, fct = LL.4())
## ANOVA table for the lack-of-fit test
anova(ryegrass.ll)
Christian
Peter Dalgaard wrote:
> Guru S wrote:
>> Hi,
>>
>> I fitted tree growth data with Chapman-Richards growth function using
>> nls.
>> summary(fit.nls)
>> Formula: HEIGHT ~ A * (1 - exp(-B * AGE))^C
>> Parameters:
>> Estimate Std. Error t value Pr(>|t|) A 29.007627 0.270485
>> 107.24 <2e-16 ***
>> B 0.030813 0.001095 28.13 <2e-16 ***
>> C 1.849405 0.068659 26.94 <2e-16 ***
>> ---
>> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
>> Residual standard error: 1.879 on 713 degrees of freedom
>>
>> Algorithm "port", convergence message: relative convergence (4)
>> When I try to run the anova() function I get this:
>>
>> anova(fit.nls)
>> Error in anova.nls(fit.nls) : anova is only defined for sequences of
>> "nls" objects
>>
>> Could you tell me what the problem is?
>>
>>
> It's what the message says: You can't run anova() on one model, only
> compare several, as in
> anoval(fit.nls, fit2.nls).
> It is not clear what anova(fit.nls) should do in the nonlinear case ,
> since you cannot in general remove parameters successively from the
> model (notice, for your own model, that C is meaningless if B=0 and both
> B and C are meaningless if A=0).
>
More information about the R-help
mailing list