Один из методов проведения PCA – выполнить разложение ковариационной матрицы по собственным значениям, см. википедию. .
Преимущество разложения по собственным значениям заключается в том, что вы видите, какие направления (собственные векторы) являются значимыми, то есть имеют заметное изменение, выраженное соответствующими собственными значениями. Более того, вы можете определить, является ли ковариационная матрица положительно определенной (все собственные значения больше нуля), а не отрицательно определенной (что нормально), если есть собственные значения, равные нулю, или она неопределенна (что не нормально) отрицательными собственными значениями. Иногда также случается, что из-за числовых неточностей неотрицательно определенная матрица становится отрицательно определенной. В этом случае вы увидите отрицательные собственные значения, которые почти равны нулю. В этом случае вы можете установить эти собственные значения равными нулю, чтобы сохранить неотрицательную определенность ковариационной матрицы. Кроме того, вы все еще можете интерпретировать результат: собственные векторы, дающие важную информацию, связаны с самыми большими собственными значениями. Если список отсортированных собственных значений быстро сокращается, существует множество направлений, которые не вносят существенного вклада и, следовательно, могут быть отброшены.
Встроенная функция R: eigen
Если ваша ковариационная матрица равна A
, то
eigen_res <- eigen(A)
# sorted list of eigenvalues
eigen_res$values
# slightly negative eigenvalues, set them to small positive value
eigen_res$values[eigen_res$values<0] <- 1e-10
# and produce regularized covariance matrix
Areg <- eigen_res$vectors %*% diag(eigen_res$values) %*% t(eigen_res$vectors)
person
Georg Schnabel
schedule
17.02.2014