While investigating a Rice distribution fit, I have found a behaviour that I would like to investigate a bit deeper, hence my question to the community.
This is not about convergence issue but having more grasp on what phenomenon happens on a specific region of parameters space.
My model is defined as follow, using scipy.stats.rice:
from scipy import stats
def model(x, beta1, beta2):
return stats.rice.pdf(x[:,0], b=beta1, loc=0., scale=beta2)
And I use scipy.optimize.curve_fit to solve the NLLS problem:
popt, pcov = optimize.curve_fit(model, centers, density, p0=[10., 10.])
Model can be fitted to a dataset with ad hoc initial guess:
When investigating the error landscape, a typical surface looks like:
Where the central region is the expected optimum and the bottom part of the landscape has a lot of hills with local minima:
This is the part of the landscape I am interested on.
Doing some test, I can numerically show that each hill (stride) comes for a specific point of the dataset and they stack next to each other for the given dataset. That is, a dataset with 5 points sufficiently apart will create 5 hills and valleys.
I found this behaviour very interesting (and sufficiently different of other NLLS error surfaces) and I would like to get more mathematical/technical insights on this phenomenon.
Is it expected? If so, is it due to the Modified Bessel function only? I guess not, but is it a numerical artifact?
My question is probably a bit broad, don't hesitate to help me to narrow it in the comment.


