Interpreting Time Series and Autocorrelated Data Using GAMMs
GAMM (Generalized Additive Mixed Modeling; Lin & Zhang, 1999)
as implemented in the R package 'mgcv' (Wood, S.N., 2006; 2011) is a nonlinear
regression analysis which is particularly useful for time course data such as
EEG, pupil dilation, gaze data (eye tracking), and articulography recordings,
but also for behavioral data such as reaction times and response data. As time
course measures are sensitive to autocorrelation problems, GAMMs implements
methods to reduce the autocorrelation problems. This package includes functions
for the evaluation of GAMM models (e.g., model comparisons, determining regions
of significance, inspection of autocorrelational structure in residuals)
and interpreting of GAMMs (e.g., visualization of complex interactions, and
Changes in arguments:
- plot_diff/ plot_diff2: the arguments 'plotCI' and 'f' are replaced by 'se' for consistency with plot_smooth, fvisgam, pvisgam
- pvisgam: argument 'type' deleted, because it was not used anymore
- get_predictions, plot_smooths, fvisgam, plot_diff: argument 'sim.ci' allows to choose for simulataneous CI error bars, based on Gavin Simpson's blog of December 15, 2016: http://www.fromthebottomoftheheap.net/2016/12/15/simultaneous-interval-revisited/
- plot_smooths: argument 'sim.ci' allows to choose for simulataneous CI error bars (see get_predictions)
- pvisgam, fvisgam, plot_diff2: the argument 'show.diff' indicates the area(s) in the surface that are significantly different from zero (i.e., that do not include zero in the confidence intervals). Note: This is just meant as a rough indication, and the user should be careful with the interpretation.
- pvisgam, fvisgam: if main is not specified, the name of the dependent variable is printed as title.
- get_predictions: changing multiple column output to single column output to avoid problems with tidyverse usage (request from Joseph Fruehwald).
- get_coefs: now also works with only 1 parametric term
- plot_topo: allows to change size when the new parameter setmargin is set to false.
- plot_diff2: argument show.diff to show where the surface is not different from zero
- get_predictions: output should work now with tidyverse packages
- compareML: minor changes in output compareML, e.g. "Difference" instead of "Chisq" as header in the table, and above the table a summary is mentioned in all cases.
- plot_diff2: argument color does now also accept a vector of colors that will define a custom gradient palette.
- plot_diff: argument col.diff to change color of significant region
- pvisgam: se=1 also works for contour plots. To do: this functions need reimplementation for more efficient maintenance.
- compareML: replaced warning for use of AIC by information message
- plot_smooth now allows to select more than one value for predictors in argument cond. This makes it possible to use plot_all for plotting only a subset of the data.
- plot_smooth now also works for binomial predictors
- get_modelterms now also works for binomial predictors
- fixed bug in plot_smooth: plot_all line specifics (lwd, lty), but changed colors instead. Bug fixed.
- fixed bug in plot_smooth: plot_all didn't plot colors or line specifics (lwd, lty), bug fixed and automatically colored lines are plotted for each level.
- fixed bug in plot_diff: error in plot_diff when writing the estimated differences to the terminal, bug now fixed.
- function fadeRug reimplemented, now based on mgcv's exclude.too.far function.
The package 'itsadug' has been split into two: all general multipurpose plot functions have been moved to the new package 'plotfunctions', whereas 'itsadug' now contains only the functions specialized for (nonlinear) regression models and autocorrelation problems.
- fixed mark.diff error for nonsignificant differences
- fixed bug in plot_smooth: using 'fit' as predictor will cause an
interpretable error message instead of not plotting
- fixed bug in plot_smooth: lty and lwd can be set for the different levels of
- fixed bug in plot_modelfit: can also be used for binomial count data
(only with logit link)
- by installing the package data.table, start_event will run much faster
New vignettes. Setup as short tutorials, which also introduce useful functions. Currently three included, about inspection of the model, testing for significance, and checking for autocorrelation. See also help(itsadug) for an overview.
a. New functions:
- plot_modelfit: plotting the model fit and data for n randomly selected time series
- plot_data (thanks to Tino Sering): plot observations on which model is based
- check_resid newly implemented: check distribution of residuals and autocorrelation
- diagnostics: inspect trends in residuals and distributions of predictors
- plot_image: add image to plot region or as background
- get_pca_predictions: extract the effect of a predictor that was included as part of a principle component
- plot_pca_surface: plot surface of a principle component predictors in GAMMs
- get_fitted: return fitted values, with or with random effects
- wald_gam: nonparametric test for categorical predictors
- start_value_rho: determine a start value for rho, which need to be finetuned
- derive_timeseries: derive time series from AR.start info in the model
- marginDensityPlot: add distribution of predictor in the margins of a plot
b. Bugs fixed:
- fixed bug in acf_resid: errors that appeared with missing data should be fixed
- fixed bug in fvisgam: too.far reimplemented
- fixed bug in plot_smooth: with col=NULL no line was plotted, now with col=NULL a black line is plotted
- fixed bug in check_normaldist: now it also works with binomial distribution (automatically centered)
a. New utility functions:
getRange, getDec, list2str, rug.model, getProps, drawArrows, add_bars
b. New functionality / arguments of existing functions
- plot_smooth, fvisgam, plot_diff, plot_diff2:
- argument transform.view added for transforming values on x- and / or y axis
- get_predictions, get_difference, get_fitted, plot_smooth: rm.ranef behavior changed.
- Instead of logic values, also vector with modelterm numbers could be specified to cancel.
- acf_resid, check_resid: argument split_pred allows to automatically derive events based on AR.start input
- plot_diff, argument mark.diff: by default differences are marked and printed to output
- gradientLegend, argument dec: possibility to round legend values
- influences fvisgam, pvisgam, plot_diff2, plotsurface: allow for nicer decimal rounding of legend with argument dec
- gradientLegend, argument pos.num: possibility to change the position of the numbers
- argument print.output: option to store output and suppress the printing
- argument signif.stars: option to suppress significance stars
- gamtabs: possibility to specify summary of model instead of model
- start_event: data.table functions (optional) for speeding up start_event
- acf_n_plots: argument print.summary to suppress output text
- errorBars, argument se2: possibility to plot asymmetric errors
- errorBars, argument horiz: possibility to plot horizontal errors