Paul Bernal
2023-Aug-19 20:19 UTC
[R] Determining Starting Values for Model Parameters in Nonlinear Regression
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]]
J C Nash
2023-Aug-19 20:35 UTC
[R] Determining Starting Values for Model Parameters in Nonlinear Regression
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 at 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.
Apparently Analagous Threads
- Determining Starting Values for Model Parameters in Nonlinear Regression
- Determining Starting Values for Model Parameters in Nonlinear Regression
- Coversion from yearly to weekly data
- Problem to generate training data set and test data set
- glm() function not finding the maximum