Estimagic is a Python package that helps to build high-quality and user friendly implementations of (structural) econometric models. It is designed with large structural models in mind, but also “scales down” to simple cases.

Estimagic provides tools for nonlinear optimization, numerical differentiation and statistical inference.



  • Unified interface to a large number of local and global optimization algorithms. Of course we have all algorithms from scipy.optimize but many more become available when you install optional dependencies.

  • Parameters are specified as pandas DataFrames that can have any kind of single or MultiIndex

  • Many types of constraints can be used with any optimizer that supports simple box constraints. Constraints are specified using parameter names, not positions.

  • The complete history of parameters and function evaluations is saved in a database for maximum reproducibility. They are also displayed in real time in an interactive dashboard.


Numerical Differentiation

  • Calculate precise numerical derivatives using Richardson extrapolations.

  • All function evaluations needed for numerical derivatives can be done in parallel with pre-implemented or user provided batch evaluators.

Statistical Inference

  • Asymptotic standard errors for maximum likelihood an method of simulated moments

  • Bootstrap confidence intervals and standard errors for nonlinear estimators. Of course the bootstrap procedures are parallelized.

Additional Topics

Indices and tables