Closed glwagner closed 2 years ago
We can implement this by extending the behavior of tupify_parameters
:
Basically, we'll generate a second NamedTuple
from dependent_parameters
and the merge that one with the NamedTuple
for the free parameters.
A desirable feature for parameterization development is the ability to specify "dependent parameters": model parameters that are specified via some deterministic function of the free parameters. These parameters thus vary during the EKI calibration, but are not free parameters.
I think could somehow be a feature we add to
FreeParameters
(maybe we'd have to change the name of the struct). Somehow we'll give a list of the names of the free parameters, and then in addition we'll give a list of the "dependent parameters", which would be aNamedTuple
of name-function pairs. The function will take in theNamedTuple
of free parameters and return the dependent parameter.Having this feature will importantly allow us to simplify the implementation of "experimental" closures. Right now, we have to implement experimental closures in a way that allows them to be simplified via judicious parameter choices for the purpose of exploring the trade-off between model complexity and bias. If we have a "dependent parameter" feature, this relaxes some of those constrains on closure design.