doGFLars: Group fused Lars segmentation

Description Usage Arguments Details Value Note Author(s) References Examples

Description

High-level function for multivariate fused Lars (GFLars) segmentation

Usage

1
doGFLars(Y, K, stat = NULL, ..., verbose = FALSE)

Arguments

Y

A n*p signal to be segmented

K

The number of change points to find

stat

A vector containing the names or indices of the columns of Y to be segmented

...

Further arguments to be passed to 'segmentByGFLars'

verbose

A logical value: should extra information be output ? Defaults to FALSE.

Details

This function is a wrapper around the lower-level segmentation function segmentByGFLars. It can be run on p-dimensional, piecewise-constant data in order to defined a set of candidate change points. It is recommended to prune this list of candidates using dynamic programming (pruneByDP), combined with a selection of the best number of change points. The jointSeg function provides a convenient wrapper for performing segmentation, pruning and model selection.

For the specific case of DNA copy number data segmentation, see the dedicated wrapper PSSeg.

The default weights √{n/(i*(n-i))} are calibrated as suggested by Bleakley and Vert (2011). Using this calibration, the first breakpoint maximizes the likelihood ratio test (LRT) statistic.

Value

An object of the same structure as the output of segmentByGFLars

Note

This implementation is derived from the MATLAB code by Vert and Bleakley: http://cbio.ensmp.fr/GFLseg.

Author(s)

Morgane Pierre-Jean and Pierre Neuvial

References

Bleakley, K., & Vert, J. P. (2011). The group fused lasso for multiple change-point detection. arXiv preprint arXiv:1106.4199.

Vert, J. P., & Bleakley, K. (2010). Fast detection of multiple change-points shared by many signals using group LARS. Advances in Neural Information Processing Systems, 23, 2343-2351.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
p <- 2
trueK <- 10
sim <- randomProfile(1e4, trueK, 1, p)
Y <- sim$profile
K <- 2*trueK
res <- doGFLars(Y, K)
print(res$bkp)
print(sim$bkp)
plotSeg(Y, res$bkp)

## a toy example with missing values
sim <- randomProfile(1e2, 1, 0.1, 2)
Y <- sim$profile
Y[3:50, 2] <- NA

res <- doGFLars(Y, 10, 2, verbose=TRUE)
print(res$bkp)
print(sim$bkp)
plotSeg(Y, res$bkp)

Example output

 [1] 3830 1836 3829 1579 1574 1613 6772 9636  273 3859 6766 1690 7183 7186  117
[16]  116 3988 4242  114 3827
 [1]  115  273 1574 1837 3209 3830 6778 7080 7186 9636
[1] "optimize LARS :  1"
[1] "optimize LARS :  2"
[1] "optimize LARS :  3"
[1] "optimize LARS :  4"
[1] "optimize LARS :  5"
[1] "optimize LARS :  6"
[1] "optimize LARS :  7"
[1] "optimize LARS :  8"
[1] "optimize LARS :  9"
[1] "optimize LARS :  10"
Warning message:
In doGFLars(Y, 10, 2, verbose = TRUE) :
  Missing values detected. Smoothing will be performed.
 [1] 82 86 88 81 80 56 51 95 96 52
[1] 82

jointseg documentation built on May 2, 2019, 5:20 p.m.