cvpcplus: Tuning parameter selection by crossvalidation

cvpcplusR Documentation

Tuning parameter selection by crossvalidation

Description

Selects the tuning parameters, bandwidth and the penalty lambda, of the PCpluS estimator F. Pein (2021). The values obtained can be used in the estimator pcplus.

Usage

cv.pcplus(y, bandwidth, lambda, nbandwidth = 30L, nlambda = 30L,
          lambda.min.ratio = 0.01, sd = NULL, thresh = 1e-7, maxit = 1e5L)

Arguments

y

a numeric vector containing the observations, only finite values are allowed

bandwidth

a numeric vector specifying possible values for the bandwidth of the kernel smoother; each entry must be between 2 / length(n) and 0.25 or Inf, smaller values are replaced by 2 / n and larger by Inf with a warning; see F. Pein (2021) for an interpretation of bandwidth == Inf. If missing an exponential grid of length nbandwidth will be used

lambda

a decreasing sequence of numerics specifying possible values for the penalty penalty of the fused lasso; each value must be positive. If missing an exponential grid of length nlambda is used

nbandwidth

a single integer giving the length of the grid for bandwidth; ignored if bandwidth is given

nlambda

a single integer giving the length of the grid for lambda; ignored if lambda is given

lambda.min.ratio

a single numeric between 0 and 1 speciyfing the range of the grid for lambda; ignored if lambda is given. More precisely, for each bandwdith value the largest value of the grid is chosen such that no changes are found and the smallest value is the largest value times lambda.min.ratio

sd

a single positive value giving the standard deviation of the observations; may be NULL, in which case a robust estimator is used

thresh

a single positive numeric value giving a convergence threshold for coordinate descent. Each inner coordinate-descent loop continues until the maximum change in the objective after any coefficient update is less than thresh times the null deviance

maxit

a single positive integer giving the maximum number of passes over the data for all lambda values

Value

a list containing the entries lambda and bandwidth giving the best parameter for the tuning parameters. Both can be passed directly to pcplus. Note that lambda is a decaying sequence instead of a single value. This improves the runtime of the estimator. The last value is the suggested tuning parameter. Furthermoore, it has the entries cv with the loss for the selected parameters, bandwidths with the grid of bandwidths used, and cvs with the loss for all bandwidths.

References

Pein, F. (2021). Change-point regression with a smooth additive disturbance. arXiv preprint arXiv:2112.03878.

See Also

pcplus

Examples

library(PCpluS)
set.seed(1)
y <- c(rnorm(125), rnorm(125, 3)) + sin(2 * pi * 1:250 / 250)

CV <- cv.pcplus(y)
ret <- pcplus(y, lambda = CV$lambda, bandwidth = CV$bandwidth)

plot(y, pch = 16)
lines(ret$est, col = "red")
abline(v = ret$cps)

PCpluS documentation built on April 4, 2025, 2:14 a.m.

Related to cvpcplus in PCpluS...