Как получить «собственные значения» (проценты объясненной дисперсии) векторов, которые не являются собственными векторами PCA?


10

Я хотел бы понять, как я могу получить процент дисперсии набора данных не в координатном пространстве, предоставленном PCA, а по отношению к немного другому набору (повернутых) векторов.

введите описание изображения здесь

set.seed(1234)
xx <- rnorm(1000)
yy <- xx * 0.5 + rnorm(1000, sd = 0.6)
vecs <- cbind(xx, yy)
plot(vecs, xlim = c(-4, 4), ylim = c(-4, 4))
vv <- eigen(cov(vecs))$vectors
ee <- eigen(cov(vecs))$values
a1 <- vv[, 1]
a2 <- vv[, 2]
theta = pi/10
rotmat <- matrix(c(cos(theta), sin(theta), -sin(theta), cos(theta)), 2, 2)
a1r <- a1 %*% rotmat
a2r <- a2 %*% rotmat
arrows(0, 0, a1[1], a1[2], lwd = 2, col = "red")
arrows(0, 0, a2[1], a2[2], lwd = 2, col = "red")
arrows(0, 0, a1r[1], a1r[2], lwd = 2, col = "green3")
arrows(0, 0, a2r[1], a2r[2], lwd = 2, col = "green3")
legend("topleft", legend = c("eigenvectors", "rotated"), fill = c("red", "green3"))

В общем, я знаю, что дисперсия набора данных вдоль каждой из красных осей, заданная PCA, представлена ​​собственными значениями. Но как я мог получить эквивалентные отклонения, в сумме одинаковую, но с проекцией двух разных осей в зеленом цвете, представляющих собой поворот на pi / 10 осей главных компонент. IE дает два ортогональных единичных вектора из источника, как я могу получить дисперсию набора данных вдоль каждой из этих произвольных (но ортогональных) осей, так что вся дисперсия учитывается (т.е. сумма «собственных значений» равна той же самой, что и PCA).


Очень похожие: stats.stackexchange.com/questions/8630 .
амеба

Ответы:


7

Xnd{v1,...,vk}viVar(Xvi)

k=dk<d

R2S

R2=1Si=1kVar(Xvi)

Это просто отношение суммированных отклонений проекций и суммированных отклонений по исходным размерам.

R2ix(i)ViVp(i)=x(i)Vk<dx^(i)=p(i)VT

E=1nx(i)x^(i)2

Достоверность подгонки определяется так же, как и для других моделей (то есть как единица минус доля необъяснимой дисперсии). Учитывая среднеквадратическую ошибку модели ( ) и общую дисперсию моделируемой величины ( ), . В контексте нашей реконструкции данных среднеквадратическая ошибка равна (ошибка реконструкции). Общая дисперсия (сумма дисперсий по каждому измерению данных). Так: MSE Var total R 2 = 1 - MSE / Var total E SR2MSEVartotalR2=1MSE/VartotalES

R2=1ES

R 2S также равно среднеквадратичному евклидову расстоянию от каждой точки данных до среднего значения всех точек данных, поэтому мы также можем рассматривать как сравнение ошибки восстановления с ошибкой «худшей модели», которая всегда возвращает значит, как реконструкция.R2

Два выражения для эквивалентны. Как и выше, если имеется столько векторов, сколько исходных размеров ( ), тогда будет одним. Но, если , , как правило, будет меньше, чем для PCA. Другой способ думать о PCA состоит в том, что он минимизирует квадратичную ошибку реконструкции. k = d R 2 k < d R 2R2k=dR2k<dR2


+1, очень четкое объяснение. Я только хочу упомянуть, для полноты, что - это то, что вы написали, только если под " " мы понимаем восстановление через тот же который использовался для проецирования. В общем, для произвольного вектора проекции будет лучшая реконструкция, дающая более высокое . У меня есть ответ, где я объясняю это подробно . Я согласен, однако, что для этого конкретного вопроса то, что вы написали, именно то, что нужно. V v R 2R2try[ing] to reconstruct the data from the projectionsVvR2
амеба

Да, это хороший момент и хорошее объяснение
user20160

Что если у меня нет матрицы данных, а есть только ковариационная матрица? Сумма диагонали ковариационной матрицы дает мне полную дисперсию, и если бы я применил PCA к этой ковариационной матрице, собственные значения дали бы дисперсию вдоль каждого нового направления, так что объясненная дисперсия является собственным значением / общей дисперсией. Но что же мои векторы не являются собственными векторами?
Посрамлен

... Насколько я могу судить, если мы начнем с ковариационной матрицы C , то в этом случае нужно взять | Cv_i | / сумма (diag ( C )), чтобы получить объяснение% дисперсии.
Посрамлен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.