R/plot_fs_interaction_1D.R
plot.fs.interaction.1D.Rd
This method should be used to plot smooth effects
of class "fs.interaction.1D"
, that is smooth constructed
using the basis bs="tp"
. See mgcv::s.
# S3 method for fs.interaction.1D plot(x, n = 100, xlim = NULL, trans = identity, ...)
x | a smooth effect object. |
---|---|
n | number of grid points used to compute main effect and c.i. lines. For a nice smooth plot this needs to be several times the estimated degrees of freedom for the smooth. |
xlim | if supplied then this pair of numbers are used as the x limits for the plot. |
trans | monotonic function to apply to the smooth and residuals, before plotting. Monotonicity is not checked. |
... | currently unused. |
An object of class c("plotSmooth", "gg")
.
library(mgcViz) set.seed(0) ## simulate data... f0 <- function(x) 2 * sin(pi * x) f1 <- function(x, a = 2, b = -1) exp(a * x) + b f2 <- function(x) 0.2 * x^11 * (10 * (1 - x))^6 + 10 * (10 * x)^3 * (1 - x)^10 n <- 500; nf <- 25 fac <- sample(1:nf, n, replace = TRUE) x0 <- runif(n); x1 <- runif(n); x2 <- runif(n) a <- rnorm(nf) * .2 + 2; b <- rnorm(nf) * .5 f <- f0(x0) + f1(x1, a[fac], b[fac]) + f2(x2) fac <- factor(fac) y <- f + rnorm(n) * 2 ## so response depends on global smooths of x0 and ## x2, and a smooth of x1 for each level of fac. ## fit model (note p-values not available when fit ## using gamm)... bm <- gamm(y ~ s(x0)+ s(x1, fac, bs = "fs", k = 5) + s(x2, k = 20)) v <- getViz(bm$gam) # Plot with fitted effects and changing title plot(sm(v, 2)) + l_fitLine(alpha = 0.6) + labs(title = "Smooth factor interactions")# Change line type and remove legend plot(sm(v, 2)) + l_fitLine(size = 1.3, linetype="dotted") + theme(legend.position="none")# Clustering smooth effects in 3 groups plot(sm(v, 2)) + l_fitLine(colour = "grey") + l_clusterLine(centers = 3, a.clu = list(nstart = 100))