[R] Determining Starting Values for Model Parameters in Nonlinear Regression

Paul Bernal p@u|bern@|07 @end|ng |rom gm@||@com
Sun Aug 20 00:42:41 CEST 2023


Thank you so much Dr. Nash, I truly appreciate your kind and valuable
contribution.

Cheers,
Paul

El El sáb, 19 de ago. de 2023 a la(s) 3:35 p. m., J C Nash <
profjcnash using gmail.com> escribió:

> Why bother. nlsr can find a solution from very crude start.
>
> Mixture <- c(17, 14, 5, 1, 11, 2, 16, 7, 19, 23, 20, 6, 13, 21, 3, 18, 15,
> 26, 8, 22)
> x1 <- c(69.98, 72.5, 77.6, 79.98, 74.98, 80.06, 69.98, 77.34, 69.99,
> 67.49, 67.51, 77.63,
>          72.5, 67.5, 80.1, 69.99, 72.49, 64.99, 75.02, 67.48)
> x2 <- c(29, 25.48, 21.38, 19.85, 22, 18.91, 29.99, 19.65, 26.99, 29.49,
> 32.47,
>          20.35, 26.48, 31.47, 16.87, 27.99, 24.49, 31.99, 24.96, 30.5)
> x3 <- c(1, 2, 1, 0, 3, 1, 0, 2.99, 3, 3, 0, 2, 1, 1, 3, 2,
>          3, 3, 0, 2)
> y <- c(1.4287, 1.4426, 1.4677, 1.4774, 1.4565,
>         1.4807, 1.4279, 1.4684, 1.4301, 1.4188, 1.4157, 1.4686, 1.4414,
>         1.4172, 1.4829, 1.4291, 1.4438, 1.4068, 1.4524, 1.4183)
> mydata<-data.frame(Mixture, x1, x2, x3, y)
> mydata
> mymod <- y ~ 1/(Beta1*x1 + Beta2*x2 + Beta3*x3)
> library(nlsr)
> strt<-c(Beta1=1, Beta2=2, Beta3=3)
> trysol<-nlxb(formula=mymod, data=mydata, start=strt, trace=TRUE)
> trysol
> # or pshort(trysol)
>
>
> Output is
>
> residual sumsquares =  1.5412e-05  on  20 observations
>      after  29    Jacobian and  43 function evaluations
>    name            coeff          SE       tstat      pval      gradient
>   JSingval
> Beta1         0.00629212     5.997e-06       1049  2.425e-42   4.049e-08
>      721.8
> Beta2         0.00867741     1.608e-05      539.7  1.963e-37  -2.715e-08
>      56.05
> Beta3         0.00801948     8.809e-05      91.03  2.664e-24   1.497e-08
>      10.81
>
> J Nash
>
>
> On 2023-08-19 16:19, Paul Bernal wrote:
> > Dear friends,
> >
> > Hope you are all doing well and having a great weekend.  I have data that
> > was collected on specific gravity and spectrophotometer analysis for 26
> > mixtures of NG (nitroglycerine), TA (triacetin), and 2 NDPA (2 -
> > nitrodiphenylamine).
> >
> > In the dataset, x1 = %NG,  x2 = %TA, and x3 = %2 NDPA.
> >
> > The response variable is the specific gravity, and the rest of the
> > variables are the predictors.
> >
> > This is the dataset:
> > dput(mod14data_random)
> > structure(list(Mixture = c(17, 14, 5, 1, 11, 2, 16, 7, 19, 23,
> > 20, 6, 13, 21, 3, 18, 15, 26, 8, 22), x1 = c(69.98, 72.5, 77.6,
> > 79.98, 74.98, 80.06, 69.98, 77.34, 69.99, 67.49, 67.51, 77.63,
> > 72.5, 67.5, 80.1, 69.99, 72.49, 64.99, 75.02, 67.48), x2 = c(29,
> > 25.48, 21.38, 19.85, 22, 18.91, 29.99, 19.65, 26.99, 29.49, 32.47,
> > 20.35, 26.48, 31.47, 16.87, 27.99, 24.49, 31.99, 24.96, 30.5),
> >      x3 = c(1, 2, 1, 0, 3, 1, 0, 2.99, 3, 3, 0, 2, 1, 1, 3, 2,
> >      3, 3, 0, 2), y = c(1.4287, 1.4426, 1.4677, 1.4774, 1.4565,
> >      1.4807, 1.4279, 1.4684, 1.4301, 1.4188, 1.4157, 1.4686, 1.4414,
> >      1.4172, 1.4829, 1.4291, 1.4438, 1.4068, 1.4524, 1.4183)), row.names
> =
> > c(NA,
> > -20L), class = "data.frame")
> >
> > The model is the following:
> > y = 1/(Beta1x1 + Beta2x2 + Beta3x3)
> >
> > I need to determine starting (initial) values for the model parameters
> for
> > this nonlinear regression model, any ideas on how to accomplish this
> using
> > R?
> >
> > Cheers,
> > Paul
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help using 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]]



More information about the R-help mailing list