inverse sigmoid model fitting to a data

14 views (last 30 days)
I am looking for script or equation to fit a inverse sigmoid model for my data. could anyone help with this problem?

Accepted Answer

Star Strider
Star Strider on 30 Jun 2015
There are a number of nonlinear solvers in core MATLAB and different Toolboxes that can fit an ‘inverse sigmoid model’ to your data.
It would help considerably if you would share with us what an ‘inverse sigmoid model’ is. Is it the derivative of a sigmoid function, the negative of a sigmoid function (offset by 1 to be >0), or something else?
  2 Comments
Star Strider
Star Strider on 30 Jun 2015
Edited: Star Strider on 30 Jun 2015
Harshan Ravi’s ‘Answer’ moved here...
Sorry my question is little bit confusing. I have a data as shown in the figure in the attachment. As you can see scatter plot is inverse sigmoid shape. I would like to fit a model to this type of data and fitted parameters to have some meaning. Please let me know if you have any solution.
Star Strider
Star Strider on 30 Jun 2015
Edited: Star Strider on 30 Jun 2015
It looks reasonably linear to me, and without knowing the process that generated your data, that is how I would choose to model it.
There are several ‘inverse sigmoid’ functions you could use to fit it, the most obvious being the tangent function. However fitting data ideally requires that you get useful information from the parameters you estimate from the fit.
What are your data, and what process generated them?
EDIT I looked through your other posts to see if I could get a clue as to what you are working on. The data you plot here looks quite similar to the inverse error function, erfinv, or the inverse normal distribution. You can create an anonymous function that calls norminv to use with nlinfit to fit your data.
So for instance if you have probabilities as your independent variable, the corresponding data values as your dependent variable, and you want to estimate the mean and standard deviation, you could use this objective function with nlinfit:
fn = @(b,p) norminv(p, b(1), b(2)); % p = probability, b(1) = mean, b(2) = std

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!