| eval.fd {fda} | R Documentation |
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.
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, ...)
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
|
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.
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.
Soren Hosgaard wrote an initial version of predict.fdSmooth,
fitted.fdSmooth, and residuals.fdSmooth.
getbasismatrix,
eval.bifd,
eval.penalty,
eval.monfd,
eval.posfd
##
## 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 <- data2fd(CanadianWeather$dailyAv[,,"Temperature.C"],
day.5, daybasis)
# 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')
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')
all.equal(pred.2, pred.2.)
##
## predict.fdSmooth
##
lipSm9 <- smooth.basisPar(liptime, lip, lambda=1e-9)
plot(lipSm9)
pred.lipSm9 <- predict(lipSm9)
all.equal(pred.lipSm9, fitted(lipSm9))
resid.lipSm9 <- resid(lipSm9)
all.equal(resid.lipSm9, residuals(lipSm9))