PCAバイプロット上の矢印の配置


18

JavaScriptで主成分分析(PCA)のバイプロットを実装したいと考えています。私の質問は、データ行列の特異ベクトル分解(SVD)の出力から矢印の座標をどのように決定するのですか?U,V,D

Rが生成するバイプロットの例を次に示します。

biplot(prcomp(iris[,1:4]))

Irisデータセットのバイプロット

私はそれを見上げてみましたバイプロット上のWikipediaの記事が、それは非常に便利ではありません。または修正します。どっちがわからない。


3
バイプロットは、U値とV値の両方を示すオーバーレイ散布図です。またはUDとV。またはUとVD '。またはUDとVD '。PCAの観点から、UDは未加工主成分スコアと呼ばれ、VD 'は可変成分負荷と呼ばれます。
ttnphns

2
また、座標のスケールは、データを最初に正規化する方法に依存することに注意してください。たとえば、PCAでは、1つの正規表現でデータをsqrt(r)またはsqrt(r-1)[rは行数]で除算します。しかし、単語の狭い意味での真の「バイプロット」の一方は、通常、SQRT(RC)によってデータを分割[cは列の数である]、次いで得られたU及びVを脱正規化
ttnphns

データを1でスケーリングする必要があるのはなぜですか1n1
ktdrv

1
@ttnphns:上記のコメントに続いて、私はPCAバイプロット正規化の概要のようなものを提供することを目指して、この質問に対する答えを書きました。ただし、このトピックに関する私の知識は純粋に理論的なものであり、私よりもはるかに多くの実習経験があります。それで、私はコメントに感謝するでしょう。
アメーバは、モニカーを復活させる

1
実装する理由の1つである@Aleksandrは、何が行われているかを正確に知るためです。ご覧のとおり、実行時に正確に何が起こるかを把握するのはそれほど簡単ではありませんbiplot()。また、わずか数行のコードを必要とするものをR-JS統合に煩わせる理由。
アメーバは、モニカを復活させる

回答:


40

PCAバイプロットを作成するにはさまざまな方法があるため、質問に対する独自の回答はありません。以下に簡単な概要を示します。

データ行列は行にn個のデータポイントがあり、中心にある(つまり、列の平均はすべてゼロ)と仮定します。今のところ、標準化されているとは仮定していません。つまり、共分散行列(相関行列ではなく)でPCAを検討します。PCAは、特異値分解になるX = U S Vあなたは詳細についてはここに私の答えを見ることができます:SVDとPCAとの関係。SVDを使用してPCAを実行する方法Xn

X=USV,

PCAバイプロットでは、2つの最初の主成分が散布図としてプロットされます。つまり、最初の列が2番目の列に対してプロットされます。ただし、正規化は異なる場合があります。たとえば、次のものを使用できます。U

  1. 列:これらは、単位平方和にスケーリングされた主成分です。U
  2. √の:これらは標準化された主成分(単位分散)です。n1U
  3. 列:これらは「生の」主成分(主要な方向の投影)です。US

さらに、元の変数は矢印としてプロットされます。すなわち、i番目の矢印の終点の座標は、Vの 1列目と2列目のi番目の値によって与えられます。しかし、ここでも、次のように異なる正規化を選択できます。(x,y)iiV

  1. VS
  2. VS/n1
  3. V

以下は、Fisher Irisデータセットのすべての様子です。

フィッシャーアイリスバイプロット、共分散のPCA

9XUSαβVS(1α)/β9 「適切なバイプロット」です。つまり、上からのサブプロットと直下のサブプロットの組み合わせです。

[どの組み合わせを使用する場合でも、矢印とデータポイントの両方がほぼ同じスケールで表示されるように、矢印を任意の定数係数でスケーリングする必要がある場合があります。

VS/n1Un1

この[特定の選択]は、観測の多変量行列を解釈する上で最も有用なグラフィカル支援を提供する可能性があります。もちろん、これらはランク2で適切に近似できることが条件です。

を使用して USV

US

biplotUVSbiplot0.8biplotn/(n1)1RのPCAバイプロットの基になる変数の矢印

相関行列のPCA

さらにデータ行列 X1

フィッシャーアイリスバイプロット、相関関係のPCA

1R=1


参考文献:


1
+6、これは3回以上のアップ投票に値します。
GUNG -復活モニカ

3
?ca :: plot.caには、さまざまな正規化の概要があります:行プリンシパル(主座標のbiplot = rows、標準座標のcols)、col principal(covariance biplot = cols in principal coords、rows標準座標の場合)、対称バイプロット(特異値(固有値の平方根)に等しい分散を持つようにスケーリングされた行と列)、rowgabおよびcolgab(対応する点の質量を掛けた標準座標の主座標と列の行またはその逆)とrowgreenとcolgreen(rowgabとcolgabとして、sqrt(masses)を使用)
トムウェンセリアーズ

2
これらの最後のものは、「貢献バイプロット」とも呼ばれます。M. Greenacreの本「Biplots in practise」もこのすべての概要を説明しています。これらのスケーリング方法は、SVDに基づくすべてのメソッド(CAバイプロット、PCAバイプロット、LDAバイプロットなど)に適用されます。それは、ソースコードのCA ::: plot.caと「マップ」引数を参照してくださいどのように機能するかの例
トムWenseleers

1
n1

1
@AntoniParellada編集して、いくつかのリンクを挿入しました。
アメーバは、モニカを
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.