Description Usage Arguments Value Note References Examples
pdSplineReg()
performs cubic smoothing spline regression in the space of HPD matrices equipped with the
affine-invariant Riemannian metric through minimization of a penalized regression objective function using a
geometric conjugate gradient descent method as outlined in \insertCiteBA11pdSpecEst and \insertCiteBA11bpdSpecEst.
This is a specific implementation of the more general algorithm in \insertCiteBA11pdSpecEst and \insertCiteBA11bpdSpecEst,
setting the part in the objective function based on the first-order finite geometric differences to zero, such that the solutions
of the regression problem are approximating cubic splines.
1 2 | pdSplineReg(P, f0, lam = 1, Nd, ini_step = 1, max_iter = 100,
eps = 0.001, ...)
|
P |
a (d,d,n)-dimensional array corresponding to a length n sequence of (d, d)-dimensional noisy HPD matrices. |
f0 |
a (d,d,n)-dimensional array corresponding to an initial estimate of the smooth target curve of (d, d)-dimensional HPD matrices. |
lam |
a smoothness penalty, defaults to |
Nd |
a numeric value ( |
ini_step |
initial candidate step size in a backtracking line search based on the Armijo-Goldstein
condition, defaults to |
max_iter |
maximum number of gradient descent iterations, defaults to |
eps |
optional tolerance parameter in gradient descent algorithm. The gradient descent procedure exits if the
absolute difference between consecutive evaluations of the objective function is smaller than |
... |
additional arguments for internal use. |
A list with three components:
f |
a (d, d, N_d)-dimensional array corresponding to a length |
cost |
a numeric vector containing the costs of the objective function at each gradient descent iteration. |
total_iter |
total number of gradient descent iterations. |
This function does not check for positive definiteness of the matrices given as input, and may fail if matrices are close to being singular.
1 2 3 4 5 6 7 8 9 10 11 | ## Not run:
set.seed(2)
P <- rExamples1D(50, example = 'gaussian', noise.level = 0.1)
P.spline <- pdSplineReg(P$P, P$P, lam = 0.5, Nd = 25)
## Examine matrix-component (1,1)
plot((1:50)/50, Re(P$P[1, 1, ]), type = "l", lty = 2) ## noisy observations
lines((1:25)/25, Re(P.spline$f[1, 1, ])) ## estimate
lines((1:50)/50, Re(P$f[1, 1, ]), col = 2, lty = 2) ## smooth target
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.