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 "fd" cor logical: use correlation matrix if TRUE, covariance if FALSE (the default) common_trend logical: Should the curves be centered with respect to the mean function? Defaults to FALSE.

### 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>

cov.ct; princomp, for the classical version

### Examples



# 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)

# along with percent variance explained by each
pcc <- pca.ct(fdo)
pve <- 100*pcc$var/sum(pcc$var)
oldpar <- 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)
par(oldpar)



[Package ctmva version 1.1.0 Index]