https://github.com/cran/fda
Raw File
Tip revision: 44d3b3b8e48175030eb1997f07b583e8610571db authored by J. O. Ramsay on 03 October 2008, 00:00:00 UTC
version 2.0.2
Tip revision: 44d3b3b
eval.monfd.Rd
\name{eval.monfd}
\alias{eval.monfd}
\title{
  Values of a Monotone Functional Data Object
}
\description{
Evaluate a monotone functional data object at specified argument values,
or evaluate a derivative of the functional object.
}
\usage{
eval.monfd(evalarg, Wfd, Lfdobj=int2Lfd(0))
}
\arguments{
\item{evalarg}{
a vector of argument values at which the functional data object is to be
evaluated.
}
\item{Wfd}{
a functional data object that defines the monotone function to be
evaluated.  Only univariate functions are permitted.
}
\item{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.
}
}
\value{
a matrix containing the monotone function
values.  The first dimension corresponds to the argument values in
\code{evalarg} and
the second to replications.
}
\details{
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 \code{lsfit}.
The function \code{Wfd} that defines the monotone function is
usually estimated by monotone smoothing function
\code{smooth.monotone.}
}
\seealso{
\code{\link{eval.fd}}, 
\code{\link{eval.posfd}}
}
\examples{

#  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, growfdPar, wgt)
#  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)

}
% docclass is function
\keyword{smooth}
back to top