PCAバイプロットの矢印はどういう意味ですか?


14

次の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, ]ませんか?(これもyPCAまたはt(x) %*% x。の固有分解によって得られる固有ベクトル行列です。)固有ベクトルは、水平ベクトルではなく列ベクトルでなければなりません。

我々は2次元平面上にプロットされているにもかかわらず、我々からする第一の方向を描画する(0, 0)を指して(y[1, 1], y[2, 1])


2
また、サイト上の質問で利用可能なフォーマットを利用しようとすることを検討してください。高度なマークダウンヘルプを参照してください。以前の質問には回答がありませんが、少し読みやすくなるように編集すると、リストの一番上にぶつかり、回答が集まる可能性があります。
アンディW

@アンディW優れたリファレンス
共役

@Andy W:優れた参考文献を読んだ後も、Rコードbiplot.princompにはバグがあると思います:ロードマトリックス(固有ベクトルマトリックス)はbiplot.princompに送信する前に転置する必要があります...
ルナ


@Andy W:コメントを「回答」に入れて、回答を受け入れることができますか?それは素晴らしいものです!本当にありがとう!
ルナ

回答:


9

まあ、ケビン・ライトは、混乱を説明するのを助けるために、クレジットの大部分を与えられるべきであるようです(R-help mail listから);

矢印は、データの最も変化する方向を指していません。主成分は、データの最も変化する方向を指しています。ただし、元のスケールでデータをプロットするのではなく、回転したスケールでデータをプロットするため、水平軸はデータの最も変化する方向です。

矢印は、バイプロットの2次元平面に投影されるように、変数の方向を指しています。

バグはありません。

ケビン・ライト

Michael Greenacreには、biplots、Biplots in Practiceについての非常に優れた無料のオンラインブックがあります。最初の章を読むだけで、矢印の座標がどこから得られるのかを知ることができます。このサイトには、似たような他の質問もいくつかあり、興味があるかもしれません。Rの主成分分析におけるバイプロットの解釈 MDS因子プロットの解釈を 2例について。また、サイトの検索biplotを使用して質問に目を通します(潜在的な関心がいくつかあるため、この時点でbiplotタグを作成することも、出てきた質問の数を考えると便利です)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.