Values of a Monotone Functional Data Object
Evaluate a monotone functional data object at specified argument values, or evaluate a derivative of the functional object.
eval.monfd(evalarg, Wfdobj, Lfdobj=int2Lfd(0), returnMatrix=FALSE) ## S3 method for class 'monfd' predict(object, newdata=NULL, Lfdobj=0, returnMatrix=FALSE, ...) ## S3 method for class 'monfd' fitted(object, ...) ## S3 method for class 'monfd' residuals(object, ...)
evalarg, newdata |
a vector of argument values at which the functional data object is to be evaluated. |
Wfdobj |
an object of class |
Lfdobj |
a nonnegative integer specifying a derivative to be evaluated. At this time of writing, permissible derivative values are 0, 1, 2, or 3. A linear differential operator is not allowed. |
object |
an object of class |
returnMatrix |
logical: If TRUE, a two-dimensional is returned using a special class from the Matrix package. |
... |
optional arguments required by |
A monotone function data object $h(t)$ is defined by $h(t) = [D^{-1}
exp Wfdobj](t)$. In this equation, the operator $D^{-1}$ means
taking the indefinite integral of the function to which it applies.
Note that this equation implies that the monotone function has a value
of zero at the lower limit of the arguments. To actually fit monotone
data, it will usually be necessary to estimate an intercept and a
regression coefficient to be applied to $h(t)$, usually with the least
squares regression function lsfit
. The function Wfdobj
that defines the monotone function is usually estimated by monotone
smoothing function smooth.monotone.
eval.monfd
only computes the standardized monotone form.
predict.monfd
computes the scaled version using
with(object, beta[1] + beta[2]*eval.monfd(...))
if Lfdobj = 0
or beta[2]*eval.monfd(...) if Lfdobj > 0.
a matrix containing the monotone function values. The first dimension
corresponds to the argument values in evalarg
and the second to
replications.
# Estimate the acceleration functions for growth curves # See the analyses of the growth data. # Set up the ages of height measurements for Berkeley data age <- c( seq(1, 2, 0.25), seq(3, 8, 1), seq(8.5, 18, 0.5)) # Range of observations rng <- c(1,18) # First set up a basis for monotone smooth # We use b-spline basis functions of order 6 # Knots are positioned at the ages of observation. norder <- 6 nage <- length(age) nbasis <- nage + norder - 2 wbasis <- create.bspline.basis(rng, nbasis, norder, age) # starting values for coefficient cvec0 <- matrix(0,nbasis,1) Wfd0 <- fd(cvec0, wbasis) # set up functional parameter object Lfdobj <- 3 # penalize curvature of acceleration lambda <- 10^(-0.5) # smoothing parameter growfdPar <- fdPar(Wfd0, Lfdobj, lambda) # Smooth the data for the first girl hgt1 <- growth$hgtf[,1] # set conv = 0.1 and iterlim=1 to reduce the compute time # required for this test on CRAN; # We would not do this normally. result <- smooth.monotone(age, hgt1, growfdPar, conv=0.1, iterlim=1) # Extract the functional data object and regression # coefficients Wfd <- result$Wfdobj beta <- result$beta # Evaluate the fitted height curve over a fine mesh agefine <- seq(1,18,len=60) hgtfine <- beta[1] + beta[2]*eval.monfd(agefine, Wfd) # Plot the data and the curve plot(age, hgt1, type="p") lines(agefine, hgtfine) # Evaluate the acceleration curve accfine <- beta[2]*eval.monfd(agefine, Wfd, 2) # Plot the acceleration curve plot(agefine, accfine, type="l") lines(c(1,18),c(0,0),lty=4) ## ## using predict.monfd ## hgtfit <- with(result, beta[1]+beta[2]*eval.monfd(argvals, Wfdobj)) hgtfit. <- fitted(result) all.equal(hgtfit, hgtfit.) accfine. <- predict(result, agefine, Lfdobj=2) all.equal(accfine, accfine.) growthResid <- resid(result) all.equal(growthResid, with(result, y-hgtfit.))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.