Estimagic overview#

Learning Objectives#

After working through this topic, you should be able to:

  • Explain how estimagic makes numerical optimization more user friendly for non-experts

  • List several diagnostic features of estimagic

  • Explain why representing parameters as flat vectors is not a good idea in complex applications

Materials#

The following is an estimagic presentation from the euro-scipy conference. You don’t have to understand all details. Just try to get an overview of the main estimagic features.

from epp_topics.quiz_utilities import display_quiz

content = {
    "What are features of estimagic": {
        "It has diagostic tools to help you find the right optimizer": True,
        "It is written in Fortran so it is really fast": False,
        "It re-implements optimizers to make them more user-friendly": False,
        "It wraps optimizers from other packages and makes them more user-friendly": (
            True
        ),
    },
    "Why data structures can you use for the parameters to optimize in estimagic?": {
        "numpy arrays": True,
        "pandas Series": True,
        "pandas DataFrames": True,
        "lists": True,
        "dictionaries": True,
        "NamedTuples": True,
        "Nested combinations of all of the above": True,
    },
    "Which data structures can you use for the parameters in most other packages?": {
        "1d numpy arrays": True,
        "pandas Series": False,
        "pandas DataFrames": False,
        "lists": False,
        "dictionaries": False,
        "NamedTuples": False,
        "Nested combinations of all of the above": False,
    },
}

display_quiz(content)