innovate.path_dependence.lock_in module

class innovate.path_dependence.lock_in.LockInModel[source]

Bases: DiffusionModel

A simple model demonstrating path dependence and lock-in effects between two competing technologies.

The model simulates two technologies where the growth rate of each is positively influenced by its own installed base (network effects) and negatively by the competitor’s.

bounds(t: Sequence[float], y: ndarray) Dict[str, tuple][source]

Returns bounds for the model parameters.

differential_equation(y_current: Sequence[float], t_current: float, alpha1, alpha2, beta1, beta2, gamma1, gamma2, m) Sequence[float][source]

Returns the differential equation for the model.

fit(t: Sequence[float], y: ndarray, **kwargs)[source]

Fits the diffusion model to the given time and adoption data.

initial_guesses(t: Sequence[float], y: ndarray) Dict[str, float][source]

Returns initial guesses for the model parameters.

property param_names: Sequence[str]

Returns the names of the model parameters.

property params_: Dict[str, float]

Returns a dictionary of fitted model parameters.

predict(t: Sequence[float], y0: Sequence[float]) ndarray[source]

Predicts adoption levels for given time points.

predict_adoption_rate(t: Sequence[float], y0: Sequence[float]) ndarray[source]

Predicts the rate of adoption (new adoptions per unit of time).

score(t: Sequence[float], y: ndarray) float[source]

Returns the R^2 score of the model fit.