cpss.em {cpss} | R Documentation |
Detecting changes in exponential family
Description
Detecting changes in exponential family
Usage
cpss.em(
dataset,
family,
size = NULL,
algorithm = "BS",
dist_min = floor(log(n)),
ncps_max = ceiling(n^0.4),
pelt_pen_val = NULL,
pelt_K = 0,
wbs_nintervals = 500,
criterion = "CV",
times = 2
)
Arguments
dataset |
a numeric matrix of dimension |
family |
a character string specifying the underlying distribution. In the current version, detecting changes in binomial (" |
size |
an integer indicating the number of trials only if |
algorithm |
a character string specifying the change-point searching algorithm, one of the following choices: "SN" (segment neighborhood), "BS" (binary segmentation), "WBS" (wild binary segmentation) and "PELT" (pruned exact linear time) algorithms. |
dist_min |
an integer specifying minimum searching distance (length of feasible segments). |
ncps_max |
an integer specifying an upper bound of the number of true change-points. |
pelt_pen_val |
a numeric vector specifying candidate values of the penalty only if |
pelt_K |
a numeric value for pruning adjustment only if |
wbs_nintervals |
an integer specifying the number of random intervals drawn only if |
criterion |
a character string specifying the model selection criterion, "CV" ("cross-validation") or "MS" ("multiple-splitting"). |
times |
an integer specifying how many times of sample-splitting should be performed; It should be 2 if |
Value
cpss.em
returns an object of an S4 class, called "cpss
", which collects data and information required for further change-point analyses and summaries. See cpss.custom
.
References
Killick, R., Fearnhead, P., and Eckley, I. A. (2012). Optimal Detection of Changepoints With a Linear Computational Cost. Journal of the American Statistical Association, 107(500):1590–1598.
Fryzlewicz, P. (2014). Wild binary segmentation for multiple change-point detection. The Annals of Statistics, 42(6): 2243–2281.
See Also
cpss.meanvar
cpss.mean
cpss.var
Examples
library("cpss")
set.seed(666)
n <- 1000
tau <- c(100, 300, 700, 900)
tau_ext <- c(0, tau, n)
theta <- c(1, 0.2, 1, 0.2, 1)
seg_len <- diff(c(0, tau, n))
y <- unlist(lapply(seq(1, length(tau) + 1), function(k) {
rexp(seg_len[k], theta[k])
}))
res <- cpss.em(
y, family = "exp", algorithm = "WBS", ncps_max = 10,
criterion = "MS", times = 10
)
cps(res)
# [1] 100 299 705 901