cqcheckI.Rd
Given an additive quantile model, fitted using qgam
, cqcheck2DI
provides some interactive
2D plots that allow to check what proportion of responses, y
, falls below the fitted quantile.
This is an interactive version of the cqcheck
function.
cqcheckI(obj, v, X = NULL, y = NULL, run = TRUE, width = "100%", height = "680px")
obj | the output of a |
---|---|
v | if a 1D plot is required, |
X | a dataframe containing the data used to obtain the conditional quantiles. By default it is NULL, in which
case predictions are made using the model matrix in |
y | vector of responses. Its i-th entry corresponds to the i-th row of X. By default it is NULL, in which
case it is internally set to |
run | if TRUE (default) the function produces an interactive plot, otherwise it returns the corresponding shiny app. |
width | the width of the main plot. Default is "100%". |
height | width the width of the main plot. Default is "680px". |
Simply produces an interactive plot.
This is an interactive version of the cqcheck
, see ?cqcheck
for details. The main interactive
feature is that one can select an area by brushing, and then double-click to zoom in. In the 1D case the vertical
part of the selected area is not use: we zoom only along the x axis. Double-clicking without brushing zooms out.
# NOT RUN { ####### # Example 1: Bivariate additive model y~1+x+x^2+z+x*z/2+e, e~N(0, 1) ####### library(qgam) set.seed(15560) n <- 1000 x <- rnorm(n, 0, 1); z <- rnorm(n) X <- cbind(1, x, x^2, z, x*z) beta <- c(0, 1, 1, 1, 0.5) y <- drop(X %*% beta) + rnorm(n) dataf <- data.frame(cbind(y, x, z)) names(dataf) <- c("y", "x", "z") #### Fit a constant model for median qu <- 0.5 fit <- qgam(y~1, qu = qu, data = dataf) # Look at what happens along x: clearly there is non linear pattern here cqcheckI(obj = fit, v = c("x"), X = dataf, y = y) #### Add a smooth for x fit <- qgam(y~s(x), qu = qu, data = dataf) cqcheckI(obj = fit, v = c("x"), X = dataf, y = y) # Better! # Lets look across across x and z. As we move along z (x2 in the plot) # the colour changes from green to red cqcheckI(obj = fit, v = c("x", "z"), X = dataf, y = y) # The effect look pretty linear cqcheckI(obj = fit, v = c("z"), X = dataf, y = y) #### Lets add a linear effect for z fit <- qgam(y~s(x)+z, qu = qu, data = dataf) # Looks better! cqcheckI(obj = fit, v = c("z")) # Lets look across x and y again: green prevails on the top-left to bottom-right # diagonal, while the other diagonal is mainly red. cqcheckI(obj = fit, v = c("x", "z")) ### Maybe adding an interaction would help? fit <- qgam(y~s(x)+z+I(x*z), qu = qu, data = dataf) # It does! The real model is: y ~ 1 + x + x^2 + z + x*z/2 + e, e ~ N(0, 1) cqcheckI(obj = fit, v = c("x", "z")) # }