
Last chance! 50% off unlimited learning
Sale ends in
The function converts a GeDS fit which has a B-spline representation to a piecewise polynomial form.
PPolyRep(object, n = 3)
An object that inherits from classes "spline"
and
"polySpline"
. It is a list whose arguments are:
a vector of size
a
the GeDS-class
where the GeDS fit to be
converted is found.
integer value (2, 3 or 4) specifying the order (3L
. Non-integer values will be
passed to the function as.integer
.
This function converts a selected GeDS fit from a GeDS-class
object represented in terms of B-splines into an object where the fit is
represented in terms of piecewise polynomials.
The function wraps polySpline
in order to let it
accept GeDS-class
objects as input. Hence the function provides
a useful link between the package GeDS and the package splines,
allowing the user to take advantage of the functions provided in the
splines package.
# Generate a data sample for the response variable
# Y and the single covariate X
set.seed(123)
N <- 500
f_1 <- function(x) (10*x/(1+100*x^2))*4+4
X <- sort(runif(N, min = -2, max = 2))
# Specify a model for the mean of Y to include only
# a component non-linear in X, defined by the function f_1
means <- f_1(X)
# Add (Normal) noise to the mean of Y
Y <- rnorm(N, means, sd = 0.1)
# Fit a Normal GeDS regression using NGeDS
Gmod <- NGeDS(Y ~ f(X), beta = 0.6, phi = 0.995, Xextr = c(-2,2))
# construct the PP representation of the cubic GeDS fit
# and apply some functions of the package splines
Polymod <- PPolyRep(Gmod, 4)
require(splines)
class(Polymod)
splineKnots(Polymod)
knots(Gmod, n = 4)
plot(Polymod)
# Generate a plot showing the PP representation
# based on the same example
knt <- splineKnots(Polymod)
coeffs <- coef(Polymod)
plot(Gmod, n = 4, legend = FALSE, main = "Cubic Curves")
cols <- sample(heat.colors(length(knt)), length(knt))
for(i in 1:(length(knt))){
curve(coeffs[i,1] + coeffs[i,2]*(x - knt[i])+
coeffs[i,3]*(x - knt[i])^2+
coeffs[i,4]*(x - knt[i])^3,
add = TRUE, col = cols[i])
abline(v = knt[i])
}
Run the code above in your browser using DataLab