Evaluates the log-likelihood function. New parameter values and data can optionally be supplied. In the latter case, the function returns the out-of-sample log-likelihood.
# S3 method for tramME
logLik(
  object,
  param = NULL,
  newdata = NULL,
  type = c("integrated", "fix_smooth", "penalized"),
  ...
)A numeric value of the log-likelihood.
A tramME object.
An optional named list of parameter values (beta and theta). See details. Optionally, gamma elements can also be added, which leads to 'fixing' those random effects terms at the supplied values.
An optional data.frame to calculate the out-of-sample log-likelihood.
The type of the likelihood to be calculated:
integrated (default when newdata = NULL): The marginal
        log-likelihood, calculated by integrating out the random effects.
fix_smooth (default when newdata is supplied): Treating the
        penalized parameters of the smooth terms as fixed at their
        posterior mode predictions and only integrating out the 'true'
        random effects. (Consistent with the functionality of
        ranef.tramME and
        residuals.tramME when
        fix_smooth = TRUE.)
penalized: Treat all parameters as fixed, return the penalized log-likelihood (conditional log-likelihood + penalty for smooth terms and random effects). This is equivalent to fixing all random effect values.
See details.
Optional argument (for consistency with generic).
By default, logLik calculates the _integrated_ (or marginal)
  log-likelihood by integrating over the random effects. By fixing the
  random effects, the value of the log-likelihood changes, because TMB won't
  integrate over these random effects.  This will result in the _penalized_
  log-likelihood (conditional log-likelihood + penalty for smooth terms and
  random effects, see example).
By setting type = "penalized", the function will 'fix' all random
  effects and penalized parameters of the smooth terms at their predicted
  levels, and calcualte the penalized log-likelihood. In this sense, setting
  type = "fix_smooth" will result in a hybrid log-likelihood value,
  where the 'true' random effects (c.f.  Hodges 2014, Ch. 13) are integrated
  out, while it includes the penalty values for the penalized parameters of
  the smooths terms.
In general, it is not clear which type of log-likelihood we should calculate when we want to evaluate models based on their out-of-sample log-likelihood values. The context and the model setup are key in these cases. Please make sure you know what you want to calculate to avoid misunderstandings.
By default, param is set to the estimated (or previously set)
  parameters. If the parameter vectors in the model are incomplete (contain
  NA elemets), the returned log-likelihood will also be NA,
  unless the user provides new values.
Setting type = "fix_smooth" fixes the random effects terms that
  correspond to penalized smooths at their estimated values, so that they
  are not refitted when newdata is supplied. This is consistent with
  treating these parameter regularized fixed terms, i.e. as 'new-style'
  random effects described by Hodges (2014, Chapter 13).
The "fix_smooth" and "penalized" options for type are
  just for convenience.  The same functionality can be achieved by setting
  param$gamma to the desired values.  "penalized" respects the
  values of param$gamma if both are supplied, while
  "fix_smooth" overwrites them with the fitted values if there are
  ambiguities.
Hodges, James S. (2014). Richly Parameterized Linear Models: Additive, Time Series, and Spatial Models Using Random Effects. Chapman & Hall/CRC Texts in Statistical Science Series.
data("sleepstudy", package = "lme4")
fit <- LmME(Reaction ~ Days + (Days | Subject), data = sleepstudy)
logLik(fit)
data("mcycle", package = "MASS")
fit <- LmME(accel ~ s(times), data = mcycle)
logLik(fit) < logLik(fit, type = "penalized")
Run the code above in your browser using DataLab