Five Parameter Logistic Curve Class
Definition
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.0.0
public class FiveParameterLogisticCurve : NonlinearCurve- Inheritance
- Object → Curve → NonlinearCurve → FiveParameterLogisticCurve
Remarks
Use the FiveParameterLogisticCurve class to fit a five-parameter logistic curve to asymmetric dose-response data. This extends the standard 4PL model by adding an asymmetry parameter (s) that allows the curve to have different slopes on the ascending and descending portions.
Equation:
y = A₂ + (A₁ - A₂) / (1 + (x/x₀)^p)^s
Parameters:
- A₁ – Upper asymptote (maximum response)
- A₂ – Lower asymptote (minimum response, baseline)
- x₀ – Inflection point (EC₅₀, IC₅₀, or ED₅₀)
- p – Hill slope (steepness factor)
- s – Asymmetry factor (s = 1 reduces to 4PL; s ≠ 1 creates asymmetry)
Applications:
- Asymmetric dose-response curves in pharmacology
- ELISA curves with asymmetric behavior
- Bioassays with non-standard kinetics
- Receptor binding with complex mechanisms
- Growth curves with asymmetric transitions
The asymmetry parameter (s) provides flexibility for data that doesn't follow the symmetric pattern of the standard 4PL curve. When s = 1, the 5PL reduces to the 4PL model. Values of s > 1 create a sharper transition on one side, while s < 1 creates a more gradual transition.
When to Use 5PL vs 4PL: Use the 5PL model when visual inspection or residual analysis of a 4PL fit shows systematic deviation indicating asymmetry. However, be aware that the additional parameter increases the risk of overfitting with limited data. Compare model fit statistics (AIC, BIC) to determine if the additional complexity is justified.
.
For details on how to fit a curve of this type, see the NonlinearCurveFitter class.
Constructors
| Five | Constructs a new logistic curve. |
Properties
| Asymmetry | Gets or sets the asymmetry |
| Center | Gets or sets the center of the logistic curve. |
| Final | Gets or sets the initial value of the logistic curve. |
| Hill | Gets or sets the Hill slope of the logistic curve. |
| Initial | Gets or sets the initial value of the logistical curve. |
| Parameters |
Gets the collection of parameters that determine the shape of this
Curve.
(Inherited from Curve) |
Methods
| Clone |
Constructs an exact copy of this instance.
(Inherited from Curve) |
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) |
| Fill |
Fills a dense vector with the partial derivatives of the curve with respect to
each of the curve parameters computed using numerical differentiation.
(Inherited from NonlinearCurve) |
| Fill |
Fills a dense vector with the partial derivatives of the curve with respect to
each of the curve parameters.
(Overrides NonlinearCurve.FillPartialDerivatives(Double, DenseVector<Double>)) |
| Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object) |
| Find |
Gets the set of X-coordinates where the curve crosses
the X-axis.
(Inherited from Curve) |
| Get |
Returns a CurveFitter object that can be used to fit the curve to data.
(Inherited from NonlinearCurve) |
| Get |
Returns a Curve that represents the derivative
of this Curve.
(Inherited from Curve) |
| Get | Serves as the default hash function. (Inherited from Object) |
| Get |
Returns a vector containing initial values for the parameters for a curve fit
through on the specified data.
(Overrides NonlinearCurve.GetInitialFitParameters(Vector<Double>, Vector<Double>)) |
| Get |
Returns a vector with the partial derivatives
of the curve with respect to each of the curve parameters.
(Inherited from NonlinearCurve) |
| Get | Gets the Type of the current instance. (Inherited from Object) |
| Integral |
Gets the definite integral of the curve between the
specified X-coordinates.
(Inherited from Curve) |
| Memberwise | Creates a shallow copy of the current Object. (Inherited from Object) |
| OnParameter |
Called after a Curve parameter has been changed.
(Inherited from Curve) |
| OnParameter |
Called before the value of a curve parameter is changed.
(Inherited from Curve) |
| Set |
Sets a curve parameter to the specified value.
(Inherited from Curve) |
| Slope |
Gets the slopes of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Slope |
Gets the slope of the curve at the specified
X-coordinate.
(Overrides Curve.SlopeAt(Double)) |
| Slope |
Gets the slopes of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Slope |
Gets the slopes of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Slope |
Gets the slopes of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Solve |
Finds the x value where the curve reaches the specified y value.
(Inherited from Curve) |
| Tangent |
Gets the tangent line to the curve at the
specified X-coordinate.
(Inherited from Curve) |
| ToString | Returns a string that represents the current object. (Inherited from Object) |
| Value |
Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Value |
Gets the Y-value of the curve at the specified
X-coordinate.
(Overrides Curve.ValueAt(Double)) |
| Value |
Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Value |
Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve) |
| Value |
Gets the Y-values of the curve at the specified X-coordinates.
(Inherited from Curve) |