innovate.fitters package¶
Submodules¶
innovate.fitters.batched_fitter module¶
- class innovate.fitters.batched_fitter.BatchedFitter(model: DiffusionModel, fitter)[source]¶
Bases:
object
A fitter class for fitting a model to multiple datasets in a batch.
innovate.fitters.bootstrap_fitter module¶
- class innovate.fitters.bootstrap_fitter.BootstrapFitter(fitter: Any, n_bootstraps: int = 100)[source]¶
Bases:
object
A fitter class that uses bootstrapping to estimate parameter uncertainty.
- fit(model: DiffusionModel, t: Sequence[float], y: Sequence[float], **kwargs) None [source]¶
- get_confidence_intervals(alpha: float = 0.05) Dict[str, Dict[str, float]] [source]¶
Returns confidence intervals for each parameter.
innovate.fitters.jax_fitter module¶
innovate.fitters.mom_fitter module¶
- class innovate.fitters.mom_fitter.MoMFitter[source]¶
Bases:
object
Fitter for the Bass Diffusion Model using the Method of Moments (MoM). This fitter is specifically designed for the BassModel.
- fit(model: DiffusionModel, t: Sequence[float], y: Sequence[float]) DiffusionModel [source]¶
Fits the BassModel using the Method of Moments.
- Parameters:
model – An instance of BassModel.
t – Time points.
y – Cumulative adoption data.
- Returns:
The fitted BassModel instance.
- property params_: Dict[str, float]¶
- innovate.fitters.mom_fitter.estimate_bass_mom(t: Sequence[float], y: Sequence[float]) Tuple[float, float, float] [source]¶
Estimates the parameters (p, q, m) of the Bass Diffusion Model using the Method of Moments. This implementation uses a linear regression approach based on incremental adoptions.
- Parameters:
t – A sequence of time points.
y – A sequence of cumulative adoptions corresponding to the time points.
- Returns:
A tuple (p, q, m) representing the estimated parameters.
innovate.fitters.scipy_fitter module¶
- class innovate.fitters.scipy_fitter.ScipyFitter[source]¶
Bases:
object
A fitter class that uses SciPy’s curve_fit for model estimation.
- fit(model: DiffusionModel, t: Sequence[float], y: Sequence[float], p0: Sequence[float] = None, bounds: tuple = None, weights: Sequence[float] = None, **kwargs) Self [source]¶
Fits a DiffusionModel instance using scipy.optimize.curve_fit.
- Parameters:
model – An instance of a DiffusionModel (e.g., BassModel, GompertzModel, LogisticModel).
t – Time points (independent variable).
y – Observed adoption data (dependent variable).
p0 – Initial guesses for the parameters. If None, model.initial_guesses() is used.
bounds – Bounds for the parameters. If None, model.bounds() is used.
weights – Weights for the observed data points.
kwargs – Additional keyword arguments to pass to scipy.optimize.curve_fit.
- Returns:
The fitter instance.
- Raises:
RuntimeError – If fitting fails.