Last chance! 50% off unlimited learning
Sale ends in
A symbolic routine to define that the systematic component
incr.conv(x, numknots = 0, knots = 0, space = "E")
A numeric predictor which has the same length as the response vector.
The number of knots used to smoothly constrain a predictor. The value should be
The knots used to smoothly constrain a predictor. The value should be
A character specifying the method to create knots. It will not be used for a shape-restricted predictor without smoothing. The default value is "E".
The vector x with five attributes, i.e., name: the name of x; shape: 5("increasing and convex"); numknots: the numknots argument in "incr.conv"; knots: the knots argument in "incr.conv"; space: the space argument in "incr.conv".
"incr.conv" 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 "incr.conv"; the shape attribute is 5("increasing and convex"), and according to the value of the vector itself and its attributes, the cone edges of the cone generated by the constraint matrix, which constrains the relationship between the systematic component
Note that "incr.conv" 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.
Meyer, M. C. (2013b) A simple new algorithm for quadratic programming with applications in statistics. Communications in Statistics 42(5), 1126--1139.
# NOT RUN {
data(cubic)
# extract x
x <- cubic$x
# extract y
y <- cubic$y
# regress y on x with the shape restriction: "increasing" and "convex"
ans <- cgam(y ~ incr.conv(x))
# 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", "increasing and convex fit", col = 2, lty = 1)
# }
Run the code above in your browser using DataLab