# non-linear model fit function not working [duplicate]

I have attempted to exercise a non-linear model fit to my data, dadtAbs, and got the following puzzle

nlm =
NonlinearModelFit[
(1 - aaa)*bbb*NSPI[bbb, ddd, population, t] *
(1 - ddd)*(population - NSPI[bbb, ddd, population, t]),
{aaa, bbb, ddd},
t]


where dadtAbs is a list, population is a known constant, aaa, bbb, ddd are the desired answers, and t is the variable.

When I queried nlm, I got

[0.]


Here is the function NSPI:

NSPI[alpha_, delta_, population_, tt_] :=
population/(1 + (population - 1)*Exp[-alpha*population*(1 - delta)*tt])


population is a large constant, for example, 1000000

• (-1) Please don't post exactly the same question twice. Once the question is properly improved, we can re-open it, but currently the question just doesn't meet the standard of this site. – xzczd Oct 29 at 6:24
• Bill: Thanks for your response. The initial parameters I am working with are as follows:aaa = 0.0010; bbb = 0.0000025; ddd = 0.01; population=705749. I don't mean to ask for a solution to this problem because I am cognizant of the enormous challenge nonlinear optimization represents. But to get a {0] as answer from Mathematica is at the other extreme of what one should expect from Mathematica. Shouldn't I? – Z Ming Ma Oct 29 at 17:45
• I generated data from the initial parameters you gave. So there seems to be two problems: (1) Because the parameters are on wildly different scales, you need to give starting values in NonlinearModelFit, and (2) (most importantly) your model won't allow you to estimate bbb and ddd separately as they always occur together as bbb*(1-ddd). – JimB Nov 18 at 5:15
• Thank you for your attention. The initial parameters are aaa = 0.0010; bbb = 0.0000025; ddd = 0.01; population=705749. The parameters bbb and ddd are expected to be correlated, but may be determined (they appear in NSPI as separate variables) nevertheless. If you would kindly point out what I need to do to get out of the [0.] trap, I would much appreciated it, – Z Ming Ma Nov 19 at 18:29
• To repeat: (1) the estimators for bbb and ddd are not only "correlated", they are perfectly correlated. You cannot get separate estimates for them. What you can get is an estimate for bbb*(1-ddd). So set a parameter to be called bbb1ddd and rewrite your model: ((1 - aaa) bbb1ddd population (population - population/(1 + E^(-bbb1ddd population t) (-1 + population))))/(1 + E^(-bbb1ddd population t) (-1 + population)). (2) use starting values for aaa and bbb1ddd (now the only two parameters in your model. If you want get this question reopened, include a dataset. – JimB Nov 20 at 5:03