# Fits the full model: # source('../Chapter5/prob_4.R') print(summary(lettuce.nls2)) # Fit the restricted model: # # Try to get a good starting set of parameters for this model usling a grid search: # grid.brainCousens = expand.grid(list( d=seq(1.25, 1.75, length.out=20), b=seq(-0.1, 0.5, length.out=20), e=seq(1, 100, length.out=20))) lettuce.nls2gsm_restricted = nls2(weight ~ brainCousensModel(conc, b, d, e, 0), data=lettuce, start=grid.brainCousens, algorithm='brute-force') # gsm = g(rid)s(earch)m(ode1) print('grid search parameters (f=0 model):') print(coefficients(lettuce.nls2gsm_restricted)) lettuce.nls2_restricted = nls2(weight ~ brainCousensModel(conc, b, d, e, 0), data=lettuce, start=lettuce.nls2gsm_restricted, control=nls.control(maxiter=100)) # refine the above grid searched initial guess print('refined parameters (f=0 model):') print(coefficients(lettuce.nls2_restricted)) print(anova(lettuce.nls2_restricted, lettuce.nls2))