Description Usage Arguments Details Value References See Also Examples
View source: R/smooth.basisPar.R
Smooth (argvals, y) data with roughness penalty defined by the
remaining arguments. This function acts as a wrapper for those who want
to bypass the step of setting up a functional parameter object before invoking
function smooth.basis
. This function simply does this setup for the
user. See the help file for functions smooth.basis
and fdPar
for further details, and more complete descriptions of the arguments.
1 2 3 4 
argvals 
a set of argument values corresponding to the observations in array

y 
an set of values of curves at discrete sampling points or
argument values. If the set is supplied as a matrix object, the rows must
correspond to argument values and columns to replications, and it will be
assumed that there is only one variable per observation. If

fdobj 
One of the following:

Lfdobj 
either a nonnegative integer or a linear differential operator object. If

lambda 
a nonnegative real number specifying the amount of smoothing to be applied to the estimated functional parameter. 
estimate 
a logical value: if 
penmat 
a roughness penalty matrix. Including this can eliminate the need to compute this matrix over and over again in some types of calculations. 
wtvec 
typically a vector of length 
fdnames 
a list of length 3 containing character vectors of names for the following:

covariates 
the observed values in 
method 
by default the function uses the usual textbook equations for computing
the coefficients of the basis function expansions. But, as in regression
analysis, a price is paid in terms of rounding error for such
computations since they involved crossproducts of basis function
values. Optionally, if 
dfscale 
the generalized crossvalidation or "gcv" criterion that is often used
to determine the size of the smoothing parameter involves the
subtraction of an measue of degrees of freedom from 
1. if(is.null(fdobj))fdobj < create.bspline.basis(argvals). Else if(is.integer(fdobj)) fdobj < create.bspline.basis(argvals, norder = fdobj)
2. fdPar
3. smooth.basis
The output of a call to smooth.basis
, which is an object of
class fdSmooth
, being a list of length 8 with the following
components:
fd 
a functional data object that smooths the data. 
df 
a degrees of freedom measure of the smooth 
gcv 
the value of the generalized crossvalidation or GCV criterion. If there are multiple curves, this is a vector of values, one per curve. If the smooth is multivariate, the result is a matrix of gcv values, with columns corresponding to variables. 
SSE 
the error sums of squares. SSE is a vector or a matrix of the same size as 'gcv'. 
penmat 
the penalty matrix. 
y2cMap 
the matrix mapping the data to the coefficients. 
argvals, y 
input arguments 
Ramsay, James O., and Silverman, Bernard W. (2006), Functional Data Analysis, 2nd ed., Springer, New York.
Ramsay, James O., and Silverman, Bernard W. (2002), Applied Functional Data Analysis, Springer, New York.
Data2fd
,
df2lambda
,
fdPar
,
lambda2df
,
lambda2gcv
,
plot.fd
,
project.basis
,
smooth.basis
,
smooth.fd
,
smooth.monotone
,
smooth.pos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77  ##
## simplest call
##
girlGrowthSm < with(growth, smooth.basisPar(argvals=age, y=hgtf, lambda=0.1))
plot(girlGrowthSm$fd, xlab="age", ylab="height (cm)",
main="Girls in Berkeley Growth Study" )
plot(deriv(girlGrowthSm$fd), xlab="age", ylab="growth rate (cm / year)",
main="Girls in Berkeley Growth Study" )
plot(deriv(girlGrowthSm$fd, 2), xlab="age",
ylab="growth acceleration (cm / year^2)",
main="Girls in Berkeley Growth Study" )
# Undersmoothed with lambda = 0
##
## Another simple call
##
lipSm < smooth.basisPar(liptime, lip, lambda=1e9)$fd
plot(lipSm)
##
## A third example
##
x < seq(1,1,0.02)
y < x + 3*exp(6*x^2) + sin(1:101)/2
# sin not rnorm to make it easier to compare
# results across platforms
# set up a saturated Bspline basis
basisobj101 < create.bspline.basis(x)
fdParobj101 < fdPar(basisobj101, 2, lambda=1)
result101 < smooth.basis(x, y, fdParobj101)
resultP < smooth.basisPar(argvals=x, y=y, fdobj=basisobj101, lambda=1)
all.equal(result101, resultP)
# TRUE
result4 < smooth.basisPar(argvals=x, y=y, fdobj=4, lambda=1)
all.equal(resultP, result4)
# TRUE
result4. < smooth.basisPar(argvals=x, y=y, lambda=1)
all.equal(resultP, result4.)
# TRUE
with(result4, c(df, gcv)) # display df and gcv measures
result4.4 < smooth.basisPar(argvals=x, y=y, lambda=1e4)
with(result4.4, c(df, gcv)) # display df and gcv measures
# less smoothing, more degrees of freedom, better fit
plot(result4.4)
lines(result4, col='green')
lines(result4$fd, col='green') # same as lines(result4, ...)
##
## fdnames?
##
girlGrow12 < with(growth, smooth.basisPar(argvals=age, y=hgtf[, 1:2],
fdnames=c('age', 'girl', 'height'), lambda=0.1) )
girlGrow12. < with(growth, smooth.basisPar(argvals=age, y=hgtf[, 1:2],
fdnames=list(age=age, girl=c('Carol', 'Sally'), value='height'),
lambda = 0.1) )
##
## Fourier basis with harmonic acceleration operator
##
daybasis65 < create.fourier.basis(rangeval=c(0, 365), nbasis=65)
daytemp.fdSmooth < with(CanadianWeather, smooth.basisPar(day.5,
dailyAv[,,"Temperature.C"],
daybasis65, fdnames=list("Day", "Station", "Deg C")) )

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.