| OSA-residuals | R Documentation |
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.
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)
obj |
TMB model object (output from |
observation.name |
Auto detected - use the default |
data.term.indicator |
Auto detected - use the default |
... |
Passed to |
x |
Object of class 'osa' |
data.frame with standardized residuals; Same as oneStepPredict.
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
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
}
obj <- MakeADFun(func,
parameters=list(rw=rep(0,20), sd=1),
random="rw")
nlminb(obj$par, obj$fn, obj$gr)
res <- oneStepPredict(obj,
method="oneStepGeneric",
discrete=TRUE,
range=c(0,Inf))$residual
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.