Estimates local manifold dimension using the largest singular values of the covariance matrix.
pcaLocalDimEst(data, ver, alphaFO = .05, alphaFan = 10, betaFan = .8, PFan = .95,
ngap = 5, maxdim = min(dim(data)), verbose = TRUE)
a local data set for which dimension should be estimated.
possible values: 'FO'
, 'fan'
, 'maxgap'
, 'cal'
. 'cal'
is often very slow.
only for ver = 'FO'
. An eigenvalue is considered significant if it is larger than alpha times the largest eigenvalue.
only for ver = 'Fan'
. The alpha parameter (large gap threshold).
only for ver = 'Fan'
. The beta parameter (total covariance threshold).
only for ver = 'Fan'
. Total covariance in non-noise.
only for ver = 'cal'
. How many of the largest gaps that should be considered.
only for ver = 'cal'
. The maximal manifold dimension of the data.
should information about the process be printed out?
A DimEst
object with slots:
the dimension estimate
if ver
is not 'cal'
, the size of the gap in singular values corresponding to the estimated dimension
if ver
is cal
, the likelihood of the estimated dimension.
Version 'FO'
is the method by Fukunaga-Olsen, version 'fan'
is the method by Fan et al..
Version 'maxgap'
returns the position of the largest relative gap in the sequence of singular values.
Version 'cal'
considers the positions of the ngap
largest relative gaps in the
sequence of singular values and generates calibration data to determine which one of them is most likely.
All versions assume that the data is local, i.e. that it is a neighborhood taken from a larger data set, such that the curvature and the noise within the neighborhood is relatively small. In the ideal case (no noise, no curvature) this is equivalent to the data being uniformly distributed over a hyper ball.
Fukunaga, K. and Olsen, D. R. (1971). An algorithm for finding intrinsic dimensionality of data. IEEE Trans. Comput., c-20(2):176-183.
Fan, M. et al. (2010). Intrinsic dimension estimation of data by principal component analysis. arXiv preprint 1002.2050.
# NOT RUN {
data <- cutHyperPlane(100, 4, 10, .05)
pcaLocalDimEst(data, 'fan')
pcaLocalDimEst(data, 'FO')
pcaLocalDimEst(data, 'maxgap')
# }
Run the code above in your browser using DataLab