macroeco.models.power_law¶
- macroeco.models.power_law = <macroeco.models._curves.power_law_gen object at 0x10884cf90>¶
A power-law function
\[y = c x^z\]or equivalently
\[\log(y) = \log(c) + z \log(x)\]Stemming from the log form, c is often known as the intercept and z as the slope of the power law.
Parameters: x : iterable
Independent variable
y_obs : iterable
Dependent variable (values observed at x)
params_start : iterable
Optional start values for all parameters. Default 1.
c, z :
Parameters: Log-log slope and intercept
Examples
>>> # Specify a classic power law with z = 0.25 >>> import macroeco.models as md
>>> areas = [1, 0.5, 0.25, 0.125] >>> c = 20 # Number of species at the base scale >>> z = 0.25 # Slope of the power law
>>> # Get the species richness predictions of the power law >>> res = md.power_law.vals(areas, c, z) >>> res array([ 20. , 16.81792831, 14.14213562, 11.89207115])
>>> # Fit the power law using least squares >>> md.power_law.fit_lsq(areas, res) (20.0, 0.25000000000000006)
Methods
vals(x, parameters) Dependent variable y given independent variable x and curve parameters fit_lsq(x, y_obs, params_start=None) Least squares fit of parameters given data