次のPCAバイプロットを検討してください。
library(mvtnorm)
set.seed(1)
x <- rmvnorm(2000, rep(0, 6), diag(c(5, rep(1,5))))
x <- scale(x, center=T, scale=F)
pc <- princomp(x)
biplot(pc)
たくさんの赤い矢印がプロットされていますが、それらはどういう意味ですか?「Var1」というラベルの付いた最初の矢印は、データセットの最もさまざまな方向を指している必要があることを知っていました(それらをそれぞれサイズ6のベクトルである2000データポイントと考える場合)。また、私はどこかから読んだ、最も変化する方向は、最初の固有ベクトルの方向でなければなりません。
ただし、Rのバイプロットのコードを読み取ります。矢印に関する行は次のとおりです。
if(var.axes)
arrows(0, 0, y[,1L] * 0.8, y[,2L] * 0.8, col = col[2L],
y
固有ベクトル行列である実際の負荷行列はどこにありますか。したがって、最初の矢印が実際にから(0, 0)
を指しているように見え(y[1, 1], y[1, 2])
ます。高次元の矢印を2D平面にプロットしようとしていることを理解しています。これが、y[1, ]
ベクトルの1番目と2番目の要素を取得する理由です。しかし、私が理解していないのは:
最初の固有ベクトルの方向は、y[, 1]
ではなくで示されるベクトルではありy[1, ]
ませんか?(これもy
PCAまたはt(x) %*% x
。の固有分解によって得られる固有ベクトル行列です。)固有ベクトルは、水平ベクトルではなく列ベクトルでなければなりません。
我々は2次元平面上にプロットされているにもかかわらず、我々からする第一の方向を描画する(0, 0)
を指して(y[1, 1], y[2, 1])
?