cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Register to attend Discovery Summit 2025 Online: Early Users Edition, Sept. 24-25.
  • New JMP features coming to desktops everywhere this September. Sign up to learn more at jmp.com/launch.
Choose Language Hide Translation Bar
Marjoleine
Level II

Calculate the endset of a sigmoid curve

Marjoleine_0-1749728924209.png

I try to calculate the endset of this curve (see drawing).  The curve itself I can model with a sigmoid curve.  Is there a way to do it automatically?  The only thing I can find is the inflection point but that is not what I need.

2 REPLIES 2
SDF1
Super User

Re: Calculate the endset of a sigmoid curve

Hi @Marjoleine ,

 

  I'm not personally familiar with the definition of what an endset is, but it looks like it is the value of X where the linear slope of the sigmoid curve intersects with the asymptote. If that is the case, I do not think that JMP can perform that automatically.

 

  However, just as an FYI, in the fit curve platform, after you've fit your sigmoid curve, you can go to the red-button next to the name of the sigmoid (Gompertz or Logistic, etc.), and select Custom Inverse Prediction. When you do this, you provide several Y values, and JMP will use the sigmoid function to do the inverse calculation to determine the X value where that Y value occurs. This might not be what you want, but it could be useful for other things in the future.

 

  That being said, you can script up a solution to your problem that would "automatically" do it, but there are several steps that need to be done. First, I would take a look at these series of very helpful posts by @JerryFish that talk about piecewise fitting non-linear data, here. This could be very useful for you if you have to do this many times and automation would simplify your life.

 

  If it's a one-time thing, you can do this manually with the following steps (could also be automated with JSL).

 

  1. First select the data points that ARE NOT needed for the linear approximation to the sigmoid curve -- essentially, you're fitting a line at the inflection point to the slope of the sigmoid while ignoring the asymptotic extremes.
  2. Create a new column and give it a Formula -- the formula you will type in is something like m*X+b.
    1. m is a parameter that you have to define in the formula window and give it a starting value.
    2. X is the X regressor column that you used when fitting your sigmoid curve.
    3. b is a parameter that you have to define in the formula window and give it a starting value.
  3. Go back to the non-linear fit platform and use this new column formula as the X regressor/Predictor Formula.
  4. Cast whatever your Y column is in the Y role and click OK, then click Go in the new report window.

  This should result in a nice linear fit through your data points that excludes the asymptotic parts of the curve. At the bottom of the report, you'll see parameter values for m and b, and you can use those to back calculate what what your X value is at the Y asymptote.

 

  Below is a screenshot of an example that I ran. In this case, my Y asymptote is 100, m = -0.255, b = 162.99, so (100-162.99)/(-0.255) = 247. So in my example, my endset is 247. You can of course script everything up in JSL so that it spits out your endset once you click "go" in your program, but this might be more than what you're after. Again, if you have to do it dozens or hundreds of times, it might be worth writing the code to do it for you.

 

Hope this helps!,

DS

SDF1_0-1749733537244.png

 

 

  

Marjoleine
Level II

Re: Calculate the endset of a sigmoid curve

Thanks.  The endset is indeed the crossing point of the slope with the asymptote.  I will try to my a script with your suggestion because I need to do it at least 100 times.

 

Marjoleine

Recommended Articles