Parameter Scaling for optimization and simulation. #567
Unanswered
lmriccardo
asked this question in
Q&A
Replies: 1 comment 1 reply
-
Hi! Yes, you're correct, it should be the unscaled values for simulation. It sounds like you're implementing PEtab for your workflow. If you are using the
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I everyone!!
In the PEtab documentation it says: "parameterScale is the scale on which parameters are estimated".
For what I have understood, prior to the optimization process: I sample the starting point (i.e., the values for the free parameters in the parameter table), then I scale those values using the corresponding scaling transformation (lin|log|log10) and then I start the optimization. Let's call these values$\theta$
Now, at each optimization step I need to compute the observables which, in turn, requires the simulation of the model up to a specific horizon. The parameters of the model, that needs to be estimated, are initialized with$\theta$ , which is updated at each optimization step.
The question is: before starting the simulation, do I have to reverse scale$\theta$ or not?
For example, let's assume that I have a parameter$p$ with $[1.0E-5, 1000]$ and scaling $\log_{10}$ . I sample a random value using the Latin Hypercube Sampling method and I obtain a value $v$ which then become $v' = \log_{10}(v)$ , since I have to scale that value for the optimization. If $v < 1$ , I obtain that $v' < 0$ and then, when I need to simulate, I set the corresponding model parameter $p$ to $v'$ . If I look at the bounds, setting $p = v'$ is not correct (it is a negative value), hence I have to reverse the scaling and set $p = 10^{v'} = v$ .
estimate=1
, boundsIs this correct or I have to use$v'$ when simulating? It is not clear to me.
Thanks for the help.
Beta Was this translation helpful? Give feedback.
All reactions