Description Usage Arguments Details Value Side Effects See Also Examples
Plot either functional data observations 'x' with a fit 'fdobj' or residuals from the fit.
This function is useful for assessing how well a functional data object fits the actual discrete data.
The default is to make one plot per functional observation with fit if residual is FALSE and superimposed lines if residual==TRUE.
With multiple plots, the system waits to confirm a desire to move to the next page unless ask==FALSE.
1 2 3 4 5 6 7 8 9 10 11 | plotfit.fd(y, argvals, fdobj, rng = NULL, index = NULL,
nfine = 101, residual = FALSE, sortwrd = FALSE, titles=NULL,
ylim=NULL, ask=TRUE, type=c("p", "l")[1+residual],
xlab=NULL, ylab=NULL, sub=NULL, col=1:9, lty=1:9, lwd=1,
cex.pch=1, axes=NULL, ...)
plotfit.fdSmooth(y, argvals, fdSm, rng = NULL, index = NULL,
nfine = 101, residual = FALSE, sortwrd = FALSE, titles=NULL,
ylim=NULL, ask=TRUE, type=c("p", "l")[1+residual],
xlab=NULL, ylab=NULL, sub=NULL, col=1:9, lty=1:9, lwd=1,
cex.pch=1, axes=NULL, ...)
|
y |
a vector, matrix or array containing the discrete observations used to estimate the functional data object. |
argvals |
a vector containing the argument values corresponding to the first
dimension of |
fdobj |
a functional data object estimated from the data. |
fdSm |
an object of class |
rng |
a vector of length 2 specifying the limits for the horizontal axis. This must be a subset of fdobj[['basis']][['rangeval']], which is the default. |
index |
a set of indices of functions if only a subset of the observations
are to be plotted. Subsetting can also be achieved by subsetting
|
nfine |
the number of argument values used to define the plot of the functional data object. This may need to be increased if the functions have a great deal of fine detail. |
residual |
a logical variable: if |
sortwrd |
a logical variable: if |
titles |
a vector containing strings that are titles for each observation. |
ylim |
a numeric vector of length 2 giving the y axis limits; see 'par'. |
ask |
If TRUE and if 'y' has more levels than the max length of col, lty, lwd and cex.pch, the user must confirm page change before the next plot will be created. |
type |
type of plot desired, as described with |
xlab |
x axis label. |
ylab |
Character vector of y axis labels. If(residual), ylab defaults to 'Residuals', else to varnames derived from names(fdnames[[3]] or fdnames[[3]] or dimnames(y)[[3]]. |
sub |
subtitle under the x axis label. Defaults to the RMS residual from the smooth. |
col, lty, lwd, cex.pch |
Numeric or character vectors specifying the color (col), line type (lty), line width (lwd) and size of plotted character symbols (cex.pch) of the data representation on the plot. If ask==TRUE, the length of the longest of these determines the number of levels of the array 'x' in each plot before asking the user to acknowledge a desire to change to the next page. Each of these is replicated to that length, so col[i] is used for x[,i] (if x is 2 dimensional), with line type and width controlled by lty[i] and lwd[i], respectively. If ask==FALSE, these are all replicated to length = the number of plots to be superimposed. For more information on alternative values for these paramters, see
'col', 'lty', 'lwd', or 'cex' with |
axes |
Either a logical or a list or
|
... |
additional arguments such as axis labels that may be used with other
|
plotfit
plots discrete data along with a functional data object
for fitting the data. It is designed to be used after something like
data2fd
, smooth.fd
, smooth.basis
or
smoothe.basisPar
to check the fit of the data offered by the
fd
object.
plotfit.fdSmooth
calls plotfit
for its 'fd' component.
The plot can be restricted to a subset of observations (i.e., second
dimension of y
) or variables (i.e., third dimension of
y
) by providing y
with the dimnames for its second and
third dimensions matching a subset of the dimnames of fdobj[['coef']]
(for plotfit.fd
or fdSm[['fdobj']][['coef']] for
plotfit.fdSmooth
). If only one observation or variable is to
be plotted, y
must include 'drop = TRUE', as, e.g., y[, 2, 3,
drop=TRUE]. If y
or fdobj[['coef']] does not have dimnames on
its second or third dimension, subsetting is acheived by taking the
first few colums so the second or third dimensions match. This is
acheived using checkDims3(y, fdobj[['coef']], defaultNames =
fdobj[['fdnames']]]).
A matrix of mean square deviations from predicted is returned invisibly. If fdobj[["coefs"]] is a 3-dimensional array, this is a matrix of dimensions equal to the last two dimensions of fdobj[["coefs"]]. This will typically be the case when x is also a 3-dimensional array with the last two dimensions matching those of fdobj[["coefs"]]. The second dimension is typically replications and the third different variables.
If x and fobj[["coefs"]] are vectors or 2-dimensional arrays, they are padded to three dimensions, and then MSE is computed as a matrix with the second dimension = 1; if x and fobj[["coefs"]] are vectors, the first dimension of the returned matrix will also be 1.
a plot of the the data 'x' with the function or the deviations between observed and predicted, depending on whether residual is FALSE or TRUE.
plot
,
plot.fd
,
lines.fd
plot.fdSmooth
,
lines.fdSmooth
par
data2fd
smooth.fd
smooth.basis
smooth.basisPar
checkDims3
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 | daybasis65 <- create.fourier.basis(c(0, 365), 65,
axes=list("axesIntervals"))
daytempfd <- with(CanadianWeather, data2fd(
dailyAv[,,"Temperature.C"], day.5,
daybasis65, argnames=list("Day", "Station", "Deg C")) )
with(CanadianWeather, plotfit.fd(dailyAv[, , "Temperature.C"],
argvals= day.5, daytempfd, index=1, titles=place) )
# Default ylab = daytempfd[['fdnames']]
with(CanadianWeather, plotfit.fd(dailyAv[, , "Temperature.C",
drop=FALSE], argvals= day.5, daytempfd, index=1, titles=place) )
# Better: ylab = dimnames(y)[[3]]
## Not run:
# The following pauses to request page changes.
# (Without 'dontrun', the package build process
# might encounter problems with the par(ask=TRUE)
# feature.)
with(CanadianWeather, plotfit.fd(
dailyAv[,, "Temperature.C"], day.5,
daytempfd, ask=TRUE) )
## End(Not run)
# If you want only the fitted functions, use plot(daytempfd)
# To plot only a single fit vs. observations, use index
# to request which one you want.
op <- par(mfrow=c(2,1), xpd=NA, bty="n")
# xpd=NA: clip lines to the device region,
# not the plot or figure region
# bty="n": Do not draw boxes around the plots.
ylim <- range(CanadianWeather$dailyAv[,,"Temperature.C"])
# Force the two plots to have the same scale
with(CanadianWeather, plotfit.fd(dailyAv[,,"Temperature.C"], day.5,
daytempfd, index=2, titles=place, ylim=ylim) )
with(CanadianWeather, plotfit.fd(dailyAv[,,"Temperature.C"], day.5,
daytempfd, index=35, titles=place, ylim=ylim) )
par(op)
# plot residuals
with(CanadianWeather, plotfit.fd(dailyAv[, , "Temperature.C"],
day.5, daytempfd, residual=TRUE) )
# Can't read this, so try with 2 lines per page with ask=TRUE,
# and limiting length(col), length(lty), etc. <=2
## Not run:
with(CanadianWeather, plotfit.fd(
dailyAv[,,"Temperature.C"], day.5,
daytempfd, residual=TRUE, col=1:2, lty=1, ask=TRUE) )
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.