Хорошо, надеюсь, я правильно понял. Для построения главных компонентов вам нужны собственные векторы, и это дано в $rotation
. Сначала мы настраиваем трехмерный график и вычисляем главный компонент:
library(rgl)
set.seed(1)
x <- 1:100 + rnorm(100, 5, 5)
y <- x + rnorm(100, 10, 20)
z <- y + rnorm(100, 1, 10)
M = cbind(x,y,z)
pca = prcomp(df, center = T, scale. = T)
Мы наносим точки:
plot3d(M)
Поскольку вы масштабировали главный компонент, нам нужно найти средства (или по центру) ваших x, y, z и постройте ПК оттуда. И поскольку P C является собственным вектором, я просто нанес на график отрезок от центра примерно до 100 * собственного вектора:
centers = colMeans(M)
PC1 = rbind(centers,centers+100*pca$rotation[,1])
colnames(PC1) = c("x","y","z")
segments3d(PC1,col="blue",lwd=2)
PC2 = rbind(centers,centers+100*pca$rotation[,2])
colnames(PC2) = c("x","y","z")
segments3d(PC2,col="orange",lwd=2)