Learn R Programming

spaMM (version 4.7.0)

plot.HLfit: Model checking plots for mixed models

Description

This function provides diagnostic plots for residual errors from the mean model and for random effects. Plots for the mean models are similar to those for GLMs. However, "std_dev_res" ended as the type of the residuals plotted by the old version of plot.HLfit instead of the intended "std_dev_rt" (the standardized deviance residuals as described by Lee et al. 2006, p.52), by historical accident and lack of interest for the dubious results even with "std_dev_rt" (see Details). The "RQR" type may be more interesting type, for count data in particular.

Plots for random effects likewise consider standardized values.

Usage

# S3 method for HLfit
plot(x, 
    which=c("mean","ranef"),
    res_type="std_dev_rt",
    form = residuals(., type=res_type) ~ fitted(.),
    titles = list(
      meanmodel=list(outer="Mean model",devres="residuals", absdevres="|residuals|",
                     resq="Residual quantiles", devreshist="residuals"),
      ranef=list(outer="Random effects and leverages",qq="Random effects Q-Q plot",
                 levphi=expression(paste("Leverages for ",phi)), 
                 levlambda=expression(paste("Leverages for ",lambda)))
    ),
    control = list() , ask=TRUE, ...)

Value

Returns the input object invisibly.

Arguments

x

An object of class HLfit, as returned by the fitting functions in spaMM.

which

A vector of keywords for different types of plots. By default, two types of plots are presented on different devices: diagnostic plots for mean values, and diagnostic plots for random effects. Either one can be selected using this argument. Use keyword "predict" for a plot of predicted response against actual response.

titles

A list of the main (inner and outer) titles of the plots. See the default value for the format.

control

A list of default options for the plots. Defaults are pch="+" and pcol="blue" for points, and lcol="red" for curves.

ask

Logical; passed to devAskNewPage which is run when a new device is opened by code.HLfit.

res_type

Character string: the type of residual in the plots, passed to residuals.HLfit(., type).

form

Either a formula specifying the desired type of plot for residuals, wherein the fit object x can be referenced using the symbol “.”; or (more for programming purposes) directly a vector of values for the residuals.

...

Options passed from plot.HLfit to par.

Details

In principle the standardized deviance residuals for the mean model should have a nearly Gaussian distribution hence form a nearly straight line on a Q-Q plot. However this is (trivially) not so for well-specified (nearly-)binary response data nor even for well-specified Poisson response data with moderate expectations. Hence this plot is not so useful. The DHARMa package proposes better-behaved diagnostic plots, but the p-value that appears on one of these plots may not stand for a valid goodness-of-fit test; see instead the gof procedure using the randomized quantile residuals ("RQR"). The current version of DHARMa should handle spaMM fit objects; otherwise, see https://github.com/florianhartig/DHARMa/issues/95 for how to run DHARMa procedures on spaMM output.

References

Lee, Y., Nelder, J. A. and Pawitan, Y. (2006). Generalized linear models with random effects: unified analysis via h-likelihood. Chapman & Hall: London.

Examples

Run this code
data("blackcap")
fit <- fitme(migStatus ~ 1+ Matern(1|longitude+latitude),data=blackcap,
             fixed=list(lambda=1,nu=1,rho=1))
plot(fit)

# compare Q-Q plots for count data
set.seed(123)
dat <- data.frame(
  x=(x <- seq(1,2,1/100)),
  y=rpois(101, lambda=x)
)
fit <- fitme(y ~ x, family=poisson(), data=dat)
plot(fit, res_type="RQR", which="mean") 
plot(fit, which="mean")

Run the code above in your browser using DataLab