## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7 ) ## ----setup-------------------------------------------------------------------- library(tidygam) library(mgcv) library(dplyr) library(ggplot2) theme_set(theme_light()) ## ----gest--------------------------------------------------------------------- data("gest") gest ## ----gs----------------------------------------------------------------------- gs <- gam( count ~ s(months, k = 3), data = gest, family = poisson ) summary(gs) ## ----gs-pred------------------------------------------------------------------ gs_pred <- predict_gam(gs) gs_pred ## ----gs-pred-plot------------------------------------------------------------- gs_pred %>% plot(series = "months") ## ----gs-pred-exp-------------------------------------------------------------- predict_gam(gs, tran_fun = exp) %>% plot(series = "months") ## ----gs-by-------------------------------------------------------------------- gs_by <- gam( count ~ background + s(months, by = background, k = 3), data = gest, family = poisson ) summary(gs_by) ## ----gs-by-comp--------------------------------------------------------------- gs_by %>% predict_gam(length_out = 20, series = "months", tran_fun = exp) %>% plot(comparison = "background") ## ----gs-by-comp-2------------------------------------------------------------- gs_by %>% predict_gam(length_out = 20, series = "months", tran_fun = exp) %>% plot(comparison = "background") + scale_color_brewer(type = "qual") + scale_fill_brewer(type = "qual") ## ----gs-by-2------------------------------------------------------------------ gs_by_2 <- gam( count ~ gesture + background + s(months, by = background, k = 3) + s(months, by = gesture, k = 3), data = gest, family = poisson ) summary(gs_by_2) ## ----gs-by-2-plot------------------------------------------------------------- gs_by_2 %>% predict_gam(length_out = 20, series = "months", tran_fun = exp) %>% plot(comparison = "gesture") + scale_color_brewer(type = "qual") + scale_fill_brewer(type = "qual") + facet_grid(~ background) ## ----gs-by-2-plot-2----------------------------------------------------------- to_exclude <- c("s(months):gestureho_gv", "s(months):gesturepoint", "s(months):gesturereach", "gesturepoint", "gesturereach") gs_by_2 %>% predict_gam(length_out = 20, series = "months", tran_fun = exp, exclude_terms = to_exclude, # pick any value of the excluded variables. values = list(gesture = "point")) %>% plot(comparison = "background") + scale_color_brewer(type = "qual") + scale_fill_brewer(type = "qual") ## ----gs-i--------------------------------------------------------------------- gest <- gest %>% mutate(back_gest = interaction(background, gesture)) gs_i <- gam( count ~ back_gest + s(months, by = back_gest, k = 3), data = gest, family = poisson ) summary(gs_i) ## ----gs-i-plot---------------------------------------------------------------- predict_gam( gs_i, tran_fun = exp, separate = list(back_gest = c("background", "gesture")) ) %>% plot(series = "months", comparison = "gesture") + facet_grid(~ background) ## ----struct------------------------------------------------------------------- data("struct") struct ## ----st----------------------------------------------------------------------- struct <- struct %>% mutate(stim_gram = interaction(stimulus.condition, grammar.condition)) st <- bam( voltage ~ stim_gram + s(t, by = stim_gram, k = 5) + s(t, subject, bs = "fs", m = 1), data = struct ) summary(st) ## ----st-plot------------------------------------------------------------------ predict_gam( st, length_out = 50, series = "t", exclude_terms = "s(t,subject)", # Pick any subject: since we are removing the random effect, it does not # matter which one you pick, the predictions will be the same values = c(subject = "03"), separate = list(stim_gram = c("stimulus", "grammar")) ) %>% plot(comparison = "grammar") + geom_hline(yintercept = 0) + facet_grid(~ stimulus) ## ----st-plot-2---------------------------------------------------------------- predict_gam( st, length_out = 50, series = "t", separate = list(stim_gram = c("stimulus", "grammar")) ) %>% plot(comparison = "grammar") + geom_hline(yintercept = 0) + facet_grid(~ stimulus)