Chciałbym zrozumieć, w jaki sposób mogę uzyskać procent wariancji zbioru danych, nie w przestrzeni współrzędnych zapewnionej przez PCA, ale w stosunku do nieco innego zestawu (obróconych) wektorów.
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"))
Tak więc w zasadzie wiem, że wariancja zestawu danych wzdłuż każdej z czerwonych osi, podana przez PCA, jest reprezentowana przez wartości własne. Ale jak mogłem uzyskać równoważne wariancje, w sumie tyle samo, ale rzutowałem dwie różne osie na zielono, które są obrotem o pi / 10 głównych osi składowych. IE biorąc pod uwagę dwa ortogonalne wektory jednostkowe od początku, jak mogę uzyskać wariancję zestawu danych wzdłuż każdej z tych dowolnych (ale ortogonalnych) osi, tak że cała wariancja jest uwzględniana (tj. „Wartości własne” sumują się do tego samego PCA).
źródło
Odpowiedzi:
Jest to tylko stosunek sumowanych wariancji rzutów i sumowanych wariancji wzdłuż oryginalnych wymiarów.
Dobroć dopasowania definiuje się tak samo, jak w przypadku innych modeli (tj. Jako jeden minus ułamek niewyjaśnionej wariancji). Biorąc pod uwagę średni błąd kwadratu modelu ( ) i całkowitą wariancję modelowanej ilości ( ), . W kontekście naszej rekonstrukcji danych średni błąd kwadratu wynosi (błąd rekonstrukcji). Całkowita wariancja to (suma wariancji wzdłuż każdego wymiaru danych). Więc: MSE Var ogółem R 2 = 1 - MSE / Var ogółem E SR2 MSE Vartotal R2=1−MSE/Vartotal E S
R 2S jest również równe średniej kwadratowej odległości euklidesowej od każdego punktu danych do średniej wszystkich punktów danych, więc możemy również myśleć o jako porównywaniu błędu rekonstrukcji z błędem „najgorszego modelu”, który zawsze zwraca znaczy jak rekonstrukcja.R2
Dwa wyrażenia dla są równoważne. Jak wyżej, jeśli istnieje tyle wektorów, ile oryginalnych wymiarów ( ), wówczas będzie wynosić jeden. Ale jeśli , będzie ogólnie mniejsze niż dla PCA. Innym sposobem myślenia o PCA jest to, że minimalizuje kwadratowy błąd rekonstrukcji. K = d R 2 K < d R 2R2 k=d R2 k<d R2
źródło
try[ing] to reconstruct the data from the projections