Skip to content

Models API

SARFit

sars.SARFit dataclass

Result of fitting a single SAR model.

Attributes:

Name Type Description
model str

Short model identifier matching R sars function suffix (e.g. 'power').

params dict[str, float]

Fitted parameter values keyed by parameter name.

r_squared float

Coefficient of determination in arithmetic space.

aic float

Akaike Information Criterion (normal log-likelihood convention).

aicc float

AIC corrected for small sample size.

bic float

Bayesian Information Criterion.

n int

Number of observations used in fit.

converged bool

Whether the NLS solver converged.

data DataFrame

Original data (columns: area, species).

predict

predict(area: float | ndarray) -> np.ndarray

Predict species richness for given area value(s).

Fitting functions

sars.sar_power

sar_power(data: DataFrame) -> SARFit

Fit the power law SAR model: S = c * A^z

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit
References

Arrhenius O (1921) Species and area. Journal of Ecology 9:95-99.

sars.sar_powerR

sar_powerR(data: DataFrame) -> SARFit

Fit the power-R SAR model: S = f + c * A^z

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_loga

sar_loga(data: DataFrame) -> SARFit

Fit the logarithmic SAR model: S = c + z * log(A)

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit
References

Gleason HA (1922) On the relation between species and area. Ecology 3:158-162.

sars.sar_linear

sar_linear(data: DataFrame) -> SARFit

Fit the linear SAR model: S = c + m * A

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_epm1

sar_epm1(data: DataFrame) -> SARFit

Fit the extended power model 1: S = c * A^z * exp(d * (log A)^2)

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_epm2

sar_epm2(data: DataFrame) -> SARFit

Fit the extended power model 2: S = c * A^(z1 * A^z2)

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_p1

sar_p1(data: DataFrame) -> SARFit

Fit persistence function 1: S = c * A^z * exp(-d * A)

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_p2

sar_p2(data: DataFrame) -> SARFit

Fit persistence function 2: S = c * A^z * exp(-d / A)

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_koba

sar_koba(data: DataFrame) -> SARFit

Fit the Kobayashi logarithmic model: S = c * log(1 + A/z)

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_monod

sar_monod(data: DataFrame) -> SARFit

Fit the Monod model: S = d * A / (c + A)

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_negexpo

sar_negexpo(data: DataFrame) -> SARFit

Fit the negative exponential model: S = d * (1 - exp(-z * A))

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_asymp

sar_asymp(data: DataFrame) -> SARFit

Fit the asymptotic model: S = d - c * exp(-z * A)

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_ratio

sar_ratio(data: DataFrame) -> SARFit

Fit the rational function model: S = (c + z * A) / (1 + d * A)

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_mmf

sar_mmf(data: DataFrame) -> SARFit

Fit the Morgan-Mercer-Flodin model: S = d / (1 + c * A^(-z))

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_gompertz

sar_gompertz(data: DataFrame) -> SARFit

Fit the Gompertz model: S = d * exp(-exp(-z * (A - c)))

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_weibull3

sar_weibull3(data: DataFrame) -> SARFit

Fit the 3-parameter Weibull model: S = d * (1 - exp(-c * A^z))

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_weibull4

sar_weibull4(data: DataFrame) -> SARFit

Fit the 4-parameter Weibull model: S = d * (1 - exp(-c * A^z))^f

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_chapman

sar_chapman(data: DataFrame) -> SARFit

Fit the Chapman-Richards model: S = d * (1 - exp(-z * A))^c

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_betap

sar_betap(data: DataFrame) -> SARFit

Fit the Beta-P model: S = d * (1 - (1 + (A/c)^z)^(-f))

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit

sars.sar_heleg

sar_heleg(data: DataFrame) -> SARFit

Fit the Heleg model: S = c / (f + A^(-z))

Parameters:

Name Type Description Default
data DataFrame

DataFrame with columns 'area' and 'species'.

required

Returns:

Type Description
SARFit