Thanks a lot Bert, I appreciate your help. Kind regards,
Paul El El dom, 20 de ago. de 2023 a la(s) 2:39 p. m., Bert Gunter < bgunter.4...@gmail.com> escribió: > Basic algebra and exponentials/logs. I leave those details to you or > another HelpeR. > > -- Bert > > On Sun, Aug 20, 2023 at 12:17 PM Paul Bernal <paulberna...@gmail.com> > wrote: > >> Dear Bert, >> >> Thank you for your extremely valuable feedback. Now, I just want to >> understand why the signs for those starting values, given the following: >> > #Fiting intermediate model to get starting values >> > intermediatemod <- lm(log(y - .37) ~ x, data=mod14data2_random) >> > summary(intermediatemod) >> >> Call: >> lm(formula = log(y - 0.37) ~ x, data = mod14data2_random) >> >> Residuals: >> Min 1Q Median 3Q Max >> -0.7946 -0.0908 0.0379 0.1111 0.5917 >> >> Coefficients: >> Estimate Std. Error t value Pr(>|t|) >> (Intercept) -1.81693 0.25806 -7.04 8.8e-06 *** >> x -0.05538 0.00964 -5.75 6.8e-05 *** >> --- >> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 >> >> Residual standard error: 0.323 on 13 degrees of freedom >> Multiple R-squared: 0.717, Adjusted R-squared: 0.696 >> F-statistic: 33 on 1 and 13 DF, p-value: 6.76e-05 >> >> Kind regards, >> Paul >> >> El dom, 20 ago 2023 a las 14:07, Bert Gunter (<bgunter.4...@gmail.com>) >> escribió: >> >>> Oh, sorry; I changed signs in the model, fitting >>> theta0 + theta1*exp(theta2*x) >>> >>> So for theta0 - theta1*exp(-theta2*x) use theta1= -.exp(-1.8) and theta2 >>> = +.055 as starting values. >>> >>> -- Bert >>> >>> >>> >>> >>> >>> On Sun, Aug 20, 2023 at 11:50 AM Paul Bernal <paulberna...@gmail.com> >>> 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.