pspline.kffobi {pfica} | R Documentation |
P-Spline smoothed functional PCA/ICA
Description
This function is an alternative way of computing the smoothed functional ICA in terms of principal components (see kffobi
). The function further provides smoothed (and non-smoothed) functional PCA estimates. A discrete penalty that measures the roughness of principal factors by summing squared r-order differences between adjacent B-spline coefficients (P-spline penalty) is used; see Aguilera and Aguilera-Morillo (2013) and Eliers and Marx (2021).
Usage
pspline.kffobi(fdx, ncomp = fdx$basis$nbasis, pp = 0, r = 2,
w = c("PCA", "PCA-cor","ZCA", "ZCA-cor","Cholesky"),
pr = c("fdx", "wfdx", "KL", "wKL"),
center = TRUE)
Arguments
fdx |
a functional data object obtained from the fda package. |
ncomp |
number of independent components to compute (must be > 1). |
pp |
the penalty parameter. It can be estimated using leave-one-out cross-validation. |
r |
a number indicating the order of the penalty. |
w |
the whitening procedure. By default |
pr |
the functional data object to project on to the space spanned by the eigenfunctions of the kurtosis kernel function. To compute the independent components, the usual procedure is to use |
center |
a logical value indicating whether the mean function has to be subtracted from each functional observation. |
Value
a list with the following named entries:
PCA.eigv |
a numeric vector giving the eigenvalues of the covariance kernel function. |
PCA.basis |
a functional data object for the eigenfunctions of the covariance kernel function. |
PCA.scores |
a matrix whose column vectors are the principal components. |
ICA.eigv |
a numeric vector giving the eigenvalues of the kurtosis kernel function. |
ICA.eigv |
a numeric vector giving the eigenvalues of the kurtosis kernel function. |
ICA.scores |
a matrix whose column vectors are the projection coefficients for |
wKL |
the whitened principal components expansion whith coefficients in terms of basis functions. |
Author(s)
Marc Vidal, Ana Mª Aguilera
References
Aguilera, A.M. and M.C. Aguilera-Morillo (2013). Penalized PCA approaches for B-spline expansions of smooth functional data. Applied Mathematics and Computation 219(14), 7805–7819, <doi:10.1016/j.amc.2013.02.009>.
Eilers, P. and B. Marx (2021). Practical Smoothing: The Joys of P-splines. Cambridge: Cambridge University Press, <doi:10.1017/9781108610247>.
Vidal, M., M. Rosso and A.M. Aguilera. (2021). Bi-Smoothed Functional Independent Component Analysis for EEG Artifact Removal. Mathematics 9(11), 1243, <doi:10.3390/math9111243>.
See Also
Examples
## Canadian Weather data
library(fda)
arg <- 1:365
Temp <- CanadianWeather$dailyAv[,,1]
B <- create.bspline.basis(rangeval=c(min(arg),max(arg)), nbasis=14)
x <- Data2fd(Temp, argvals = arg, B)
#plot(x) #plot data
ica.fd <- pspline.kffobi(x, 2, pp = 10^4, w="ZCA-cor")
## Whitened data using the two first smoothed principal components
wKL <- ica.fd$wKL
## Plot by region
sc <- ica.fd$ICA.scores
plot(sc[,2], sc[,1], pch = 20, col = factor(CanadianWeather$region),
ylab = "IC 1", xlab = "IC 2")