affine.multiscale

Module: affine.multiscale

Inheritance diagram for regreg.affine.multiscale:

digraph inheritancee63cf90c1b { rankdir=LR; size="8.0, 12.0"; "affine.multiscale.multiscale" [URL="#regreg.affine.multiscale.multiscale",fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5)",target="_top",tooltip="An affine transform representing the"]; "regreg.affine.affine_transform" -> "affine.multiscale.multiscale" [arrowsize=0.5,style="setlinewidth(0.5)"]; "regreg.affine.affine_transform" [URL="regreg.affine.html#regreg.affine.affine_transform",fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5)",target="_top"]; }

Class

multiscale

class regreg.affine.multiscale.multiscale(p, minsize=None, slices=[], scaling=None)

Bases: regreg.affine.affine_transform

An affine transform representing the multiscale changepoint transform.

This transform centers the input and then computes the average over all intervals of a minimum size.

__init__(p, minsize=None, slices=[], scaling=None)
Parameters

p : int

Length of signal.

minsize : int

Smallest interval to consider. Defaults to p**(1/3.)

slices : []

A list of intervals to use in the transform. Will be coerced to have dtype([(‘start’, np.int), (‘end’, np.int)])

scaling : np.float((slices.shape))

An optional scaling to apply after computing mean over each interval.

property T
adjoint_map(v)
Parameters

v : np.float(self.output_shape)

Returns

v : np.float(self.input_shape)

affine_map(x)

Apply linear and affine offset to x

Return \(Dx+\alpha\)

Parameters

x : ndarray

array to which to apply transform. Can be 1D or 2D

copy : {True, False}, optional

If True, in situations where return is identical to x, ensure returned value is a copy.

Returns

Dx_a : ndarray

x transformed with linear and offset components

Notes

This routine is subclassed in affine_atom as a matrix multiplications, but could also call FFTs if D is a DFT matrix, in a subclass.

dot(x)

Apply linear part of transform to x. Returns self.linear_map(x) unless x is a transform, in which case it returns the composition.

Parameters

x : ndarray

array to which to apply transform. Can be 1D or 2D

Returns

Dx : ndarray

x transformed with linear component

dtype = dtype([('start', '<i8'), ('end', '<i8')])
form_matrix(slices)

Form a matrix with given slices of multiscale transform.

linear_map(x)

Given a p-vector x compute the average of x - x.mean() over each interval of size greater than self.minsize.

Parameters

x : np.float(self.input_shape)

Returns

v : np.float(self.output_shape)

property ndim
property shape
update_slices(slices, scaling=None)

Change the intervals computed by the multiscale transform.

Parameters

slices : []

List of (i,j) intervals to compute. Will be converted to have dtype([(‘start’, np.int), (‘end’, np.int)])

Functions

regreg.affine.multiscale.SMUCE_stat(M, Z, sigma=None)

Compute multiscale test statistic of Chan and Walther. Used in the SMUCE algorithm and in the multiscale change point algorithm in the square-root LASSO selective inference paper.

Parameters

M : instance of multiscale

Z : np.ndarray

Data on which to compute the statistic.

sigma : float

Noise level. Defaults to np.std(Z).

Notes

M’s scaling is ignored, even if not None.

regreg.affine.multiscale.choose_tuning_parameter(M, ndraw=100, quantile=0.95, sigma=None)

Choose tuning parameter in the SMUCE algorithm and in the multiscale change point algorithm in the square-root LASSO selective inference paper.

Parameters

M : instance of multiscale

ndraw : int

How many Monte Carlo draws.

quantile : float

Which quantile of Monte Carlo draws to choose.

sigma : float

Passed to SMUCE_stat

Notes

M’s scaling is ignored, even if not None.