2
Rの主成分分析を初めて勉強しました。私の質問はかなり素朴です。私はRの関数 'prcomp'を使って行列(A)のPCAを行った。今ではAのPC1とPC2のPCA空間にベクトルをプロットしたい。このベクトルのプロットについてはどうすればよいのだろうか?RのPCA空間に新しいベクトルをプロットする方法
Rの主成分分析を初めて勉強しました。私の質問はかなり素朴です。私はRの関数 'prcomp'を使って行列(A)のPCAを行った。今ではAのPC1とPC2のPCA空間にベクトルをプロットしたい。このベクトルのプロットについてはどうすればよいのだろうか?RのPCA空間に新しいベクトルをプロットする方法
使用バイプロット(赤arrrowsは、元の空間の次元です):
a <- princomp(iris[1:4])
biplot(a, cex=0.5)
次のように、あなたも自分でPCA空間に投影を行うことができます。
library(ggplot2)
data <- iris[1:4]
labels <- iris[,5]
res <- princomp(data)
res.proj <- as.matrix(data) %*% res$loadings[,1:2]
ggplot(as.data.frame(res.proj), aes(Comp.1, Comp.2, col=labels)) + geom_point()
prcomp(数値的に安定しています)を使用した同じプロット:
data <- iris[1:4]
labels <- iris[,5]
res <- prcomp(data)
res.proj <- as.matrix(data) %*% res$rotation[,1:2]
ggplot(as.data.frame(res.proj), aes(PC1, PC2, col=labels)) + geom_point()
ファンシーなggbiplot:
library(ggbiplot)
g <- ggbiplot(res, obs.scale = 1, var.scale = 1,
groups = labels, ellipse = TRUE,
circle = TRUE)
g <- g + scale_color_discrete(name = '')
g <- g + theme(legend.direction = 'horizontal',
legend.position = 'top')
print(g)
それは 'prcomp'を使用すると、R.' princomp'で優先的な方法は、S-PLUSとの互換性のために存在していることは注目に値します。 –
数値安定性が必要な場合は、svdを使用するので代わりにprcompを使用してください。 –