ESL Algorithm 14.3 (eqs 14.89-14.96): symmetric whitening, then alternate
(a) for each source a penalised Poisson fit of the log tilt g on a binned
grid (14.93-14.94, cubic smoothing spline by IRLS) and (b) the fixed-point
step a_j <- E(z g'(a_j'z)) - E(g”(a_j'z)) a_j followed by symmetric
orthogonalisation.
Usage
morie_esl_prodenica(
X,
penalty = 1e-04,
L = 500,
A0 = NULL,
max_iter = 50,
tol = 1e-09
)
Arguments
- X
Numeric matrix, N by p.
- penalty
Roughness penalty lambda in (14.94).
- L
Grid size.
- A0
Optional starting directions (columns); default the identity.
- max_iter, tol
Stop when 1 - min_j |a_j(old)'a_j(new)| < tol.
Value
Named list: A, sources, unmixing, whitening, mean, negentropy,
negentropy_path, iterations, converged.
References
Hastie, T. & Tibshirani, R. (2003). Independent components
analysis through product density estimation. NIPS 15, 649-656.
Examples
set.seed(1)
S <- cbind(runif(300, -sqrt(3), sqrt(3)), rexp(300) - 1)
morie_esl_prodenica(S %*% rbind(c(1, 0.4), c(0.6, 1)))$A
#> [,1] [,2]
#> [1,] 0.9917112 0.1284868
#> [2,] -0.1284868 0.9917112