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).


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to