Skip to content

SAR Models

sars implements all 20 models from the R sars package. Each model has a dedicated fitting function (e.g., sars.sar_power()) that returns a SARFit object.

Non-asymptotic models

These models increase without bound as area increases.

Function Formula Parameters
sar_power S = c · A^z c, z
sar_powerR S = f + c · A^z f, c, z
sar_loga S = c + z · log(A) c, z
sar_linear S = c + m · A c, m
sar_epm1 S = c · A^z · exp(d · (log A)^2) c, z, d
sar_epm2 S = c · A^(z1 · A^z2) c, z1, z2
sar_p1 S = c · A^z · exp(-d · A) c, z, d
sar_p2 S = c · A^z · exp(-d / A) c, z, d

Asymptotic convex models

These models approach a finite asymptote with a convex (decelerating) curve.

Function Formula Parameters
sar_koba S = c · log(1 + A/z) c, z
sar_monod S = d · A / (c + A) d, c
sar_negexpo S = d · (1 - exp(-z · A)) d, z
sar_asymp S = d - c · exp(-z · A) d, c, z
sar_ratio S = (c + z · A) / (1 + d · A) c, z, d

Asymptotic sigmoid models

These models have an S-shaped curve, approaching an asymptote via an inflection point.

Function Formula Parameters
sar_mmf S = d / (1 + c · A^(-z)) d, c, z
sar_gompertz S = d · exp(-exp(-z · (A - c))) d, z, c
sar_weibull3 S = d · (1 - exp(-c · A^z)) d, c, z
sar_weibull4 S = d · (1 - exp(-c · A^z))^f d, c, z, f
sar_chapman S = d · (1 - exp(-z · A))^c d, z, c
sar_betap S = d · (1 - (1 + (A/c)^z)^(-f)) d, c, z, f
sar_heleg S = d / (1 + slope^log(c / A)) d, slope, c

Fitting details

All models are fitted using nonlinear least squares (scipy least_squares) with a multi-start grid of initial values to avoid local minima:

  • 2-parameter models: ≥36 starting points
  • 3-parameter models: ≥100 starting points
  • 4-parameter models: ≥200 starting points

If fitting fails for all starting values, a SARFit with converged=False is returned rather than raising an exception.

Information criteria (AIC, AICc, BIC) are computed using the normal log-likelihood convention, consistent with the R sars package.