Learn R Programming

fda (version 2.2.5)

fbplot: Functional Boxplots

Description

Produces functional boxplots or enhanced functional boxplots of the given functional data. It can also be used to carry out functional data ordering based on band depth.

Usage

fbplot(fit, x = NULL, method = "MBD", depth = NULL, plot = TRUE, 
	 prob = 0.5, color = 6, outliercol = 2, barcol = 4, fullout=FALSE, 
   factor = 1.5, ...)

Arguments

fit
either a functional data object or a p-by-n data matrix where n is the number of curves, and p is the number of evaluation points.
x
evaluation points of the curves. Defaults to 101 equally spaced points on the range of fit if fit is a functional data object or to 1:p where p is the number of x coordinates if fit is a data matrix.
method
the method to be used to compute band depth. Can be one of "BD2", "BD3", "MBD" or "Both" with a default of "MBD". See also details.
depth
a vector giving band depths of curves. If missing, band depth computation is conducted.
plot
logical. If TRUE (the default) then a functional boxplot is produced. If not, band depth and outliers are returned.
prob
a vector giving the probabilities of central regions in a decreasing order, then an enhanced functional boxplot is produced. Defaults to be 0.5 and a functional boxplot is plotted.
color
a vector giving the colors of central regions from light to dark for an enhanced functional boxplot. Defaults to be magenta for a functional boxplot.
outliercol
color of outlying curves. Defaults to be red.
barcol
color of bars in a functional boxplot. Defaults to be blue.
fullout
logical for plotting outlying curves. If FALSE (the default) then only the part outside the box is plotted. If TRUE, complete outling curves are plotted.
factor
the constant factor to inflate the middle box and determine fences for outliers. Defaults to be 1.5 as in a classical boxplot.
...
additional plotting arguments

Value

  • depthband depths of given curves.
  • outpointcolumn indices of detected outliers.

Details

For functional data, the band depth (BD) or modifed band depth (MBD) allows for ordering a sample of curves from the center outwards and, thus, introduces a measure to define functional quantiles and the centrality or outlyingness of an observation. A smaller rank is associated with a more central position with respect to the sample curves. "BD2" uses two curves to determine a band and "BD3" uses three curves. BD usually provides many ties (curves have the same depth values), but MBD does not. The method "Both" uses BD2 first and then uses MBD to break ties.

References

Sun, Y., and Genton, M. G. (2011), "Functional boxplots,"

Examples

Run this code
#generate 50 random curves with some covariance structure
#model 1 without outliers
cov.fun=function(d,k,c,mu){
        k*exp(-c*d^mu)
}
n=50
p=30
t=seq(0,1,len=p)
d=dist(t,upper=TRUE,diag=TRUE)
d.matrix=as.matrix(d)
#covariance function in time
t.cov=cov.fun(d.matrix,1,1,1)
# Cholesky Decomposition
L=chol(t.cov)
mu=4*t
e=matrix(rnorm(n*p),p,n)
y=mu+t(L)
#functional boxplot
fbplot(y,method='MBD',ylim=c(-11,15))

#model 2 with outliers
#magnitude
k=6
#randomly introduce outliers
C=rbinom(n,1,0.1)
s=2*rbinom(n,1,0.5)-1
cs.m=matrix(C*s,p,n,byrow=TRUE)

e=matrix(rnorm(n*p),p,n)
y=mu+t(L)%*%e+k*cs.m

#functional boxplot
fbplot(y,method='MBD',ylim=c(-11,15))

Run the code above in your browser using DataLab