g {cgaim}R Documentation

Defining terms in CGAIM formula


Functions used to define terms within a cgaim formula. g defines an index with ridge function and s a smooth covariate.


g(..., label = NULL, acons = list(), Cmat = NULL, bvec = 0,
  fcons = NULL, s_opts = list())

s(x, fcons = NULL, s_opts = list())



Variables entering the index. May include vectors and matrices.


Character (or any object that can coerced into one) labeling the index. By default, named after the first variable in ....


A list of character naming common constraints to be applied to the index weights alpha. See build_constraints for allowed constraints.


A constraint matrix for alpha coefficients. Number of columns must match the number of variables in the index.


Numeric vector of constraint bounds. Recycled if necessary.


The type of shape constraint to be applied on the smooth function. See details.


A named list of options to be passed to the smoothing of ridge functions. Depends on the method used to smooth additive models. See details.


Covariate on which the smooth is applied.


These functions define nonlinear terms in the formula, with g defining an index created from a collection of terms passed through the ... argument while s is applied to a single variable, similarly to s in mgcv.

For indices, g allows the definition of constraints applied to the index only. This is a convenient alternative to passing the whole constraint matrix Cmat in cgaim. Constraints can be defined by a prespecified matrix through the argument Cmat or through the argument acons for common constraints (see build_constraints). Note that any provided Cmat must match the total number of variables in ..., including potential matrix expansion and factors. Both Cmat and acons can be passed to the function, which will bind them internally.

Both g and s allow the definition of shape constraints for the smooth. Eight shape-constraints are currently available: monotone increasing (fcons = "inc"), monotone decreasing (fcons = "dec"), convex (fcons = "cvx"), concave (fcons = "ccv"), increasing and convex(fcons = "inccvx"), decreasing and convex (fcons = "deccvx"), increasing and concave (fcons = "incccv"), decreasing and concave (fcons = "decccv").

Smoothing can be controlled by the s_opts parameter. It is a list of argument depends on the method used for smoothing. See s for smooth_method = "scam". For smooth_method = "cgam", the parameters allowed may vary according to the shape-constraint chosen. The full list can be found in cgam, but only the constraints beginning with s. are allowed for now. No parameter are necessary when smooth_method = "scar" (see scar).


A matrix containing the variables passed in ... with additional attributes:


The shape constraint for smoothing.


Arguments passed to the smoothing function.


The label of the term.

The following attributes result from a call to g only:


The terms in the index.


The number of variables in the index.


The constraint matrix for alpha coefficients.


The associated boundary vector.

See Also

cgaim for fitting the CGAIM, build_constraints for built-in constraint matrices.


## Simulate some data
n <- 200
x1 <- rnorm(n)
x2 <- rnorm(n)
x3 <- rnorm(n)
x4 <- rnorm(n)
mu <- 4 * exp(8 * x1) / (1 + exp(8 * x1)) + exp(x3)
y <- mu + rnorm(n)
df1 <- data.frame(y, x1, x2, x3, x4)

## Fit an unconstrained the model
ans <- cgaim(y ~ g(x1, x2) + g(x3, x4), data = df1)

## Fit constrained model
ans2 <- cgaim(y ~ g(x1, x2, acons = list(monotone = -1)) + 
  g(x3, x4, fcons = "cvx"), data = df1)
## Pass constraint matrices instead
ans3 <- cgaim(y ~ g(x1, x2, Cmat = -diff(diag(2))) + 
  g(x3, x4, fcons = "cvx"), data = df1)
## Label indices   
ans4 <- cgaim(y ~ g(x1, x2, label = "foo") + g(x3, x4, label = "bar"), 
  data = df1)

[Package cgaim version 1.0.0 Index]