Learn R Programming

itsadug (version 2.0)

fvisgam: Visualization of nonlinear interactions, summed effects.

Description

Produces perspective or contour plot views of gam model predictions of the additive effects interactions. The code is based on the script for vis.gam, but allows to cancel random effects.

Usage

fvisgam(x, view = NULL, cond = list(), n.grid = 30, too.far = 0,
  col = NA, color = "topo", contour.col = NULL, add.color.legend = TRUE,
  se = -1, plot.type = "contour", xlim = NULL, ylim = NULL,
  zlim = NULL, nCol = 50, rm.ranef = NULL,
  print.summary = getOption("itsadug_print"), transform = NULL,
  transform.view = NULL, hide.label = FALSE, dec = NULL, ...)

Arguments

x
A gam object, produced by gam or bam.
view
A two-value vector containing the names of the two main effect terms to be displayed on the x and y dimensions of the plot. Note that variables coerced to factors in the model formula won't work as view variables.
cond
A named list of the values to use for the other predictor terms (not in view). Used for choosing between smooths that share the same view predictors.
n.grid
The number of grid nodes in each direction used for calculating the plotted surface.
too.far
Plot grid nodes that are too far from the points defined by the variables given in view can be excluded from the plot. too.far determines what is too far. The grid is scaled into the unit square along with the view variables and then grid nodes more th
col
The colors for the facets of the plot.
color
The color scheme to use for plots. One of "topo", "heat", "cm", "terrain", "gray" or "bw".
contour.col
sets the color of contours when using plot.
add.color.legend
Logical: whether or not to add a color legend. Default is TRUE. If FALSE (omitted), one could use the function gradientLegend to add a legend manually at any position.
se
If less than or equal to zero then only the predicted surface is plotted, but if greater than zero, then 3 surfaces are plotted, one at the predicted values minus se standard errors, one at the predicted values and one at the predicted values plus se s
plot.type
one of "contour" or "persp" (default is "contour").
xlim
A two item array giving the lower and upper limits for the x- axis scale. NULL to choose automatically.
ylim
A two item array giving the lower and upper limits for the y- axis scale. NULL to choose automatically.
zlim
A two item array giving the lower and upper limits for the z- axis scale. NULL to choose automatically.
nCol
The number of colors to use in color schemes.
rm.ranef
Logical: whether or not to remove random effects. Default is TRUE.
print.summary
Logical: whether or not to print a summary. Default set to the print info messages option (see infoMessages).
transform
Function for transforming the fitted values. Default is NULL.
transform.view
List with two functions for transforming the values on the x- and y-axis respectively. If one of the axes need to be transformed, set the other to NULL (no transformation). See examples below.
hide.label
Logical: whether or not to hide the label (i.e., "fitted values"). Default is FALSE.
dec
Numeric: number of decimals for rounding the color legend. When NULL, no rounding (default). If -1, automatically determined. Note: if value = -1, rounding will be applied also when zlim is provided.
...
other options to pass on to persp, image or contour. In particular ticktype="detailed" will add proper axes labeling to the plots.

See Also

vis.gam, plot.gam

Other Functions for model inspection: gamtabs, inspect_random, plot_data, plot_parametric, plot_smooth, plot_topo, pvisgam

Examples

Run this code
data(simdat)

# Model with random effect and interactions:
m1 <- bam(Y ~ te(Time, Trial)+s(Time, Subject, bs='fs', m=1),
    data=simdat)

# Plot summed effects:
vis.gam(m1, view=c("Time", "Trial"), plot.type='contour', color='topo')
# Same plot:
fvisgam(m1, view=c("Time", "Trial"), rm.ranef=FALSE)
# Without random effects included:
fvisgam(m1, view=c("Time", "Trial"), rm.ranef=TRUE)

# Notes on the color legend:
# Labels can easily fall off the plot, therefore the numbers can be
# automatically rounded.
# To do the rounding, set dec=-1:
fvisgam(m1, view=c("Time", "Trial"), rm.ranef=TRUE,
     dec=-1)
# For custom rounding, set dec to a value:
fvisgam(m1, view=c("Time", "Trial"), rm.ranef=TRUE,
     dec=0)
# To increase the left marging of the plot (so that the numbers fit):
oldmar <- par()$mar
par(mar=oldmar + c(0,0,0,1) ) # add one line to the right
fvisgam(m1, view=c("Time", "Trial"), rm.ranef=TRUE,
     dec=3)
par(mar=oldmar) # restore to default settings

# Using transform
# Plot log-transformed dependent predictor on measurement scale:
fvisgam(m1, view=c("Time", "Trial"), rm.ranef=TRUE, transform=exp)

# Notes on transform.view: 
# This will generate an error, because x-values <= 0 will result in NaN:
fvisgam(m1, view=c("Time", "Trial"), rm.ranef=TRUE,
   transform.view=list(log, NULL))
# adjusting the x-axis helps:
fvisgam(m1, view=c("Time", "Trial"), rm.ranef=TRUE,
   xlim=c(1,2000), transform.view=list(log, NULL))
# see the vignette for examples:
vignette("inspect", package="itsadug")

Run the code above in your browser using DataLab