[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