为什么基于稀疏数据的协方差矩阵的本征和SVD分解会产生不同的结果?
我正在尝试基于稀疏/不连续的数据集分解协方差矩阵。我注意到,svd随着越来越差的数据,λ的总和(解释方差)用来计算。没有差距,svd并eigen获得相同的结果。 eigen分解似乎不会发生这种情况。我一直倾向于使用,svd因为lambda值始终为正,但是这种趋势令人担忧。是否需要某种校正,或者应该svd完全避免此类问题。 ###Make complete and gappy data set set.seed(1) x <- 1:100 y <- 1:100 grd <- expand.grid(x=x, y=y) #complete data z <- matrix(runif(dim(grd)[1]), length(x), length(y)) image(x,y,z, col=rainbow(100)) #gappy data zg <- replace(z, sample(seq(z), length(z)*0.5), NaN) image(x,y,zg, col=rainbow(100)) ###Covariance matrix decomposition #complete data C <- cov(z, use="pair") E <- eigen(C) …