Learn R Programming

fda (version 2.2.7)

eval.fd: Values of a Functional Data Object

Description

Evaluate a functional data object at specified argument values, or evaluate a derivative or the result of applying a linear differential operator to the functional object.

Usage

eval.fd(evalarg, fdobj, Lfdobj=0)
## S3 method for class 'fd':
predict(object, newdata=NULL, Lfdobj=0, ...)
## S3 method for class 'fdPar':
predict(object, newdata=NULL, Lfdobj=0, ...)
## S3 method for class 'fdSmooth':
predict(object, newdata=NULL, Lfdobj=0, ...)
## S3 method for class 'fdSmooth':
fitted(object, ...)
## S3 method for class 'fdSmooth':
residuals(object, ...)

Arguments

evalarg, newdata
a vector of argument values at which the functional data object is to be evaluated.
fdobj
a functional data object to be evaluated.
Lfdobj
either a nonnegative integer or a linear differential operator object. If present, the derivative or the value of applying the operator is evaluated rather than the functions themselves.
object
an object of class fd
...
optional arguments for predict, not currently used

Value

  • an array of 2 or 3 dimensions containing the function values. The first dimension corresponds to the argument values in evalarg, the second to replications, and the third if present to functions.

Details

eval.fd evaluates Lfdobj of fdobj at evalarg. predict.fd is a convenience wrapper for eval.fd. If newdata is NULL and fdobj[['basis']][['type']] is bspline, newdata = unique(knots(fdojb,interior=FALSE)); otherwise, newdata = fdobj[['basis']][['rangeval']].

predict.fdSmooth, fitted.fdSmooth and residuals.fdSmooth are other wrapper for eval.fd.

See Also

getbasismatrix, eval.bifd, eval.penalty, eval.monfd, eval.posfd

Examples

Run this code
##
## eval.fd
##
#    set up the fourier basis
daybasis <- create.fourier.basis(c(0, 365), nbasis=65)
#  Make temperature fd object
#  Temperature data are in 12 by 365 matrix tempav
#  See analyses of weather data.
#  Set up sampling points at mid days
#  Convert the data to a functional data object
tempfd <- smooth.basis(day.5,  CanadianWeather$dailyAv[,,"Temperature.C"],
                       daybasis)$fd
#   set up the harmonic acceleration operator
Lbasis  <- create.constant.basis(c(0, 365))
Lcoef   <- matrix(c(0,(2*pi/365)^2,0),1,3)
bfdobj  <- fd(Lcoef,Lbasis)
bwtlist <- fd2list(bfdobj)
harmaccelLfd <- Lfd(3, bwtlist)
#   evaluate the value of the harmonic acceleration
#   operator at the sampling points
Ltempmat <- eval.fd(day.5, tempfd, harmaccelLfd)
#  Plot the values of this operator
matplot(day.5, Ltempmat, type="l")

##
## predict.fd
##
predict(tempfd) # end points only at 35 locations
str(predict(tempfd, day.5)) # 365 x 35 matrix
str(predict(tempfd, day.5, harmaccelLfd))

# cublic splie with knots at 0, .5, 1
bspl3 <- create.bspline.basis(c(0, .5, 1))
plot(bspl3) # 5 bases
fd.bspl3 <- fd(c(0, 0, 1, 0, 0), bspl3)
pred3 <- predict(fd.bspl3)

pred3. <- matrix(c(0, .5, 0), 3)
dimnames(pred3.) <- list(NULL, 'reps 1')
stopifnot(
all.equal(pred3, pred3.)
)

pred.2 <- predict(fd.bspl3, c(.2, .8))

pred.2. <- matrix(.176, 2, 1)
dimnames(pred.2.) <- list(NULL, 'reps 1')
stopifnot(
all.equal(pred.2, pred.2.)
)

##
## predict.fdSmooth
##
lipSm9 <- smooth.basisPar(liptime, lip, lambda=1e-9)$fd
plot(lipSm9)

Run the code above in your browser using DataLab