# OSA-residuals: Recursive quantile residuals In RTMB: 'R' Bindings for 'TMB'

 OSA-residuals R Documentation

## Recursive quantile residuals

### Description

OSA residuals are computed using the function `oneStepPredict`. For this to work, you need to mark the observation inside the objective function using the OBS function. Thereafter, residual calculation is as simple as `oneStepPredict(obj)`. However, you probably want specify a `method` to use.

### Usage

``````oneStepPredict(
obj,
observation.name = names(obj\$env\$obs)[1],
data.term.indicator = "_RTMB_keep_",
...
)

## S3 method for class 'osa'
x[...]

## S3 method for class 'osa'
length(x)

## S3 method for class 'osa'
dim(x)

## S3 method for class 'osa'
is.array(x)

## S3 method for class 'osa'
is.matrix(x)
``````

### Arguments

 `obj` TMB model object (output from `MakeADFun`) `observation.name` Auto detected - use the default `data.term.indicator` Auto detected - use the default `...` Passed to `TMB::`oneStepPredict - please carefully read the documentation, especially the `method` argument. `x` Object of class 'osa'

### Value

`data.frame` with standardized residuals; Same as oneStepPredict.

### Functions

• `oneStepPredict()`: Calculate the residuals. See documentation of `TMB::`oneStepPredict.

• `[`: Subset observations marked for OSA calculation. This function makes sure that when you subset an observation of class `"osa"` such as `obs <- new("osa", x=advector(matrix(1:10,2)), keep = cbind(rep(TRUE,10),FALSE,FALSE))` the 'keep' attribute will be adjusted accordingly `obs[,1:2]`

• `length(osa)`: Equivalent of length

• `dim(osa)`: Equivalent of dim

• `is.array(osa)`: Equivalent of is.array

• `is.matrix(osa)`: Equivalent of is.matrix

### Examples

``````set.seed(1)
rw <- cumsum(.5*rnorm(20))
obs <- rpois(20, lambda=exp(rw))
func <- function(p) {
obs <- OBS(obs) ## Mark 'obs' for OSA calculation on request
ans <- 0
jump <- c(p\$rw[1], diff(p\$rw))
ans <- ans - sum(dnorm(jump, sd=p\$sd, log=TRUE))
ans <- ans - sum(dpois(obs, lambda=exp(p\$rw), log=TRUE))
ans
}