[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