Skip to contents

Computes dG/dtheta for every parameter with a single backward sweep. Supports least squares (default, G = sum_i 1/2 weight_i (f_i - obs_i)^2) or, when errModel is given, the FOCEi -2 log-likelihood G = sum_i r_i^2/v_i + log(v_i) with v_i = add^2 + (prop*f_i)^2.

Usage

.rxAdjointGrad(
  object,
  params,
  events,
  calcSens,
  pred,
  obsTimes,
  obs,
  weight = 1,
  errModel = NULL,
  denseBy = 0.01,
  atol = 1e-10,
  rtol = 1e-10
)

Arguments

object

model definition accepted by rxode2() (text, rxode2 object, or function/ui).

params

named numeric vector of parameter values.

events

event table / data used to define dosing.

calcSens

character vector of parameter names to differentiate with respect to.

pred

character prediction expression f (function of states and parameters), e.g. "center/v".

obsTimes

numeric observation times.

obs

numeric observed values aligned with obsTimes.

weight

numeric scalar or vector of least-squares observation weights (ignored when errModel is supplied).

errModel

NULL for least squares, or a list with character entries add and/or prop naming the additive / proportional residual-error parameters, selecting the FOCEi -2LL objective v = add^2 + (prop*f)^2.

denseBy

grid spacing for the forward checkpoint trajectory; smaller values reduce the covariate-interpolation error.

atol, rtol

solver tolerances used for both the forward checkpoint and the backward sweeps.

Value

named numeric vector dG/dtheta over calcSens.

Author

Matthew L. Fidler