It's a shame nobody ever answered this question years ago when asked. As an exercise for myself I will attempt it.
There's a useful answer with some python here: https://stackoverflow.com/a/43213692/1335793 That shows some varied parameterisations to shift or scale the curve.
In your examples, these two are equivalent:
$w = w.max / 1 + e ^-k (t - tm)$
$y = C / 1 + Ae ^-Bx$
In the first one, the sigmoid is applied to growth over time, so the x axis is assumed to be time. t-tm
is the difference between the start time and some point later in time, which is really the same as an x coordinate. So t-tm
is the same as x
in the second formula.
What IS (B) actually representing here?
B is positive or negative growth rate. If you make it negative, the curve will be a mirrored, i.e. it will start high and get lower over time. If it is positive the curve will start low and grow higher over time. In the paper you linked http://www.cs.xu.edu/math/math120/01f/logistic.pdf the first page shows a positive growth curve, the second page a negative curve. There is a relationship between the growth rate and the inflection point. If you modify the value of the growth rate, it changes the steepness of the slope in the middle of the curve. The paper explains that if you know the inflection point you can then back-calculate the growth rate.
And how, why, and where did they assign it the value of 0.0266 ???
This is a bit frustrating to learn about, as it seems arbitrary and in fact it is to some extent. They started with the data points, and then recognized that they kind-of followed a logistic distribution, and then attempted to "fit" the right function to the data by modifying the parameters of the logistic function. This is usually done with computational methods like ordinary-least-squares or gradient-descent, which are akin to starting with a random guess, then changing it slightly until the curve is as close to each of the data points as is possible within the constraints of the chosen function. It could just as well be done by trial-and-error, mucking around with the parameters until it looks right. If that doesn't feel very elegant then you would be right, it is a practical brute-force approach to applied mathematics.
And lastly, how can we determine what parameters to use for a sigmoid
function?
The convention for functions that describe curves in two dimensions is to use some form of
$y = f(x)$
where the $y$ coordinate is calculated by applying some function to the $x$ coordinate. This assumes you know what all the $x$ coordinates are, but that is not a problem for idealized functions like the logistic (sigmoid distribution). In the growth-of-population example, you know that time is continuous and the unknown is "what will the population be at any point in time?". Using the known (time) value you can then try to predict the unknown (population) value.
Choosing the syntax to use doesn't really matter that much, although it does help to use conventions, or for specific examples some variables that have meaning in the context. In the generic formula
$y = C / 1 + Ae ^-Bx$
$y$ will be the population value, $C$ will be the highest possible population value, and $e$ is Euler's number.
The generic logistic model is symmetrical around 0 but can be shifted left-right (x axis offset), up-down (y-axis offset), scaled (amplitude) or "stretched", changing the slope of the growth. You need to add additional parameters to the model to control those aspects, which makes the model describe your observed data. The approach of starting with a generic model and customizing it to data needs to balance goodness of fit
with complexity (not too many parameters). The process of model selection within the field of statistical modelling is dedicated to doing just that.
You can add terms in the exponent to cancel higher derivatives at the origin. They need to be antisymmetric, and they shouldn't mess up the behaviour at infinity. Powers of $\sin x$ satisfy those requirements. To cancel the third derivative:
$$
\frac1{1+\exp\left(-x-\frac1{12}\sin^3x\right)}=\frac12+\frac x4+O\left(x^5\right)\;.
$$
To cancel the fifth derivative:
$$
\frac1{1+\exp\left(-x-\frac1{12}\sin^3x-\frac{13}{240}\sin^5x\right)}=\frac12+\frac x4+O\left(x^7\right)\;.
$$
And so on. Here's a plot of the second version.
This comes at a price – forcing the function into an "unnatural" linearity at the origin while keeping it analytic causes slight oscillations elsewhere. Of course, if you don't care about analyticity, you should just splice a linear function into a sigmoid.
P.S.: I was assuming that you want to keep the asymptotic behaviour roughly unchanged. If you don't care about that, you can do it more simply:
$$
\frac1{1+\exp\left(-x-\frac1{12}x^3\right)}=\frac12+\frac x4+O\left(x^5\right)\;.
$$
The plot looks a lot like what you wanted, but it converges to the limit more rapidly than a sigmoid.
The next step in that direction would be
$$
\frac1{1+\exp\left(-x-\frac{x^3}{12}-\frac{x^5}{80}\right)}=\frac12+\frac x4+O\left(x^7\right)\;.
$$
And, since you wanted to have an $x^7$ term for rapid convergence, here's the next step, too:
$$
\frac1{1+\exp\left(-x-\frac{x^3}{12}-\frac{x^5}{80}-\frac{x^7}{448}\right)}=\frac12+\frac x4+O\left(x^9\right)\;.
$$
At this stage, the plot looks very linear indeed – if you go any further, you might as well use a linear function with cut-offs at both ends instead :-)
Best Answer
This is my idea.
You'd like to make a 1-1 transform of $x$. Originally, $x \mapsto x$. If you'd like to skew this relation, how about a power of $x$?
For example, $x \mapsto x^a$, for $x$ positive. You'll get a range of behaviors.
Generally, $x \mapsto sgn(x) |x|^a$.
EDIT: I realized this is not quite what you asked for. OK, let's transform the function then. With
$$ y = 1-{1\over1+e^{-x+c}}$$
apply the transformation
$$y \mapsto y^a$$