jade_admm: Fit JADE

Description Usage Arguments Value

Description

This is the main function in the jadeTF package. It fits JADE by minimizing

∑_i=1^K ( n_i/2 || A_i y_i - θ_i ||_2^2 + λ_i || D θ_i||_1) + γ ∑_{j < l}|| W_jl (θ_j - θ_l) ||_1

Usage

1
2
3
4
5
6
7
jade_admm(y, gamma, pos = NULL, lambda = NULL, sample.size = NULL,
  ord = 2, sds = NULL, fit.var = NULL, var.wts = NULL,
  subset.wts = NULL, theta0 = NULL, u.alpha0 = NULL, u.beta0 = NULL,
  verbose = FALSE, tol = 0.001, max.it = 1000, cv.metric = c("mse",
  "abs", "pois"), rho.alpha = NULL, rho.beta = 1, adjust.rho.alpha = TRUE,
  fix.rho.after = 500, tau.decr = 2, tau.incr = 2, mu = 10,
  e.rel = 1e-04, e.abs = 1e-08)

Arguments

y

Data matrix of size p x K. May contain NA values but may not contain rows which are all NA.

gamma

Fusion penalty.

pos

Position vector of length p. If missing will use 1:p.

lambda

Smoothing penalty vecor of length K. If not provided, lambda will be chosen by cross validation.

sample.size

Vector of sample sizes of length K. If missing sample sizes are assumed to be 1.

ord

Order of polynomial to fit. May be 0, 1, or 2.

sds

Matrix of estimated standard deviations of size p x K. These are the inverse of the diagonal elements of A_i. Only the relative sizes of sds is important.

fit.var

Matrix of size p x K of estimated variance of trendfiltering fits. This will be used to construct the pairwise weight matrices W. Currently this is only supported for K=2. fit.var can be estimated by bootstrapping. See bs_var_tf.

var.wts

If fit.var is not provided, the diagonal elements of W may be specified here. Since pairwise weights are currently only allowed for K=2, var.wts must be a vector of length p.

subset.wts

This option can be used to obtain a de-biased fit with the γ penalty only applied to pairs of points previously determined to be fused. It should be a list of lists of the same format as the output of get_sep. Elements are vectors of length p of 0s and 1s with 0 indicating that the pair of points should not be penalized.

theta0,u.alpha0,u.beta0

Starting values for θ and the dual variables. If a solution has been found for a nearby value of γ using these values can improve convergence time. If not provided the solution at γ = 0 is used.

verbose

Be chattier.

tol

Tolerance for declaring points separated. Separation can be recalculated with a different value of tol using get_sep.

max.it

Maximum number of iterations.

cv.metric

Metric to use for selection of lambda - can be "mse"(mean squared error), "abs"(absolute value), or "pois"(Poisson).

rho.alpha,rho.beta

ADMM step sizes. rho.alpha has length K and rho.beta is a constant. Change with caution.

adjust.rho.alpha

Adaptively change rho.alpha. This does not seem to help so the default is FALSE.

tau.incr,tau.decr,mu

Parameters for adjusting step size. Change with caution.

e.rel,e.abs

Parameters for determining convergence. Change with caution.

Value

A jade_tf object. This really just a list with values including

fits

A p x K matrix of solutions.

n

Number of iterations to convergence

beta,alpha

See paper.

u.alphau.beta

Dual variables. See paper.

sep

List of lists giving separation. See get_sep

As well as all of the original parameters.


jean997/jadeTF documentation built on May 18, 2019, 11:44 p.m.