MATLAB: Initial values in nlinfit or fitnlm

fitnlminitial valuesnlinfit

I am trying to run a non-linear multiple variable model in Matlab. The model has about 20 coefficients. I have been using 1s as my initial values in developing the model, and my model has an acceptable R2 value and good residual plots. However, I am not sure if the generated coefficients are sensitive to the initial values that were assigned by me.
This begs the question of whether one can check if the generated coefficient values are highly sensitive to the assigned initial values? Or one should do it manually, ie test the model with different set of initial values and compare the RMSE of the model?

Best Answer

A model with 20 parameters is likely going to be a challenge. If you have any doubts — and if you have the Global Optimization Toolbox — use the patternsearch (link) function to find the best parameter set. Another option is the genetic algorithm, the Global Optimization Toolbox ga (link) function.
I would also use the coefCI (link) function to determine if any of the confidence intervals for the coefficients (parameters) include zero, i.e. have opposite signs. If they do, they are not required for the model, since they are not statistically different from zero. This can help you ‘trim’ your model.