[R] How to put factor variables in an nls formula ?

François Morneau francois.morneau at cirad.fr
Fri Aug 19 20:05:35 CEST 2005


Le 11:12 19/08/2005,Douglas Bates écrit:
>On 8/18/05, François Morneau <francois.morneau at cirad.fr> wrote:
> > Hello,
> >
> > I want to fit a Gompertz model for tree diameter growth that depends on a 4
> > levels edaphic factor ('Drain') and I don't manage to introduce the factor
> > variable in the formula.
> > Dinc is the annual diameter increment and D is the Diameter.
> >
> >  >treestab
> >  >     Dinc     D      Drain
> >   [1,]  0.03  26.10     2
> >   [2,]  0.04  13.05     1
> >   [3,]  0.00  24.83     1
> >   [4,]  0.00  15.92     4
> >   [5,]  0.00  12.25     4
> >   [6,]  0.00  11.78     4
> >   [7,]  0.00  16.87     4
> >   [8,]  0.00  15.12     4
> >   [9,] -0.01  13.53     4
> > [10,] 0.04  16.55     3
> > [11,] 0.025 16.07     3
> > [12,] 0.00  30.24     3
> > [13,] 0.06  15.28     2
> > etc

> >  >contrasts(Drain)<-contr.sum(4)
> >  >mymodel<-nls(Dinc~r*(1+Drain)*D*log(Asym/D), data=treestab, 
> start=list(r=0.05,
> > Asym=40))
> >
> > Error in numericDeriv(form[[3]], names(ind), env) :
> >          Missing value or an infinity produced when evaluating the model
> > In addition: Warning messages:
> > 1: + not meaningful for factors in: Ops.factor(1, Drain)
> > 2: + not meaningful for factors in: Ops.factor(1, Drain)
>
>It is not clear to me what you are trying to do.  Can you give us a
>bit more information such as how many parameter estimates you expect
>to obtain and what they would represent?

I'm trying to estimate the effect of the edaphic factor 'Drain' on tree 
diameter growth. The relationship between diameter 'D' and diameter 
increment 'Dinc' follow a Gompertz model written : Dinc= r D log(Asym/D) 
where 'r' is a parameter related to growth speed and 'Asym' is the diameter 
max where growth stops.

My hypothesis is that 'Asym' doesn't change according to edaphic condition 
but 'r' does. So I'd like to estimate 'Asym' and four 'r'i parameters for 
each level i of 'Drain' with 'r'i= r0 + effect of 'Drain'i

I hope this is helpful...

> >
> > Do I need to use another function instead of nls to correctly include the
> > factor 'Drain' ?
> >
> > Thanks,
> >
> > François

François Morneau
UMR Écologie des Forêts de Guyane
Kourou, French Guiana




More information about the R-help mailing list