eval.monfd {fda} | R Documentation |
Evaluate a monotone functional data object at specified argument values, or evaluate a derivative of the functional object.
eval.monfd(evalarg, Wfd, Lfdobj=int2Lfd(0))
evalarg |
a vector of argument values at which the functional data object is to be evaluated. |
Wfd |
a functional data object that defines the monotone function to be evaluated. Only univariate functions are permitted. |
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. |
A monotone function data object $h(t)$ is defined by
$h(t) = [D^{-1} exp Wfd](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 Wfd
that defines the monotone function is
usually estimated by monotone smoothing function
smooth.monotone.
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 <- 31 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) # Set up wgt vector wgt <- rep(1,nage) # Smooth the data for the first girl hgt1 = growth$hgtf[,1] result <- smooth.monotone(age, hgt1, wgt, growfdPar) # 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=101) 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)