Skip to content

Pascalheid/estimagic

 
 

Repository files navigation

estimagic

image

image

License

Documentation Status

image

image

image

Introduction

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. However, it is also useful for any other estimator that numerically minimizes or maximizes a criterion function (Extremum Estimator). Examples include maximum likelihood, generalized method of moments, method of simulated moments and indirect inference.

Key Features

Optimization

  • Unified interface to a large number of local and global optimization algorithms.
  • All optimizers can handle linear equality and inequality constraints as well as many other types of constraints.
  • Constraints are specified using parameter names, not positions!
  • The complete history of parameters and function evaluations is saved in a database.
  • An interactive Dashboard allows to monitor the optimization in real time.

Inference

  • Calculate precise numerical derivatives using Richardson extrapolations.
  • Calculate standard errors for maximum likelihood an method of simulated moments

Dashboard Example

image

Installation

The package can be installed via conda. To do so, type the following commands in a terminal:

$ conda config --add channels conda-forge
$ conda install -c opensourceeconomics estimagic

The first line adds conda-forge to your conda channels. This is necessary for conda to find all dependencies of estimagic. The second line installs estimagic and its dependencies.

Documentation

The documentation is hosted (on rtd)

Citation

If you use Estimagic for your research, please do not forget to cite it. Many people worked on this software and you should recognize their effort.

@Unpublished{Gabler2019,
  Title  = {A Python Tool for the Estimation of (Structural) Econometric Models.},
  Author = {Janos Gabler},
  Year   = {2019},
  Url    = {https://github.com/OpenSourceEconomics/estimagic}
}

Roadmap

Estimagic is still in alpha status and the API might still change. We will try to keep the API more stable When we switch versions 0.0.x to 0.x.x. Until then we want to achieve the following things:

  • Fully wrapping scipy.optimize and pygmo, including pygmo's capability for parallelized optimizers
  • Convenient and robust functions to calculate covariance matrices of Maximum Likelihood, GMM, MSM and Indirect Inference estimates.

Afterwards we want to also implement the following extensions:

  • Support for general nonlinear constraints for some optimizers
  • Confidence intervals based on the profile-likelihood method

About

Tools for the estimation of (structural) econometric models.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%