Skip to content

using nls to fit a curve to data

3 messages · jpl, Ben Bolker

jpl
#
Hi,

I am trying to fit a curve to data.  My command line is:

model10=nls(offspring~((A*c^k)/gamma(k))*((degdays-alpha)^(k-1))*exp(-c*(degdays-alpha)),
	start=list(A=30,k=2,c=.018,alpha=131))

I get the error message:
Error in numericDeriv(form[[3]], names(ind), env) : 
        Missing value or an infinity produced when evaluating the model
In addition: Warning message:
full precision was not achieved in 'gammafn' 


My starting values yield a curve very similar t to other models which I
fitted successfully.  So any suggestions?  I've tried different starting
values.
1 day later
#
jpl <s-jlubben1 <at> math.unl.edu> writes:
model10=nls(offspring~((A*c^k)/gamma(k))*
 ((degdays-alpha)^(k-1))*exp(-c*(degdays-alpha)),
try trace=TRUE to see where the function is trying to go.
I think you could also simplify this a bit:

model10 = nls(offspring~A*dgamma(degdays-alpha,rate=c,shape=k),...)

You can probably also use algorithm="plinear" and eliminate
the explicit A parameter.

 I would also consider using algorithm="port" and setting
lower and upper boundaries.

  good luck,
   Ben Bolker