pca.ct {ctmva} | R Documentation |
Continuous-time principal component analysis
Description
A continuous-time version of principal component analysis.
Usage
pca.ct(fdobj, cor = FALSE, common_trend = FALSE)
Arguments
fdobj |
continuous-time multivariate data set of class |
cor |
logical: use correlation matrix if |
common_trend |
logical: Should the curves be centered with respect to the mean function?
Defaults to |
Value
Returns a list including:
var |
variances of the principal components. |
loadings |
the matrix of loadings (i.e., its columns are the eigenvectors of the continuous-time covariance). |
scorefd |
score functions. |
Author(s)
Biplab Paul <paul.biplab497@gmail.com> and Philip Tzvi Reiss <reiss@stat.haifa.ac.il>
See Also
cov.ct
; princomp
, for the classical version
Examples
## Not run:
# Data for one session from a classic EEG data set
require(fda)
require(eegkit)
data(eegdata)
data(eegcoord)
longdat <- subset(eegdata, subject=="co2a0000369" & trial==0)
widedat <- reshape(longdat, direction="wide", drop=c("subject","group","condition","trial"),
v.names="voltage",idvar="channel")
# Convert time series for 64 channels to a functional data object
bsb <- create.bspline.basis(c(0,255),nbasis=30)
fdo <- Data2fd(argvals=0:255, y=t(as.matrix(widedat[,-1])), basisobj=bsb)
plot(fdo)
# Now do PCA and display first loadings for 3 PC's,
# along with percent variance explained by each
pcc <- pca.ct(fdo)
pve <- 100*pcc$var/sum(pcc$var)
par(mfrow=c(1,3))
cidx <- match(widedat[,1],rownames(eegcoord))
eegspace(eegcoord[cidx,4:5],pcc$loadings[,1], colorlab="PC1 loadings",
main=paste0(round(pve[1],0), "%"), mar=c(17,3,12,2), cex.main=2)
eegspace(eegcoord[cidx,4:5],pcc$loadings[,2], colorlab="PC2 loadings",
main=paste0(round(pve[2],0), "%"), mar=c(17,3,12,2), cex.main=2)
eegspace(eegcoord[cidx,4:5],pcc$loadings[,3], colorlab="PC3 loadings",
main=paste0(round(pve[3],0), "%"), mar=c(17,3,12,2), cex.main=2)
# Linear discriminant analysis: discriminating among the 1st, 2nd and 3rd portions
# of the time interval
ld <- lda.ct(fdo, c(85,170))
plot(ld)
eegspace(eegcoord[cidx,4:5],ld$scaling[,1], colorlab="LD1 coefficients",
mar=c(17,3,12,2), cex.main=2)
eegspace(eegcoord[cidx,4:5],ld$scaling[,2], colorlab="LD2 coefficients",
mar=c(17,3,12,2), cex.main=2)
## End(Not run)
[Package ctmva version 1.4.0 Index]