I haven't looked to see whether you or Bert made an algebraic mistake in translating the parameters of the log-linear model to their equivalents for the nonlinear model, but nls() gives me the same answer as nls() in this case (I called my data 'dd2'):

----

n1 <- nlxb(y~theta1 - theta2*exp(-theta3*(x-8)),
     start = list(theta1 = 0.4, theta2 = -0.1, theta3 = 1/5),
     data = dd2)

cc <- coef(n1)
start2 <- with(as.list(cc),
               list(theta1 = theta1,
                    theta2 = theta2*exp(theta3*8),
                    theta3 = theta3))
unlist(start2)

n2 <- nlxb(y~theta1 - theta2*exp(-theta3*x),
     start = start2,
     data = dd2)
all.equal(unlist(start2), c(coef(n2)), tolerance = 1e-7)
cc2 <- coef(n2)

nlregmod2 <- nls(y ~ theta1 - theta2*exp(-theta3*x),
                  start =
                    list(theta1 = cc2[["theta1"]],
                         theta2 = cc2[["theta2"]],
                         theta3 = cc2[["theta3"]]), data=dd2)


On 2023-08-20 2:50 p.m., Paul Bernal wrote:
Dear Bert,

Thank you so much for your kind and valuable feedback. I tried finding the
starting values using the approach you mentioned, then did the following to
fit the nonlinear regression model:
nlregmod2 <- nls(y ~ theta1 - theta2*exp(-theta3*x),
                   start =
                     list(theta1 = 0.37,
                          theta2 = exp(-1.8),
                          theta3 = -0.05538), data=mod14data2_random)
However, I got this error:
Error in nls(y ~ theta1 - theta2 * exp(-theta3 * x), start = list(theta1 =
0.37,  :
   step factor 0.000488281 reduced below 'minFactor' of 0.000976562
nlregmod2 <- nlxb(y ~ theta1 - theta2*exp(-theta3*x),
                   start =
                     list(theta1 = 0.37,
                          theta2 = exp(-1.8),
                          theta3 = -0.05538), data=mod14data2_random)
summary(nlregmod2)
Object has try-error or missing parameters
nlregmod2
And I get some NA values when retrieving the statistics for the fitted
model:
residual sumsquares =  0.0022973  on  15 observations
     after  2235    Jacobian and  2861 function evaluations
   name            coeff          SE       tstat      pval      gradient
  JSingval
theta1           9330.89            NA         NA         NA   5.275e-11
    967470
theta2           9330.41            NA         NA         NA  -5.318e-11
     1.772
theta3       -3.0032e-07            NA         NA         NA   1.389e-05
8.028e-12

Kind regards,
Paul


El dom, 20 ago 2023 a las 13:21, Bert Gunter (<bgunter.4...@gmail.com>)
escribió:

I got starting values as follows:
Noting that the minimum data value is .38, I fit the linear model log(y -
.37) ~ x to get intercept = -1.8 and slope = -.055. So I used .37,
exp(-1.8)  and -.055 as the starting values for theta0, theta1, and theta2
in the nonlinear model. This converged without problems.

Cheers,
Bert


On Sun, Aug 20, 2023 at 10:15 AM Paul Bernal <paulberna...@gmail.com>
wrote:

Dear friends,

This is the dataset I am currently working with:
dput(mod14data2_random)
structure(list(index = c(14L, 27L, 37L, 33L, 34L, 16L, 7L, 1L,
39L, 36L, 40L, 19L, 28L, 38L, 32L), y = c(0.44, 0.4, 0.4, 0.4,
0.4, 0.43, 0.46, 0.49, 0.41, 0.41, 0.38, 0.42, 0.41, 0.4, 0.4
), x = c(16, 24, 32, 30, 30, 16, 12, 8, 36, 32, 36, 20, 26, 34,
28)), row.names = c(NA, -15L), class = "data.frame")

I did the following to try to fit a nonlinear regression model:

#First, Procedure to Find Starting (initial) Values For Theta1, Theta2,
and
Theta3

mymod2 <- y ~ theta1 - theta2*exp(-theta3*x)

strt2 <- c(theta1 = 1, theta2 = 2, theta3 = 3)

trysol2<-nlxb(formula=mymod2, data=mod14data2_random, start=strt2,
trace=TRUE)
trysol2
trysol2$coefficients[[3]]

#Fitting nonlinear Regression Model Using Starting Values From Previous
Part
nonlinearmod2 <- nls(mymod2, start = list(theta1 =
trysol2$coefficients[[1]],
                      theta2 = trysol2$coefficients[[2]],
                      theta3 = trysol2$coefficients[[3]]), data =
mod14data2_random)

And I got this error:
Error in nlsModel(formula, mf, start, wts, scaleOffset = scOff, nDcentral
=
nDcntr) :
   singular gradient matrix at initial parameter estimates

Any idea on how to proceed in this situation? What could I do?

Kind regards,
Paul

         [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.



        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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