View source: R/residual_functions.R
pseudo_res_discrete | R Documentation |
For HMMs, pseudo-residuals are used to assess the goodness-of-fit of the model. These are based on the cumulative distribution function (CDF)
F_{X_t}(x_t) = F(x_t \mid x_1, \dots, x_{t-1}, x_{t+1}, \dots, x_T)
and can be used to quantify whether an observation is extreme relative to its model-implied distribution.
This function calculates such residuals for discrete-valued observations, based on the local state probabilities obtained by stateprobs
or stateprobs_g
and the respective parametric family.
pseudo_res_discrete(
obs,
dist,
par,
stateprobs,
normal = TRUE,
randomise = TRUE,
seed = NULL
)
obs |
vector of discrete-valued observations (of length n) |
dist |
character string specifying which parametric CDF to use (e.g., |
par |
named parameter list for the parametric CDF Names need to correspond to the parameter names in the specified distribution (e.g. |
stateprobs |
matrix of local state probabilities for each observation (of dimension c(n,N), where N is the number of states) |
normal |
logical, if These will be approximately standard normally distributed if the model is correct. |
randomise |
logical, if |
seed |
integer, seed for random number generation |
For discrete observations, calculating pseudo residuals is slightly more involved, as the CDF is a step function.
Therefore, one can calculate the lower and upper CDF values for each observation.
By default, this function does exactly that and then randomly samples the interval in between to give approximately Gaussian psuedo-residuals.
If randomise
is set to FALSE
, the lower, upper and mean pseudo-residuasl are returned.
vector of pseudo residuals
obs = rpois(100, lambda = 1)
stateprobs = matrix(0.5, nrow = 100, ncol = 2)
par = list(lambda = c(1,2))
pres = pseudo_res_discrete(obs, "pois", par, stateprobs)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.