Собственные значения против PVE (объяснение процентной дисперсии)

С помощью функции prcomp() я вычислил процентное отклонение объясненного

prcomp(env, scale=TRUE)

Во втором столбце summary(pca) показаны эти значения для всех ПК:

                        PC1    PC2     PC3     PC4     PC5     PC6     PC7
Standard deviation     7.3712 5.8731 2.04668 1.42385 1.13276 0.79209 0.74043
Proportion of Variance 0.5488 0.3484 0.04231 0.02048 0.01296 0.00634 0.00554
Cumulative Proportion  0.5488 0.8972 0.93956 0.96004 0.97300 0.97933 0.98487

Теперь я хочу найти собственные значения для каждого ПК:

pca$sdev^2
[1] 5.433409e+01 3.449329e+01 4.188887e+00 2.027337e+00 1.283144e+00
[6] 6.274083e-01 5.482343e-01

Но эти значения кажутся просто альтернативным представлением самого PVE. Так что я здесь делаю не так?


person cryptic0    schedule 17.02.2013    source источник
comment
Вы должны поделиться своими данными, которые дают такой результат. Что вы имеете в виду под an alternate representation of the PVE itself?   -  person Arun    schedule 18.02.2013
comment
Арун: 0,5488 * 10 примерно равно 5,433. Судя по публикациям, которые я просматриваю, собственные значения, похоже, не имеют такого отношения к PVE.   -  person cryptic0    schedule 18.02.2013
comment
снимает ли мой ответ путаницу? Вариация (или дисперсия) в каждом направлении задается каждым собственным значением. А доля дисперсии - это просто отношение каждого собственного значения к сумме. Не уверен, что вы ищете, если это не поможет.   -  person Arun    schedule 18.02.2013
comment
См. Также объяснение pca-and-ratio-of-variance на stats.stackexchange.   -  person denis    schedule 02.01.2014


Ответы (1)


Я не уверен, что это вас смущает.

pca$sdev^2 -> eigen values -> variance in each direction
pca$sdev^2/sum(pca$sdev^2) = proportion of variance vector

Итак, они связаны.

Изменить: просто пример (чтобы проиллюстрировать эту взаимосвязь), если это поможет.

set.seed(45) # for reproducibility
# set a matrix with each column sampled from a normal distribution
# with same mean but different variances
m <- matrix(c(rnorm(200,2, 10), rnorm(200,2,10), 
               rnorm(200,2,10), rnorm(200,2,10)), ncol=4)
pca <- prcomp(m)

> summary(pca) # note that the variances here equal that of input
# all columns are independent of each other, so each should explain
# equal amount of variance (which is the case here). all are ~ 25%
                           PC1     PC2     PC3    PC4
Standard deviation     10.9431 10.6003 10.1622 9.3200
Proportion of Variance  0.2836  0.2661  0.2446 0.2057
Cumulative Proportion   0.2836  0.5497  0.7943 1.0000

> pca$sdev^2
# [1] 119.75228 112.36574 103.27063  86.86322

> pca$sdev^2/sum(pca$sdev^2)
# [1] 0.2836039 0.2661107 0.2445712 0.2057142
person Arun    schedule 17.02.2013
comment
Я понимаю. Мое замешательство в основном связано с тем, что я ищу таблицу в публикации (dx.doi.org/10.1111/ mec.12043 Таблица 2). Вот первая строка: PC 1 Eig 24.27 PVE 51.00 - person cryptic0; 18.02.2013
comment
Во-первых, ваш первый собственный вектор 54.33 НЕ 5.433. Во-вторых, что, если это 24.27 и 51.00%? 51% - это 24.27/sum(...). Почему это вас беспокоит? - person Arun; 18.02.2013
comment
Возможно, дополнительно поможет этот пост. Не думаю, что есть о чем беспокоиться. - person Arun; 18.02.2013
comment
Возможно, мне не стоит волноваться. Я был поражен, потому что цифры были похожи. - person cryptic0; 18.02.2013
comment
Было бы полезно, если вы просто возьмете случайную матрицу и вычислите собственные значения так же, как и вы, и проверите ее, чтобы успокоиться! :) (Я отредактировал пост, чтобы показать это). - person Arun; 18.02.2013
comment
Спасибо, Арун, это очень помогло. - person cryptic0; 18.02.2013