Fitting Method

To fit our ODE model against real world data, we used SciPy's optimize.minimize routine.  Our objective function to minimize was defined against two data series, the opioid-related death rate \(\left(\mu-\mu^{\ast}\right)A\) and the prescribed population \(P\). Since the scales of these two variables vary by orders of magnitude, we opted to standardize the error by using relative errors for each series. To minimize both series simultaneously, we defined our objective function as the sum of these relative errors from each of the data series.
In our model, the parameters are attached to specific real world quantities that are only meaningful within certain ranges. Therefore as the optimization method, we selected the TNC (Truncated Newton Conjugate-Gradient) method because of the SciPy implementation's ability to do constrained optimization.
Finally, because of the large number of parameters and the nonlinear complexity of the model, we expected that it might be a challenge to find a true global minimum. To this end, we found that using a multi-start approach worked well. Instead of starting with fixed initial guesses for our parameters, we re-ran our optimization routine many times, randomly sampling the initial guesses for the parameters from \(\mathcal{U}(0,\,1)\), and collecting the parameters for the best resulting model fit.

Results