plot() for change-point-only results by constructing residual and
covariate layers only when detailed output is available.detect_* wrappers for portable built-in
families. Raw AR and VAR preprocessing, pure-AR ARMA/ARIMA routing, rank
transformation, original-coordinate change points/residuals, and public
family/order metadata now match the R and Python contracts.detect_kernel() / detect_kcp() with the same scalar
seed stream, bandwidth fallback, random-feature generation order, default
penalty, and detailed numerical output as R and Python. Random-feature
preprocessing remains outside the mean-family PELT loop.raw_cp_set alongside cp_set.p_response form; multivariate-LM Wald intervals fail clearly
in both languages; and separated-binomial Wald intervals return missing
standard errors instead of unstable language-dependent finite values.
Rank results now report the public rank family and retain original
observations in both languages, while fitted numerical details and
confidence calculations use the same centered ranks.multiple_epochs schedules as native R and standalone C++
extensions. Python rejects callbacks so the shared native detector remains
GIL-free and no callback dispatch is added to performance-sensitive update
paths.detect_ar.d = 0 is identical
to ARMA. The unified likelihood is zero-mean, so include.mean = TRUE is
no longer supported.ARMA(p, 0) calls through the same lagged Gaussian model as
the dedicated AR wrappers in both languages.fastcpd_ts() / fastcpd.ts() compatibility umbrella in
favor of detect() or family-specific wrappers. Python does not expose a
fastcpd_ts counterpart and continues to require the direct APIs.detect_time_series() / detect_ts() umbrella from
the R and Python APIs. Time-series family wrappers now call detect()
directly; the long-standing R fastcpd_ts() / fastcpd.ts() entry points
remain available for compatibility.time_series and ts aliases; use
detect(..., family=...) or a family-specific wrapper instead.fastcpd-r,
fastcpd-py, and fastcpd-cpp, with the combined source maintained in
the private Depot monorepo.detect*() and estimate_variance*() APIs the primary R
implementations. The existing fastcpd*() and variance_*() functions
remain exported compatibility aliases and are not deprecated yet.confint.fastcpd() for confidence intervals on change-point
locations and fitted segment parameters, with bootstrap, profile, and
Wald methods where supported.plot.fastcpd_confint() to visualize confint() results:
change-point intervals as shaded bands over the data and segment
parameter intervals as point ranges.fastcpd.confint() and
CpdResult.confint().<fastcpd/fastcpd.h>) backed by
the existing C++ core, with CMake package metadata and a plain Make
example for non-R consumers.fastcpd_kcp() / fastcpd.kcp(): kernel change-point detection via
random Fourier feature approximation of the RBF kernel, routed through the
PELT mean path.fastcpd_rank() / fastcpd.rank(): distribution-free rank-based
change-point detection; replaces each column with its centred global rank
and detects location shifts via PELT mean.RProgress dependency with a built-in tqdm-format progress bar
(src/fastcpd_progress.h); remove progress from LinkingTo. Rename
the user-facing parameter r.progress → show.progress; default changed
from TRUE to FALSE (progress bar is off by default).#ifndef NO_RCPP split
in src/families/arma.h and src/families/ma.h. Both families now use a
single native C++ path (exact OLS for AR, diffuse Kalman ML + Nelder-Mead
for ARMA/MA) in both R and Python builds, eliminating the runtime call to
stats::arima().garch, lm, binomial, poisson, arma, ar, and
arima to fastcpd.segmentation; all 13 non-custom families now supported.NEWS.md history: fastcpd 0.99.9 (Add small shiny app) corrected
to fastcpd 0.9.9.fastcpd_quantile): robust change-point
detection via pinball loss with IRLS fitting; resistant to outliers unlike
least-squares methods.trim from 0.05 to 0: change points near segment
boundaries are no longer suppressed by default.n reduced from 1501/200/300 to 401/120/150
for faster documentation builds and test runs.macos-13 to macos-latest.glmnet and Matrix from Imports; lasso fitting now uses a
pure C++ coordinate descent implementation with 5-fold cross-validation
for lambda selection, eliminating two heavy runtime dependencies.Matrix::nearPD() with a pure-R eigendecomposition-based
nearest positive-definite projection (nearest_pd_).exponential family to Python package (fastcpd.segmentation.exponential).fastcpd_optim.h and
families/exponential.h to hdrs in src/BUILD.bazel.callr::r() inside microbenchmark with baseline subtraction for fair
large-scale (n = 10^8) algorithm comparison.exponential family (fastcpd_exponential / fastcpd.exponential)
for piecewise-constant rate change detection in exponentially distributed
data.Rcpp::XPtr in
family = "custom", eliminating R-call overhead in the hot PELT/SeGD
loop. All three parameters (cost, cost_gradient, cost_hessian) accept
tagged external pointers alongside R closures; arity is conveyed via
attr(xptr, "fastcpd_cost_arity").ref_fastglm_*, ref_tseries*);
GLM and GARCH fitting now uses internal implementations (FitGlm,
FitGarch) with no external source copies.fastcpd_impl.h from inst/include/ to src/; remove
inst/include/ directory entirely.fastcpd to the top in the README.trim value.variance_estimation allowing users to specify the variance
or covariance matrix if known.fastcpd_impl API for use in other packages.eval = FALSE.lasso.gfpop due to https://github.com/doccstat/fastcpd/issues/10.pruning parameter and replace with convexity_coef = -Inf.well_log.well_log data.winsorize_minval and winsorize_maxval.CptNonPar, gfpop, InspectChangepoint,
jointseg, Rbeast and VARDetect.Note: From now on, MBIC is used as the default penalty selection for
beta parameter.
Add penalty selection criteria using
(p + 1) * log(nrow(data)) / 2(p + 2) * log(nrow(data)) / 2 with adjusted cost
function.(p + 2) * log(nrow(data)) / 2 with adjusted cost function.In the mean time, a numeric value can be passed to beta as well to
explicitly specify the penalty for BIC.
Remove bcp according to
Package ‘bcp’ was removed from the CRAN repository.
Formerly available versions can be obtained from the archive.
Archived on 2024-01-12 as email to the maintainer is undeliverable.
A summary of the most recent check results can be obtained from the check results archive.
Please use the canonical form https://CRAN.R-project.org/package=bcp to link to this page.
interactive() to check if the current R session is interactive.order = c(p, q)
and family "arma".fastcpd.arma / fastcpd_arma for ARMA(p, q) model.beta values.lower and upper parameters to denote the lower and upper bounds of
the parameters.bitcoin and well_log data.fastcpd.ar / fastcpd_ar,
ARIMA(p, d, q) family: fastcpd.arima / fastcpd_arima,
GARCH(p, q) family: fastcpd.garch / fastcpd_garch,
linear regression family: fastcpd.lm / fastcpd_lm,
logistic regression family: fastcpd.binomial / fastcpd_binomial,
poisson regression family: fastcpd.poisson / fastcpd_poisson,
penalized linear regression family: fastcpd.lasso / fastcpd_lasso,
MA(q) model: fastcpd.ma / fastcpd_ma,
mean change: fastcpd.mean / fastcpd_mean,
variance change: fastcpd.variance / fastcpd_variance,
mean or variance change: fastcpd.meanvariance / fastcpd_meanvariance /
fastcpd.mv / fastcpd_mv."gaussian" family with "lm".vanilla_percentage parameter.beta is updated but the old beta is still in use.beta updating into get_segment_statistics.forecast package for ARIMA model.fGarch package for GARCH model.&& around || by parentheses.cost_function_wrapper.fastcpd.ts / fastcpd_ts for time series data.lasso.vanilla_percentage parameter for lasso.fastcpd.ts.cp_only = TRUE default when the family is "custom".cp_only = TRUE and fastcpd_ts.ggplot2 is not installed.Deal with the following:
Due to the excessive calls to `glmnet` between R and C++,
it is better to use the R implementation of `fastcpd` for lasso.
Separate the use of internal C++ cost functions and user-defined R cost functions.
Add Codecov Icicle plot in README.
Remove cost_optim and cost_update from RcppExports.R.
Estimate the variance in the "gaussian" family dynamically.
fastcpd definition.length(formals(cost)) to check the number of arguments of
cost function.family.ggplot2 is not installed.forecast example in the tests.fastcpd documentation.formula.Add suggested package checking in tests.
Try to solve the amazing clang-ASAN error on CRAN:
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/data/gannet/ripley/R/test-clang/mvtnorm/libs/mvtnorm.so':
/data/gannet/ripley/R/test-clang/mvtnorm/libs/mvtnorm.so: undefined symbol: _ZNK7Fortran7runtime10Terminator5CrashEPKcz
Calls: <Anonymous> ... asNamespace -> loadNamespace -> library.dynam -> dyn.load
fastcpd method.R CMD Rd2pdf . --output=man/figures/manual.pdf --force --no-preview from
stackoverflow.glmnet.vanilla_percentage
parameter.fastcpd parameters updating in C++.theta_hat, theta_sum and
hessian.vanilla_percentage to denote the method switching between
vanilla PETL and SeN.cp_only parameter.fastcpd.fastcpd.lfactorial.pkgdown generated webpage.fastcpd.fastcpd class.thetas slot in fastcpd class.cp_only to FALSE.summary method.fastcpd function.NEWS.md file to track changes to the package.