s.decr: Specify a Smooth and Decreasing Shape-Restriction in a CGAM... In cgam: Constrained Generalized Additive Model

Description

A symbolic routine to define that the systematic component η is smooth and decreasing in a predictor in a formula argument to cgam. This is the smooth version.

Usage

 `1` ```s.decr(x, numknots = 0, knots = 0, space = "E") ```

Arguments

 `x` A numeric predictor which has the same length as the response vector. `numknots` The number of knots used to constrain x. It will not be used if the user specifies the knots argument. The default is numknots = 0. `knots` The knots used to constrain x. User-defined knots will be used when given. Otherwise, numknots and space will be used to create knots. The default is knots = 0. `space` A character specifying the method to create knots. It will not be used if the user specifies the knots argument. If space == "E", then equally spaced knots will be created; if space == "Q", then a vector of equal x quantiles will be created based on x with duplicate elements removed. The number of knots is numknots when numknots > 0. Otherwise it is of the order n^{1/7}. The default is space = "E".

Details

"s.decr" returns the vector "x" and imposes on it five attributes: name, shape, numknots, knots and space.

The name attribute is used in the subroutine plotpersp; the numknots, knots and space attributes are the same as the numknots, knots and space arguments in "s.decr"; the shape attribute is 10("smooth and decreasing"). According to the value of the vector itself and its shape, numknots, knots and space attributes, the cone edges will be made by I-spline basis functions in Meyer (2008). The cone edges are a set of basis employed in the hinge algorithm.

Note that "s.decr" does not make the corresponding cone edges itself. It sets things up to a subroutine called makedelta in cgam.

See references cited in this section for more details.

Value

The vector x with five attributes, i.e, name: the name of x; shape: 10("smooth and decreasing"); numknots: the numknots argument in "s.decr"; knots: the knots argument in "s.decr"; space: the space argument in "s.decr".

Author(s)

Mary C. Meyer and Xiyue Liao

References

Meyer, M. C. (2013b) A simple new algorithm for quadratic programming with applications in statistics. Communications in Statistics 42(5), 1126–1139.

Meyer, M. C. (2008) Inference using shape-restricted regression splines. Annals of Applied Statistics 2(3), 1013–1033.

`decr`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19``` ``` data(cubic) # extract x x <- - cubic\$x # extract y y <- cubic\$y # regress y on x under the shape-restriction: "smooth and decreasing" ans <- cgam(y ~ s.decr(x)) knots <- ans\$knots[[1]] # make a plot par(mar = c(4, 4, 1, 1)) plot(x, y, cex = .7, xlab = "x", ylab = "y") lines(x, ans\$muhat, col = 2) legend("topleft", bty = "n", "smooth and decreasing fit", col = 2, lty = 1) legend(-.3, 8, bty = "o", "knots", pch = "X") points(knots, 1:length(knots)*0+min(y), pch = "X") ```