i_pca {idm} | R Documentation |
Incremental Principal Component Analysis (PCA)
Description
This function computes the Principal Component Analysis (PCA) solution on the covariance matrix using the incremental method of Hall, Marshall & Martin (2002).
Usage
i_pca(data1, data2, current_rank, nchunk = 2, disk = FALSE)
Arguments
data1 |
Matrix or data frame of starting data, or full data if data2 = NULL |
data2 |
Matrix or data frame of incoming data; omitted when full data is given in data1 |
current_rank |
Rank of approximation or number of components to compute; if empty, the full rank is used |
nchunk |
Number of incoming data chunks (equal splits of 'data2', |
disk |
Logical indicating whether then output is saved to hard disk |
Value
rowpcoord |
Row scores on the principal components |
colpcoord |
Variable loadings |
eg |
A list describing the eigenspace of a data matrix, with components |
sv |
Singular values |
inertia_e |
Percentage of explained variance |
levelnames |
Attribute labels |
rowctr |
Row contributions |
colctr |
Column contributions |
rowcor |
Row squared correlations |
colcor |
Column squared correlations |
nchunk |
A copy of |
disk |
A copy of |
allrowcoord |
A list containing the row scores on the principal components produced after each data chunk is analyzed; returned only when |
allcolcoord |
A list containing the variable loadings on the principal components produced after each data chunk is analyzed; returned only when |
allrowctr |
A list containing the row contributions after each data chunk is analyzed; returned only when |
allcolctr |
A list containing the column contributions after each data chunk is analyzed; returned only when |
allrowcor |
A list containing the row squared correlations produced after each data chunk is analyzed; returned only when |
allcolcor |
A list containing the column squared correlations produced after each data chunk is analyzed; returned only when |
References
Hall, P., Marshall, D., & Martin, R. (2002). Adding and subtracting eigenspaces with eigenvalue decomposition and singular value decomposition. Image and Vision Computing, 20(13), 1009-1016.
Iodice D' Enza, A., & Markos, A. (2015). Low-dimensional tracking of association structures in categorical data, Statistics and Computing, 25(5), 1009–1022.
Iodice D'Enza, A., Markos, A., & Buttarazzi, D. (2018). The idm Package: Incremental Decomposition Methods in R. Journal of Statistical Software, Code Snippets, 86(4), 1–24. DOI: 10.18637/jss.v086.c04.
See Also
update.i_pca
, i_mca
, update.i_mca
, add_es
Examples
data("segmentationData", package = "caret")
#center and standardize variables, keep 58 continuous attributes
HCS = data.frame(scale(segmentationData[,-c(1:3)]))
#abbreviate variable names for plotting
names(HCS) = abbreviate(names(HCS), minlength = 5)
#split the data into starting data and incoming data
data1 = HCS[1:150, ]
data2 = HCS[151:2019, ]
#Incremental PCA on the HCS data set: the incoming data is
#splitted into twenty chunks; the first 5 components/dimensions
#are computed in each update
res_iPCA = i_pca(data1, data2, current_rank = 5, nchunk = 20)
#Static plots
plot(res_iPCA, animation = FALSE)
#\donttest is used here because the code calls the saveLatex function of the animation package
#which requires ImageMagick or GraphicsMagick and
#Adobe Acrobat Reader to be installed in your system
#See help(im.convert) for details on the configuration of ImageMagick or GraphicsMagick.
#Creates animated plot in PDF for objects and variables
plot(res_iPCA, animation = TRUE, frames = 10, movie_format = 'pdf')
#Daily Closing Prices of Major European Stock Indices, 1991-1998
data("EuStockMarkets", package = "datasets")
res_iPCA = i_pca(data1 = EuStockMarkets[1:50,], data2 = EuStockMarkets[51:1860,], nchunk = 5)
#\donttest is used here because the code calls the saveLatex function of the animation package
#which requires ImageMagick or GraphicsMagick and
#Adobe Acrobat Reader to be installed in your system
#See help(im.convert) for details on the configuration of ImageMagick or GraphicsMagick.
#Creates animated plot in PDF movies for objects and variables
plot(res_iPCA, animation = TRUE, frames = 10, movie_format = 'pdf')