We want to separate model and estimation code, to make ruspy more adaptive to different estimation packages. This means we want to eliminate all calls of optimize functions like estimagic.minimize for the NFXP and ipopt and nlopt for the MPEC in the estimation code.
ToDo:
[x] The estimate function has to be rewritten to a get_criterion_function function, which returns for NFXP and MPEC the corresponding criterion function and its derivative together with their arguments besides params. (Maybe even just return the criterion and derivative, as partial functions with params as single input).
[x] Rewrite interface, such that the init_dict only contains model specifications and fixed point algorithm details (alg_details in code).
[x] Rewrite code, such that params is a numpy array.
[x] Rewrite tests, such that they only test the criterion function. The optimization of it will not be tested, as it is not part of the package any more. However, the correct estimation is somehow tested by more advanced tutorials.
We want to separate model and estimation code, to make ruspy more adaptive to different estimation packages. This means we want to eliminate all calls of optimize functions like
estimagic.minimize
for the NFXP andipopt
andnlopt
for the MPEC in the estimation code.ToDo:
estimate
function has to be rewritten to aget_criterion_function
function, which returns for NFXP and MPEC the corresponding criterion function and its derivative together with their arguments besidesparams
. (Maybe even just return the criterion and derivative, as partial functions withparams
as single input).init_dict
only contains model specifications and fixed point algorithm details (alg_details
in code).params
is a numpy array.