Description Usage Arguments Details Value
View source: R/derivative_functions.R
Proposes new points based on old ones using derivative emulation.
1 2 3 4 5 6 7 8 9 10 | directional_proposal(
ems,
x,
targets,
accept = 2,
hcutoff = 1e-09,
iteration.measure = "exp",
iteration.steps = 100,
use.hessian = FALSE
)
|
ems |
The list of |
x |
The currently proposed point |
targets |
The list of emulator targets |
accept |
The implausibility value at which the proposal can increase the implausibility |
hcutoff |
A power of 10: the smallest allowed step-size, h |
iteration.measure |
Which measure to use for point suitability: expectation or implausibilty? |
iteration.steps |
How many iterations to perform before returning the point. |
use.hessian |
Should the second erivatives be used to determine step size? Default = FALSE |
Given a point (preferably close to the implausibility boundary) x
, we can
calculate the emulated gradient at the point for each emulator.
If the value of E[f(x)] is larger than the desired value, then this emulator wants
the point to travel in the negative gradient direction, and conversely for smaller
E[f(x)]. The combination of this information for each emulator defines a preferred
set of directions of travel from this point.
We can try to find a shared direction which improves all emulator evaluations; if some
outputs are already well inside the implausibility cutoff (i.e. if their implausibility)
is less than accept
, then we can allow these targets to get worse to make the others
better.
Provided a shared direction v has been identified, we then move in this direction as follows.
The new point is defined as x + h*v, for some choice of h. To determine h, we initialise
h = 0.1, propose a new point, and check the new measure: the measures are either implausibility
or (default) the difference between the target value and the emulator expectation, normalised
by the target value. If the new measure
is lower than the original one, we step along the direction further. If it is not, we reduce
h and try again. This iteration terminates either when the new proposed point starts to
increase the implausibility, if the value of h is particularly small (as determined by
hcutoff
), or if we have taken more than iteration.steps
steps in the proposal.
A new proposal point, or the original point if a suitable new point could not be found.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.