Description Usage Arguments Value Adjustment References See Also Examples
View source: R/outliergram.R View source: R/outliergram.R
This function performs the outliergram of a univariate functional dataset, possibly with an adjustment of the true positive rate of outliers discovered under assumption of gaussianity.
1 2 3 
fData 
the univariate functional dataset whose outliergram has to be determined. 
MBD_data 
a vector containing the MBD for each element of the dataset. If missing, MBDs are computed. 
MEI_data 
a vector containing the MEI for each element of the dataset. If not not provided, MEIs are computed. 
p_check 
percentage of observations with either low or high MEI to be checked for outliers in the secondary step (shift towards the center of the dataset). 
Fvalue 
the F value to be used in the procedure that finds the
shape outliers by looking at the lower parabolic limit in the outliergram.
Default is 
adjust 
either

display 
either a logical value indicating wether you want the outliergram to be displayed, or the number of the graphical device where you want the outliergram to be displayed. 
xlab 
a list of two labels to use on the x axis when displaying the functional dataset and the outliergram 
ylab 
a list of two labels to use on the y axis when displaying the functional dataset and the outliergram; 
main 
a list of two titles to be used on the plot of the functional dataset and the outliergram; 
... 
additional graphical parameters to be used only in the plot of the functional dataset 
Even when used graphically to plot the outliergram, the function returns a list containing:
Fvalue
: the value of the parameter F used;
d
: the vector of values of the parameter d for each observation
(distance to the parabolic border of the outliergram);
ID_outliers
: the vector of observations id corresponding to outliers.
When the adjustment option is selected, the value of F is optimised for
the univariate functional dataset provided with fData
. In practice,
a number adjust$N_trials
of times a synthetic population
(of size adjust$trial_size
with the same covariance (robustly
estimated from data) and centerline as fData
is simulated without
outliers and each time an optimised value F_i is computed so that a
given proportion (adjust$TPR
) of observations is flagged as outliers.
The final value of F
for the outliergram is determined as an average
of F_1, F_2, …, F_{N_{trials}}. At each time step the optimisation
problem is solved using stats::uniroot
(Brent's method).
ArribasGil, A., and Romo, J. (2014). Shape outlier detection and visualization for functional data: the outliergram, Biostatistics, 15(4), 603619.
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  set.seed( 1618 )
N = 200
P = 200
N_extra = 4
grid = seq( 0, 1, length.out = P )
Cov = exp_cov_function( grid, alpha = 0.2, beta = 0.8 )
Data = generate_gauss_fdata( N,
centerline = sin( 4 * pi * grid ),
Cov = Cov )
Data_extra = array( 0, dim = c( N_extra, P ) )
Data_extra[ 1, ] = generate_gauss_fdata( 1,
sin( 4 * pi * grid + pi / 2 ),
Cov = Cov )
Data_extra[ 2, ] = generate_gauss_fdata( 1,
sin( 4 * pi * grid  pi / 2 ),
Cov = Cov )
Data_extra[ 3, ] = generate_gauss_fdata( 1,
sin( 4 * pi * grid + pi/ 3 ),
Cov = Cov )
Data_extra[ 4, ] = generate_gauss_fdata( 1,
sin( 4 * pi * grid  pi / 3),
Cov = Cov )
Data = rbind( Data, Data_extra )
fD = fData( grid, Data )
outliergram( fD, display = TRUE )
outliergram( fD, Fvalue = 2.5, display = TRUE )
## Not run:
outliergram( fD,
adjust = list( N_trials = 10,
trial_size = 5 * nrow( Data ),
TPR = 0.01,
VERBOSE = FALSE ),
display = TRUE )
## End(Not run)

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