The function implements a vector-valued version the propagation separation approach that uses patches instead of individuel voxels for comparisons in parameter space. Functionality is analog to function vaws. Using patches allows for an improved handling of locally smooth functions and in 2D and 3D for improved smoothness of discontinuities at the expense of increased computing time.

vpaws(y, kstar = 16, sigma2 = 1, invcov = NULL, mask = NULL, scorr = 0, spmin = 0.25,
      ladjust = 1, wghts = NULL, u = NULL, patchsize = 1)
vpawscov2(y, kstar = 16, invcov = NULL, mask = NULL, scorr = 0, spmin = 0.25,
      lambda = NULL, ladjust = 1, wghts = NULL, patchsize = 1,
      data = NULL, verbose = TRUE)

Arguments

y

y can be a full array of vector valued data, or, if mask is provided, be a matrix with columns corresponding to points/pixel/voxel within the mask. In the first case dim(y) determines the dimensionality and extend of the grid design, in the second case tis information is obtained from the dimensions of mask. the first component varies over components of the response vector.

kstar

maximal number of steps to employ. Determines maximal bandwidth.

sigma2

specifies a homogeneous error variance.

invcov

array (or matrix) of voxelwise inverse covariance matrixes, first index corresponds to upper diagonal inverse covariance matrix.

mask

logical mask. All computations are restrikted to design poins within the mask.

scorr

The vector scorr allows to specify a first order correlations of the noise for each coordinate direction, defaults to 0 (no correlation).

spmin

determines the form (size of the plateau) in the adaptation kernel. Not to be changed by the user.

ladjust

factor to increase the default value of lambda

wghts

wghts specifies the diagonal elements of a weight matrix to adjust for different distances between grid-points in different coordinate directions, i.e. allows to define a more appropriate metric in the design space.

u

a "true" value of the regression function, may be provided to report risks at each iteration. This can be used to test the propagation condition with u=0

patchsize

positive integer defining the size of patches. Number of grid points within the patch is (2*patchsize+1)^d with d denoting the dimensionality of the design.

lambda

explicit value of lambda

data

optional vector-valued images to be smoothed using the weighting scheme of the last step

verbose

logical: provide information on progress.

Details

see vaws. Parameter y The procedure is supposed to produce superior results if the assumption of a local constant image is violated or if smooothness of discontinuities is desired.

Function vpawscov2 is intended for internal use in package qMRI only.

Value

function vpaws returns returns an object of class aws with slots

y = "numeric"

y

dy = "numeric"

dim(y)

x = "numeric"

numeric(0)

ni = "integer"

integer(0)

mask = "logical"

logical(0)

theta = "numeric"

Estimates of regression function, length: length(y)

hseq = "numeric"

sequence of bandwidths employed

mae = "numeric"

Mean absolute error for each iteration step if u was specified, numeric(0) else

psnr = "numeric"

Peak signal-to-noise ratio for each iteration step if u was specified, numeric(0) else

var = "numeric"

approx. variance of the estimates of the regression function. Please note that this does not reflect variability due to randomness of weights.Currently also uses factor 1/ni instead of the correct sum(wij^2)/ni^2

xmin = "numeric"

numeric(0)

xmax = "numeric"

numeric(0)

wghts = "numeric"

numeric(0), ratio of distances wghts[-1]/wghts[1]

degree = "integer"

0

hmax = "numeric"

effective hmax

sigma2 = "numeric"

provided or estimated error variance

scorr = "numeric"

scorr

family = "character"

family

shape = "numeric"

shape

lkern = "integer"

integer code for lkern, 1="Plateau", 2="Triangle", 3="Quadratic", 4="Cubic", 5="Gaussian"

lambda = "numeric"

effective value of lambda

ladjust = "numeric"

effective value of ladjust

aws = "logical"

aws

memory = "logical"

memory

homogen = "logical"

homogen

earlystop = "logical"

FALSE

varmodel = "character"

"Constant"

vcoef = "numeric"

numeric(0)

call = "function"

the arguments of the call to aws

If y contained only information (condensed data) for positions within a mask, then the returned object only contains results for these positions.

References

J. Polzehl, K. Tabelow (2019). Magnetic Resonance Brain Imaging: Modeling and Data Analysis Using R. Springer, Use R! series. Appendix A. Doi:10.1007/978-3-030-29184-6.

J. Polzehl, K. Papafitsoros, K. Tabelow. Patch-wise adaptive weights smoothing, Preprint no. 2520, WIAS, Berlin, 2018, DOI 10.20347/WIAS.PREPRINT.2520. (to appear in Journal of Statistical Software).

Author

Joerg Polzehl, polzehl@wias-berlin.de, http://www.wias-berlin.de/people/polzehl/

Note

use setCores='number of threads' to enable parallel execution.

See also

See also vaws, lpaws, vawscov,link{awsdata}

Examples

if (FALSE) {
setCores(2)
y <- array(rnorm(4*64^3),c(4,64,64,64))
yhat <- vpaws(y,kstar=20)
}