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

Douglas Bates dmbates at gmail.com
Sat Aug 20 00:48:28 CEST 2005


On 8/19/05, François Morneau <francois.morneau at cirad.fr> wrote:
> 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...

Yes, it is.  
> 
> > >
> > > 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