Skip to contents

This function creates residual plots for an estimated ctsmTMB object

Usage

# S3 method for class 'ctsmTMB.fit'
plot(
  x,
  print.plot = 1,
  type = "residuals",
  state.type = "prior",
  against.obs = NULL,
  ggtheme = getggplot2theme(),
  ylims = c(NA, NA),
  residual.burnin = 0L,
  residual.vs.obs.and.inputs = FALSE,
  ...
)

Arguments

x

A R6 ctsmTMB fit object

print.plot

a single integer determining which element out of all states/observations (depending on the argument to type). A value of 0 means not to plot anything.

type

a character vector either 'residuals' or 'states' determining what to plot.

state.type

a character vector either 'prior', 'posterior' or 'smoothed' determining what kind of states to plot.

against.obs

name of an observation to plot state predictions against.

ggtheme

ggplot2 theme to use for creating the ggplot.

ylims

limits on the y-axis for residual time-series plot

residual.burnin

integer N to remove the first N residuals

residual.vs.obs.and.inputs

the residual plots also include a new window with time-series plots of residuals, associated observations and inputs

...

additional arguments

Value

a (list of) ggplot residual plot(s)

Examples

library(ctsmTMB)
model <- ctsmTMB$new()

# create model
model$addSystem(dx ~ theta * (mu+u-x) * dt + sigma_x*dw)
model$addObs(y ~ x)
model$setVariance(y ~ sigma_y^2)
model$addInput(u)
model$setParameter(
  theta   = c(initial = 1, lower=1e-5, upper=50),
  mu      = c(initial=1.5, lower=0, upper=5),
  sigma_x = c(initial=1, lower=1e-10, upper=30),
  sigma_y = 1e-2
)
model$setInitialState(list(1,1e-1))

# fit model to data
fit <- model$estimate(Ornstein)
#> Checking model components...
#> Checking and setting data...
#> Constructing objective function and derivative tables...
#> Minimizing the negative log-likelihood...
#>   0:     160.35328:  1.00000  1.50000  1.00000
#>  10:     89.603625:  2.58436  2.91384  1.15608
#> 	 Optimization finished!:
#>             Elapsed time: 0.008 seconds.
#>             The objective value is: 7.387879e+01
#>             The maximum gradient component is: 9.9e-08
#>             The convergence message is: relative convergence (4)
#>             Iterations: 19
#>             Evaluations: Fun: 29 Grad: 20
#>             See stats::nlminb for available tolerance/control arguments.
#> Returning results...
#> Finished!

# plot residuals
if (FALSE) plot(fit) # \dontrun{}
plot(fit)

# plot filtered states
if (FALSE) plot(fit, type="states") # \dontrun{}