主成分分析、固有ベクトル、固有値を理解する


976

今日のパターン認識クラスでは、私の教授がPCA、固有ベクトル、固有値について話しました。

私はそれの数学を理解しました。固有値などを見つけるように求められたら、機械のように正しく行います。しかし、私はそれを理解しませんでした。目的がわからなかった。私はそれを感じませんでした。

私は次の引用を強く信じています:

あなたはそれをあなたの祖母に説明できない限り、あなたは本当に何かを理解していません。 - アルバート・アインシュタイン

まあ、私はこれらの概念を素人やおばあちゃんに説明することはできません。

  1. なぜPCA、固有ベクトル、固有値なのか?これらの概念の必要性は何ですか?
  2. これらを素人にどのように説明しますか?

95
良い質問。私も引用に同意します。統計学や数学には非常に知能があり、仕事に深く浸ることができる人がたくさんいると思いますが、彼らが取り組んでいることを深く理解していない。または、彼らはそれを他人に説明することはできません。私はここで答えを平易な英語で提供し、計画的な英語の答えを要求する質問をします。
ニール

7
これは7月に数学のサイトで尋ねられましたが、そうではなく、多くの答えも得られませんでした(そこで焦点が異なることを考えると、驚くことではありません)。 math.stackexchange.com/questions/1146/...
whuberの

6
オーバーヘッドプロジェクターに手を投影することについて話している、生態データの分析でのZuurらによる説明と同様です。手を回し続けて、壁の投影が手がどのように見えると思われるかと非常によく似るようにします。
ロマンルシュトリック

12
この質問は私を良い論文に導きます、そしてそれは素晴らしい引用だと思いますが、それはアインシュタインからではありません。これはよくある誤属性であり、おそらく元の引用はおそらく「あなたの物理学をバーメイドに説明できないなら、あまり良い物理学ではない」と言ったアーネスト・ラザフォードからの引用でしょう。このスレッドを開始してくれてありがとう。
gavaletz

23
アリス・カラプリス、究極の割当可能なアインシュタイン、プリンストンUP 2011は、ここでの引用を多くの「おそらくアインシュタインではない」の1つとしてフラグを立てます。p.482を参照してください。
ニックコックス

回答:


1293

みんながPCAについて尋ね始める大きな家族の夕食を想像してください。まず、great祖母に説明します。それからあなたの祖母に。それからあなたの母親へ。それからあなたの配偶者に。最後に、あなたの娘(数学者)に。次の人が素人になるたびに。これが会話の流れです。

Great祖母:「おしっこを見る」を勉強していると聞きました。何だろう...

あなた:ああ、それは単にデータを要約する方法です。ほら、テーブルの上にここにいくつかのワインボトルがあります。各ワインは、その色、強さ、古さなどによって説明できます(ここから取られたワインの特性の非常に素晴らしい視覚化を参照してください)。セラー内の各ワインのさまざまな特性の完全なリストを作成できます。しかし、それらの多くは関連するプロパティを測定するため、冗長です。もしそうなら、より少ない特徴で各ワインを要約できるはずです!これがPCAの機能です。

祖母:これは面白いです!したがって、このPCAの事柄は、どの特性が冗長であるかをチェックし、それらを破棄しますか?

あなた:素晴らしい質問です、おばあちゃん!いいえ、PCAは一部の特性を選択せず​​、他の特性を破棄していません。代わりに、いくつかの新しい特性を構築して、ワインのリストをうまくまとめています。もちろん、これらの新しい特性は古い特性を使用して構築されています。たとえば、新しい特性は、ワインの年齢からワインの酸性度を引いたもの、またはそのような他の組み合わせ(線形組み合わせ)として計算されます。

実際、PCAは、考えられるすべての線形の組み合わせの中で、可能な限り最高の特性、つまりワインのリストを要約した特性を見つけます。これがとても便利な理由です。

母:うーん、これは確かにいいように聞こえますが、私にはわかりません。これらの新しいPCA特性がワインのリストを「要約」すると言うとき、あなたは実際に何を意味しますか?

あなた:私はこの質問に2つの異なる答えをすることができると思います。最初の答えは、ワインによって大きく異なるいくつかのワインの特性(特性)を探しているということです。実際、ほとんどのワインで同じ特性を思い付くと想像してください。これはあまり役に立ちませんよね?ワインは非常に異なりますが、新しいプロパティはすべて同じように見えます!これは確かに悪い要約でしょう。代わりに、PCAはワイン間で可能な限り多くのバリエーションを示すプロパティを探します。

2番目の答えは、元のワインの特性を予測または「再構築」できるプロパティを探すことです。繰り返しますが、元の特性とは関係のないプロパティを思い付くと想像してください。この新しいプロパティのみを使用する場合、元のプロパティを再構築する方法はありません!これもまた、悪い要約です。そのため、PCAは元の特性を可能な限り再構築できるプロパティを探します。

驚くべきことに、これら2つの目的は同等であり、PCAは1つの石で2羽の鳥を殺すことができることがわかりました。

配偶者:しかし、最愛の人、PCAのこれらの2つの「目標」は非常に異なっています!なぜ同等なのでしょうか?

あなた:うーん。たぶん、私は少し絵を描くべきです(ナプキンを取り、落書きを始めます)。2つのワインの特徴、おそらくワインの暗さとアルコール度数を選択してみましょう。それらが相関しているかどうかはわかりませんが、それらが相関していると想像してみましょう。さまざまなワインの散布図は次のようになります。

PCAの例示的なデータ

この「ワインクラウド」の各ドットは、1つの特定のワインを示しています。2つのプロパティ(この図のxy)が相関していることがわかります。このワイン雲の中心に線を引き、すべてのポイントをこの線に投影することにより、新しいプロパティを構築できます。この新しいプロパティは、線形結合w1x+w2yによって与えられます。各行は、w1w2特定の値に対応します。

ここで非常に注意深く見てください-さまざまな線でこれらの投影がどのように見えるかを以下に示します(赤い点は青い点の投影です):

PCAアニメーション:分散および再構成エラー

前に言ったように、PCAは「ベスト」とは何かという2つの異なる基準に従って「ベスト」ラインを見つけます。まず、この線に沿った値の変動は最大でなければなりません。線の回転中に赤い点の「広がり」(「分散」と呼ぶ)がどのように変化するかに注意してください。いつ最大になりますか?第二に、元の2つの特性(青い点の位置)を新しいもの(赤い点の位置)から再構成する場合、再構成誤差は接続する赤い線の長さによって与えられます。線の回転中にこれらの赤い線の長さがどのように変化するかを観察します。合計長が最小になったときを見ることができますか?

しばらくこのアニメーションを見つめると、「最大分散」と「最小誤差」が同時に到達することに気付くでしょう。つまり、ワイン雲の両側にマークしたマゼンタの目盛りをラインが指すとき。この行は、PCAによって構築される新しいワインプロパティに対応しています。

ところで、PCAは「主成分分析」の略で、この新しいプロパティは「第一主成分」と呼ばれます。そして、「プロパティ」または「特性」と言う代わりに、通常「機能」または「可変」と言います。

娘:とても素敵です、パパ!私は2つの目標が同じ結果をもたらす理由を見ることができると思います:それは本質的にピタゴラスの定理によるものではありませんか?とにかく、PCAはどういうわけか固有ベクトルと固有値に関連していると聞きました。彼らはこの写真のどこにいますか?

あなた:素晴らしい観察。数学的には、赤い点の広がりは、ワインクラウドの中心から各赤い点までの平均平方距離として測定されます。ご存知のように、それは分散と呼ばれます。一方、再構成エラーの合計は、対応する赤い線の長さの2乗の平均として測定されます。しかし、赤線と黒線の間の角度として常に90、これら2つの量の合計は、ワインクラウドの中心と各青い点の間の平均平方距離に等しくなります。これはまさにピタゴラスの定理です。もちろん、この平均距離は黒い線の向きに依存しないため、分散が大きいほど誤差は小さくなります(合計が一定であるため)。この手でうねった議論は、正確にすることができます(こちらを参照)。

ところで、黒い線は実線の棒で、各赤い線はばねであると想像できます。バネのエネルギーはその長さの2乗に比例します(これは物理学ではフックの法則として知られています)。したがって、ロッドはこれらの2乗距離の合計を最小化するように向きを変えます。粘性摩擦がある場合の外観のシミュレーションを行いました。

PCAアニメーション:振り子

固有ベクトルと固有値について。共分散行列が何であるか知っています。私の例では、1.07 0.63 0.63 0.64)で与えられる2×2行列ですこれは、x変数の分散が1.07であり、y変数の分散が0.64であり、それらの間の共分散が0.63であることを意味します。正方対称行列であるため、固有ベクトル(これはスペクトル定理と呼ばれます)によって与えられる新しい直交座標系を選択することで対角化できます

(1.070.630.630.64).
x1.07y0.640.63); 対応する固有値は対角線上に配置されます。この新しい座標系では、共分散行列は対角であり、次のようになります:
(1.52000.19),
ポイント間の相関がゼロになったことを意味します。投影の分散は、固有値の加重平均によって与えられることが明らかになります(ここでは直観のみをスケッチしています)。したがって、最初の座標軸で単純に投影を行うと、最大可能分散(1.52)が達成されます。したがって、最初の主成分の方向は、共分散行列の最初の固有ベクトルによって与えられます。(詳細はこちら。

これは回転する図でも確認できます。黒の線に直交する灰色の線があります。一緒に回転座標フレームを形成します。この回転フレームで青いドットが無相関になるときを確認してください。答えは再び、黒い線がマゼンタの目盛りを指すときに正確に起こるということです。今私は、私はそれらを見つけた方法を伝えることができます:彼らは、この場合にはに等しい共分散行列の最初の固有ベクトルの方向マーク(0.81,0.58)


人気のリクエストごとに、Matlabコードを共有して上記のアニメーションを作成しました


79
+1素敵な物語とイラスト。...then to your mother; then to your wife; finally, to your daughter (who is a mathematician)...私は続けます:そして夕食の後-自分自身に。そして、ここであなたは突然立ち往生しました
...-ttnphns

68
これらの答えのためにあなたが作るイラストが大好きです。
シャドウトーカー

57
私は通常、Cross Validatedを参照して物事を読んでいますが、アカウントを作成する理由はありませんでした...主にここでの質問の種類は私の専門知識の範囲外であり、私は本当に答えることができません。通常、私はStackOverflowのみを使用しており、StackExchangeネットワークに約1年間在籍しています。ただし、主にあなたの投稿に賛成するために、今日アカウントを作成することにしました。これはおそらく、これまで読んだPCAの最高の博覧会であり、私は多くのことを読みました。この素晴らしい投稿をありがとう-素晴らしいストーリーテリング、グラフィックス、そしてそれはとても読みやすいです!+1
rayryeng

14
自分への注意:私の答えは現在100の賛成票を持っています。JDLongの答えは220の賛成票を持っています。一定の成長を前提とする場合、鉱山の年間投票数は100で、年間の投票数は40です。か55 /年のそれは100 upvotesを通過したため、計算された場合は月2014年[黄金のバッジを得た]これは私がのが:-)見てみましょう2018年の終わり頃、2.5--3年に追いつくことを意味します
アメーバ

3
自分への注意続き:見積もりを更新する必要があります。1か月後、この回答はJDLongの5に対して18の賛成票を獲得しました。これは、今から1年以内に追いつく可能性があることを示しています。興味深いことに、5 /月は上記の55 /年の見積もりに非常に近いですが、18 /月は100 /年の2倍以上です。私の答えは変わらなかったので、2位に到達することで投票が加速されたようです(おそらく可視性が向上したためです)。
アメーバ

376

Lindsay I Smithによる原稿「主成分分析のチュートリアル」は、 PCAを理解するのに本当に役立ちました。祖母に説明するにはまだ複雑すぎると思いますが、悪くはありません。固有値の計算などでは、最初の数ビットをスキップする必要があります。第3章の例にジャンプして、グラフを見てください。

PCAとOLSの線形回帰を理解できるように、いくつかのおもちゃの例を使ったいくつかの例があります。それらを掘り下げて投稿しようとします。

編集: あなたは通常最小二乗(OLS)とPCAの違いについては本当に質問しませんでしたが、メモを掘り下げてから、それについてのブログ投稿をしました。非常に短いバージョンは、y〜xのOLSで、このように独立軸に垂直なエラーを最小化します(黄色の線は2つのエラーの例です)。

代替テキスト

(最初の例のy〜xとは対照的に)x〜yを回帰すると、次のようなエラーが最小化されます。

代替テキスト

また、PCAは、次のようにモデル自体に直交する誤差を効果的に最小化します。

代替テキスト

さらに重要なことは、他の人が言ったように、独立変数の完全な束がある状況では、PCAはこれらの変数のどの線形結合が最も重要かを見つけるのに役立ちます。上記の例は、非常に単純なケースで最初の主成分がどのように見えるかを視覚化するのに役立ちます。

私のブログ投稿には、上記のグラフを作成し、最初の主成分を計算するためのRコードがあります。PCAについての直感を構築するために遊ぶ価値があるかもしれません。私はそれを再現するコードを書くまで、本当に何かを所有する傾向はありません。 


9
リンゼイIスミスの原稿をお読みください。今日お読みください。非常に役立ちます。
スティーディ

7
PCAは、ポイントからフィットラインまでの直交距離を最適化する場合、総最小二乗に相当しますか?
-Marcin

3
@Marcin-これは正しいです。あなたは最高ランクの発見として再フレーズPCAできる推定(1つのm個の≤のPオリジナルの)p個の変数を(X I Jm1mppの目的関数を持つ)、 Σ N iは= 1 Σ P J = 1X I 、J - X I 、J2。PCの数を選択することは、予測のランクを選択することと同じです。x^iji=1,,nj=1,,pi=1nj=1p(xijx^ij)2
確率論的

3
スミスの小さな数学エラー:「行列のすべての固有ベクトルは垂直です...次元の数に関係なく」は対称行列にのみ適用されます。それらは45度離れています。スミスは、共分散行列の対称性を以前に指摘していますが、含意ではありません-対称性によりn垂直固有ベクトルが保証されます。実際、すべての実行n x n列が実固有値({{0,1}、{-1,0}}など)を持っているわけではありません。また、n固有の固有ベクトル({{1,1}、{0 、1}})!対称性が重要です!
シルバーフィッシュ

8
固有ベクトルを教える数学者として、私はこのリンジー・スミスの原稿を読むとき、うんざりしなければなりません。「...結果のベクトルは元の整数倍です...」- 整数に言及するポイントは何ですか?行列Aの固有ベクトルは、AXがXの倍数であるような任意のベクトルXです。整数倍ではなく、単なる倍数です!非整数の倍数でも構いません!うん、なぜ不必要な混乱を作っていないのですか?
ドミトリザイツェフ

144

(2)を始めましょう。PCAは楕円体をデータに適合させます。楕円体は、葉巻、パンケーキ、卵などの歪んだ球形の多次元一般化です。これらはすべて、葉巻や卵の軸、またはパンケーキの平面など、主要な(半)軸の方向と長さによってきちんと説明されています。楕円体がどのように回転しても、固有ベクトルはそれらの主方向を指し、固有値は長さを与えます。最小の固有値は、変動が最小の最も細い方向に対応するため、それらを無視すると(フラットになります)、失われる情報は比較的少なくなります。これがPCAです。

(1)単純化(上記)の他に、簡潔な説明、視覚化、洞察が必要です。次元を減らすことができるのは良いことです。データの記述が簡単になり、幸運にも3つ以下に減らすことができれば、絵を描くことができます。画像の座標で表されるデータの組み合わせを解釈するための便利な方法を見つけることができる場合もあります。これにより、変数の共同動作を理解できます。


この図は、それぞれポイントの雲と、各雲の50%を含む楕円体と主方向に整列した軸を示しています。最初の行では、雲は本質的に1つの主成分を持ち、すべての分散の95%を構成しています。これらは葉巻の形です。2番目の行では、クラウドは本質的に2つの主成分を持ち、一方は他方の約2倍のサイズで、すべての分散の95%を構成します。これらはパンケーキの形です。3行目では、3つの主成分すべてがサイズ変更可能です。これらは卵の形です。200

フィギュア

クラスター、巻きひげ、または異常値を示さないという意味で「コヒーレント」な3D点群は、これらの1つに見えます。任意の3Dポイントクラウドのすべてではすべての点ではない--provided一致する-これらの図のいずれかによって記述することができる出発の初期点として、さらにクラスタリングまたはパターニングを同定します。

このような構成を熟考して開発した直感は、それらの次元を視覚化することが困難または不可能であっても、より高い次元に適用できます。


2
これに加えて、(ほぼ)等しい半軸がある場合(つまり、楕円体が(ほぼ)円形のスライスを持っている)、それらの軸に対応する2つのデータが(ほぼ)依存性を持っていることを示します。楕円の主軸について話すことができますが、円の半径は1つだけです。:)
JMは統計学者ではありません

6
ここでは、JM Firstの方がより慎重になります。明確にするために、「ほぼ依存」とは、「ほぼ独立」という意味です。これは多重正規変量の場合に当てはまりますが、多くの場合、PCAは著しく非正規のデータで実行されます。実際、いくつかのPCA計算に続くクラスタリング分析は、非正規性の強力な形態を評価する1つの方法と見なすことができます。数学的には、円に主軸がありますが、一意に決定されるわけではありません。主軸として半径の直交ペアを選択できます。
whuberの

1
はい、申し訳ありませんが、「円の主軸は不定です」と言った方が良いでしょう。
JMは統計家ではありません

2
非常に良い解釈!よりよく理解しようとしています。PCA数学のどこで、「PCAは楕円体をデータに適合させる」ことがわかりますか?
コチェデ

4
@Kochede楕円体は、2次形式の輪郭です。共分散行列は2次形式です。PCAは、その軸と長さを識別します。
whuberの

106

うーん、ここでは、PCAの完全に非数学的な見解を示します...

サイダーショップを開いたところを想像してください。50種類のサイダーがあり、それらを棚に割り当てる方法を考えて、同じ味のサイダーが同じ棚に置かれるようにします。サイダーにはさまざまな味とテクスチャーがあります-甘さ、酸味、苦味、酵母感、フルーツ感、透明感、発泡性などです。ボトルをカテゴリに入れるために必要なことは、2つの質問に答えることです。

1)サイダーのグループを識別するために最も重要な品質は何ですか?たとえば、甘さに基づいて分類することで、果物に基づいて分類するよりも、サイダーを似たような味のグループに簡単にクラスター化できますか

2)変数のいくつかを組み合わせて、変数のリストを削減できますか?たとえば、実際には「酵母と透明度と発泡性」のいくつかの組み合わせであり、品種を分類するための本当に良いスケールを作る変数がありますか?

これは基本的にPCAが行うことです。主成分は、データセットの変動を有効に説明する変数です。この場合、グループを有効に区別します。各主成分は、元の説明変数の1つ、または元の説明変数のいくつかの組み合わせです。


4
固有ベクトルと固有値はどうですか?
Ηλίας

3
わかりました:各主成分に関連付けられた固有値は、それが説明するデータセットの変動を示しています(私の例では、ボトルをグループに明確に分けています)。それらは通常、データセットの合計変動の割合として表されます。固有ベクトルに関しては、まあ、それは爪のように機械のような分析の出力に従うということです;)私の頭の中では、それらはあなたがビンスのモバイルをその「最良の」方向に回転させる方法に関連していますが、これはそうではないかもしれませんそれらを考える正しい方法。
フレイアハリソン

17
固有ベクトルは、元の変数(単純または回転した因子空間内)の線形結合です。変数が各因子軸にどのように「寄与する」かを説明しました。基本的に、PCAは、固有値で表される(元の変数空間内の)最大分散の方向を指す新しい軸を構築する方法として、およびこの新しい空間で変数の寄与が重み付けまたは線形変換される方法と考えてください。
chl

この問題の共分散行列はどのようなものでしょうか?変数(甘味、酸味、苦味、酵母感、フルーツ感、透明感、発泡性など)について教えてください。
JustCurious

1
統計学者やアルコール飲料についてはわかりませんが、Whiskey Classifiedはスコッチウイスキーに対してこれを正確に行います
...-nekomatic

96

PCAは直線をデータポイントに適合させることを目指していると言って、「素人の用語」で答えます(誰もが直線とは何かを知っています)。これらの直線を「主要コンポーネント」と呼びます。変数と同じ数の主成分があります。最初の主成分は、データに適合できる最適な直線です。2番目の主成分は、最初の主成分からの誤差に適合することができる最良の直線です。3番目の主成分は、1番目と2番目の主成分などからの誤差に適合することができる最良の直線です。

「最良」または「エラー」の意味を誰かが尋ねると、これは「素人」ではないことを示しているため、垂直エラーなどの技術的な詳細に進むことができます。エラーの場所はわかりませんx方向またはy方向、2次元または3次元以上など。さらに、OLS回帰(「素人」もおそらく理解できない)への参照を避ければ、説明は簡単です。

固有ベクトルと固有値は、本質的には必要な概念ではなく、むしろすでに存在する数学的概念でした。PCAの数学的問題を解くと、共分散行列の固有値と固有ベクトルを見つけることに等しくなります。


8
+1、これは本当に「素人の用語」であり、あなたが望むなら非常に厳密に導き出すことができることを知っています!
グン

2
これまでの最良の答えは、私が言うだろう。そして、私はPCAをよく使います。
a11msp

2
うわー、これは本当に素晴らしい簡単な説明です!ありがとうございました!
ニック

52

私はあなたにPCAの私自身の説明/証明を与えることができます。これは本当にシンプルでエレガントで、線形代数の基本的な知識以外は何も必要としないと思います。シンプルでアクセシブルな言語で書きたかったので、かなり長くなりました。

我々はいくつか持っていると仮定からのデータのサンプルをN次元空間。ここで、できるだけ多くの分散を保持する方法で、このデータをn次元空間の数行に投影します(つまり、投影されたデータの分散は、元のデータの分散と比較して、可能)。Mnn

βββ - μ 0 X ' I =のX I - μ Σ M I = 1X ' iが2i=1Mxiμ2μ0xi=xiμi=1Mxi2

今、行の選択。いくつかのベクトルについて、方程式を満たす点の集合として任意の線を記述することができます。に直交するベクトル線を移動すると、線上のすべての投影もで移動するため、投影の平均はで移動することに注意してください。したがって、投影の分散は変更されません。これは、線をそれ自体に平行に移動でき、この線上の投影の分散を変更できないことを意味します。便宜上、ゼロ点を通過する行(これは記述された行を意味します)のみに限定しましょう。V W γ V γをγ X = αのVx=αv+wv,wγvγγx=αv

さて、ここで、検索する線の候補となる線の方向を記述するベクトルがあると仮定します。線上の投影の分散を計算する必要があります。必要なのは投影点とその平均です。線形代数から、この単純な場合では、へのの射影はます。これからは、単位ベクトルのみに制限しましょう。つまり、上の点投影の長さを、単に書くことができることを意味します。α 、VのX " 私は α V X IV /V 2 V X " 私は V X " IV vαvxiαvxi,v/v2vxivxi,v

以前の回答のいくつかでは、PCAは選択された線からの距離の2乗の合計を最小化するという人がいました。投影の平方和に選択したラインからの距離の平方和を加えたものが、ポイントからの距離の平方和に等しいため、これが正しいことがわかり。投影の二乗和を最大化することにより、距離の二乗和を最小化し、逆も同様です。しかし、これは、今では証明に戻った、思慮深い余談でした。0

射影の平均については、は空間の直交基底の一部であり、その基底のすべてのベクトルにデータポイントを投影すると、それらの合計はキャンセルされることに注意してください(基底からのベクトルは、新しい直交基底にデータポイントを書き込むようなものです。したがって、ベクトルのすべての投影の合計(合計呼び出します)および基底からの他のベクトルの投影の合計(呼び出します)は、データポイントの平均なので0です。しかし、はに直交してい!つまり、です。v S v S o S v S o S o = S v = 0vvSvSoSvSoSo=Sv=0

したがって、予測の平均はです。0分散は投影の長さの2乗和、またはシンボルであるため、便利です

i=1M(xiv)2=i=1MvTxiTxiv=vT(i=1MxiTxi)v.

さて、突然、共分散行列が飛び出しました。単純に示しましょう。これは、いくつかの半正定行列に対してを最大化する単位ベクトルを探していることを意味します。XvvTXvX

ここで、行列固有ベクトルと固有値を取得し、それらをそれぞれおよび示し、。値が重複しない場合、固有ベクトルは正規直交基底を形成します。もしそうなら、正規直交基底を形成する方法で固有ベクトルを選択します。Xe1,e2,,enλ1,,λnλ1λ2,λ3λ

次に、固有ベクトルを計算してみましょう。我々は持っているvTXvei

eiTXei=eiT(λiei)=λi(ei2)2=λi.

これは、を提供します。ここで、任意のベクトル取ります。固有ベクトルは正規直交基底を形成するため、を書くことができ、。示しましょう。λ1e1vv=i=1neiv,eii=1nv,ei2=1βi=v,ei

それでは数えてみましょう。を線形結合として書き換え、次を取得します:vTXvvei

(i=1nβiei)TX(i=1nβiei)=(i=1nβiei)(i=1nλiβiei)=i=1nλi(βi)2(ei2)2.

最後の方程式は、固有ベクトルがペアワイズ直交になるように選択されているため、それらのドット積はゼロです。ここで、すべての固有ベクトルも単位長であるため、、ここではすべて正合計します。vTXv=i=1nλiβi2βi21

これは、投影の分散が固有値の加重平均であることを意味します。確かに、それは常に最大の固有値よりも小さいため、最初のPCAベクトルを選択する必要があります。

別のベクトルが必要だとします。すでに選択されているものと直交する空間、つまり部分空間から選択する必要があります。類推により、プロジェクトに最適なベクトルはであるという結論に達します。などなど...lin(e2,e3,,en)e2

ちなみに、保持されている分散がで表現できる理由は明らかです。i=1kλi/i=1nλi

また、貪欲なベクトルの選択を正当化する必要があります。投影するベクトルを選択する場合、最初に最適なベクトルを選択し、次に残りのベクトルなどから最適なベクトルを選択することは最善のアイデアではない場合があります。この場合、それは正当化され、違いはないと主張したいと思います。投影したいベクトルを示しましょう。また、ベクトルがペアワイズ直交であると仮定しましょう。すでに知っているように、これらのベクトルの投影の合計分散は、ここで、kkv1,,vk

j=1ki=1nλiβij2=i=1nλiγi
γi=j=1kβij2.

それでは、を含む正規直交基底でを書きましょう。残りの基底をとして示しましょう。我々が見ることができる。なぜなら、我々は、従ってすべてのための。eiv1,,vku1,,unkei=j=1kβijvj+j=1nkθjei,ujei2=1j=1kβij2+j=1nkθj2=1γi1i

1つのベクトルと同様のケースがあり、投影の合計分散が、および。これはさらに別の加重平均であり、確かに最大の固有値に対応する固有ベクトルへの投影に対応するです。γ I1 Σ N I = 1i=1nλiγiγi1i=1nγi=ki=1kλik


2
+1とてもいい答えです!まだ完全には読んでいませんが、あなたの答えは私が探していたようなものです。すべてのステップの説明=)
jjepsuomi

9
基本的な線形代数を知っているレイマンを見せてください。数学の学部生を紹介します。
確率論的

線形代数から、我々は、この単純なケースでは、投影ことを知っている上でxiαvxi,v/v2(第5項)。てはなりません ?言い換えれば、スカラー射影?xi,v/v
アントニ・パレラダ

1
これは、これまで見た中でPCAの断然最高の説明だと思います。ありがとうございました。
ニミッツ14

1
これは、固有ベクトルが分散を最大化する理由を示す私のお気に入りの説明です。
ロムウェル

47

さて、これを試してみます。数か月前、統計学者以外に説明できる直感的な説明を見つけるために、かなりの量の文献を掘り下げました。ラグランジュ乗数を使用する派生が最も直感的であることがわかりました。

高次元のデータがあるとしましょう。たとえば、昆虫について行われた30回の測定です。バグはこれらの次元のいくつかで異なる遺伝子型とわずかに異なる物理的特徴を持っていますが、このような高次元のデータでは、どの昆虫がどのグループに属しているかを判別するのは困難です。

PCAは、以下によって次元を削減する手法です。

  1. 元の変数の線形結合を取得します。
  2. 各線形結合は、可能なデータの最大の分散を説明します。
  3. 各線形結合は他の線形結合と無相関です

または、数学用語で:

  1. 用(j番目の成分のための線形結合)Yj=ajx
  2. 以下のための、(第一成分は、より変化を説明します)k>jV(Yk)<V(Yj)
  3. akaj=0(直交性)

これらの制約を満たす線形結合を見つけると、固有値が得られます。どうして?

私は本をチェックアウトをお勧めします多変量データ解析への入門をケースを防ぐために((P。50)フル導出するために、基本的な考え方は、連続最適化問題(分散を最大化)は、係数のために、このようなことA'A = 1を拘束されています分散が無限になる可能性がある場合)、係数が直交するように制約されます。

これにより、ラグランジュ乗数による最適化が行われ、固有値が使用される理由が明らかになります。私はそれを入力するのが面倒です(ごめんなさい!)が、このPDFはこの時点からかなりよく証明されています。

私はこれを祖母に説明しようとは決してしませんが、次元削減手法について一般的に話さなければならない場合、この単純な投影例(PCAではない)を指摘します。非常に複雑なCalderモバイルがあるとします。3次元空間内のいくつかのポイントは互いに近く、他のポイントはそうではありません。このモバイルを天井から吊り下げ、ある角度から照らすと、低次元の平面(2次元の壁)に投影されます。現在、このモバイルが主に一方向に広く、他の方向に細い場合、それを回転させて有用性の異なる投影を得ることができます。直感的には、壁に投影された1次元の細い形状はあまり有用ではありません。すべての影が重なっており、多くの情報を提供しません。しかし、光が広い側を照らすように回転させると、縮小された次元データのより良い画像が得られます-ポイントはより広がります。これはしばしば私たちが望むものです。私の祖母はそれを理解できたと思う:-)


6
それは非常に素人です;-)

2
それは少しマチですが、何かを理解する最良の方法はそれを導き出すことです。
ビンス

29
あなたは非常に教育を受けた祖母を持っています:-)。
whuber

7
3次元構造を照らす光の説明が好き
ニールマクギガン

(+1)すべてが素晴らしい答えですが、これも私が与えるものです。
DIGIO

37

非技術的になろうとしている...多変量データ、ポイントの多次元クラウドがあるとします。実際にそれらの共分散行列を計算すると、(a)雲の中心、つまり多次元平均として原点を置くと、座標系の軸は雲の中心で交差し、(b)雲の形状に関する情報を暗号化するそして、分散共分散エントリによって空間内でどのように方向付けられているか。したがって、データ全体の形状に関する重要な情報のほとんどは、共分散行列に保存されます。

次に、その行列の固有分解を行い、固有値のリストと対応する固有ベクトルの数を取得します。これで、第1 主成分は新しい潜在変数になり、原点を通り、雲の最大分散(厚さ)の方向に沿った軸として表示できます。この軸に沿って分散が、その上のすべての点の座標の分散、すなわち、あります最初の固有値、および元の軸(変数)を参照する空間内の軸の方向は、最初の固有ベクトルによって定義されます。そのエントリは、元の軸とそれらの元の軸の間の余弦です。前述の1番目のコンポーネント上のデータポイントの座標は、1番目の主成分値、つまりコンポーネントスコアです。それらは(中心の)データ行列と固有ベクトルの積として計算されます。

「後」第1広報。測定されたコンポーネントは、すべての分散を考慮してクラウドから「削除」され、クラウドの次元は1つ低下します。次に、すべてが2番目の固有値と2番目の固有ベクトル(2番目のpr)で繰り返されます。コンポーネントが記録され、「削除」されます。等。

そのため、再び、固有ベクトルは主成分の方向余弦であり、固有値は主成分の大きさ(分散)です。すべての固有値の合計は、分散共分散行列の対角にある分散の合計に等しくなります。固有値に格納された「マグニチュード」情報を固有ベクトルに転送して、そこに格納された「方向」情報に追加すると、主成分ロードと呼ばれるものが得られます。これらの負荷は、両方のタイプの情報を運ぶため、元の変数と主成分間の共分散です。

後でPS 固有ベクトル負荷の用語の違いをここで2回強調したいと思います。多くの人々と一部のパッケージ(を含むR)は、2つの用語を区別なく使用しています。オブジェクトとその意味が異なるため、これは悪い習慣です。固有ベクトルは方向余弦、PCAに相当する直交する「回転」の角度です。ロードは、回転データの変動性または大きさに関する情報が接種された固有ベクトルです。負荷は、コンポーネントと変数の間の相関係数であり、変数間で計算された相関係数(共分散、相関または他のスカラー積)と直接比較できます、PCAのベースになります。固有ベクトルと負荷の両方は、コンポーネントによる変数の予測において回帰係数を提供するという点で類似しています(その逆ではありません!1)。固有ベクトルは、生のコンポーネントスコアによって変数を予測するための係数です。負荷は、スケーリングされた(正規化された)コンポーネントスコアによって変数を予測するための係数です(当然ですが、負荷によって変動に関する情報が蓄積されるため、使用するコンポーネントからその変数を排除する必要があります)。固有ベクトルと負荷を混合しないもう1つの理由は、因子分析の形式など、PCA以外の次元削減手法が固有ベクトルをバイパスして負荷を直接計算することです。固有ベクトルは、固有分解または特異値分解の積です。因子分析のいくつかの形式は、これらの分解を使用せず、逆に負荷に到達します。最後に、それは固有ベクトルではなく負荷であり、それによってコンポーネントまたはファクターを解釈します(それらを解釈する必要がある場合)。ロードとは、変数へのコンポーネントの寄与に関するものです。PCA(または因子分析)では、コンポーネント/因子は変数自体にロードされます。包括的なPCA結果では、次のように固有ベクトルと負荷の両方を報告する必要があります。ここまたはここ

ローディングと固有ベクトルについてもご覧ください


1 PCAの固有ベクトル行列は正規直交であり、その逆行列は転置であるため、これらの同じ固有ベクトルは変数によって成分を逆予測する係数でもあると言えます。ただし、ロードの場合はそうではありません。


@amoeba、私は主張せず、あなたはあなたが慣れているどんな用語を使ってもよい。「ローディング」と「固有ベクトル」という用語を区別する方がよいと思う理由を明確に説明しました。私はハーマンなどの古典的な伝統に従います。私が伝統を正しく覚えている場合にのみ、現代因子分析。
ttnphns 14

(続き)とにかく、「ローディング」という用語は、実際にはかなり疑わしいものではありますが、判別分析などの他の多変量解析で「固有ベクトル」と混同されないことをご存じでしょう。繰り返しになりますが、PCAの負荷には、1)変動の大きさに関する情報を組み込みます。2)共分散/相関であるため、解釈に使用されます。固有ベクトル値-そうではありません。
ttnphns 14

2
+1 PCAおよびその他の関連する問題に関するあなたの投稿を読んでおり、多くのことを学びました。
アントニ・パレラダ

29

OK、完全に非数学的な答え:

たくさんのサブジェクトにたくさんの変数があり、それらを同じサブジェクトのより少ない数の変数に減らして、できるだけ少ない情報を失いたい場合、PCAはこれを行うツールの1つです。

因子分析とは異なりますが、FAは潜在変数に関連すると考えられる多数の観測変数から少数の潜在変数を回復しようとするため、同様の結果が得られることがよくあります。


やあピーター!ここでお会いできてうれしいです。これは本当に素晴らしく、シンプルで、数学的な答えではありません。
JD

3
他の誰も議論していないようで、一部の人々の説明が融合しているように見えるFAに言及するための+1。
グン

PCAとFAの目標に違いはないようです-どちらも回転することを目的としているため、最も重要な要因(潜在ベクトル、固有次元、特異ベクトルなど)を確認できます。しかし、FAはアルゴリズムではなく、関連する定義が不十分な目的(つまり、多様で相互に一貫性がないため、異なるバリアントが異なるものを「最適化する」)を持つ関連技術のファミリー(相互およびSVDとPCA)のようです。
デビッドMWパワーズ14年

PCAは因子分析を行う多くの可能な方法の1つであると言うのは正しいでしょうか?
abalter

この分野の用語は一貫していないことで有名です。
ピーター・フロム

29

2次元で計算するのが最も簡単です。

すべての行列は線形変換に対応しています。平面上の記憶に残る図形を取得し、その図形が線形変換によってどのように歪むかを確認することにより、線形変換を視覚化できます。

線形変換 (写真:フラニガン&カズダン

  • 固有ベクトルは、同一のベクトルです。変換後は、以前と同じ方向を指します。モナリザ固有ベクトル(青は同じままなので、方向は固有ベクトルです。)shear
  • 固有値とは、同じままのベクトルがどれだけ成長または縮小するかです。(青は同じサイズのままなので、固有値はます。)×1
  • PCAは軸を回転させて、データに合わせて「整列」します。(ソース:weigend.com PCAは、共分散行列の固有ベクトルを使用して、データの回転方法を計算します。ので回転が線形変換の一種である、あなたの新しい次元のような古いものの合計になります。PCAフットボール
    1=23%[1]+46%[2]+39%[3]

実際のデータを扱う人々が固有ベクトルと線形変換に興味を持っている理由は、異なるコンテキストで「線形」()本当に興味深いものをカバーできます。たとえば、とに新しい意味が与えられた場合、またはとが興味深いフィールドから来た場合、またはとがいくつかの興味深いスペースから来た場合そのプロパティの意味を考えます。f(ax+by)=af(x)+bf(y)+abxy

顔

PCA自体も別の例であり、統計学者に最も馴染みのあるものです。フレイアのような他の答えのいくつかは、PCAの実世界のアプリケーションを提供します。

私は、「回転」のような単純なものが、推奨システム地政学的な対立を説明しています。しかし、より良い基礎を選択する物理学について考えると、それほど驚くことではないかもしれません(例えば、ではなく軸を運動方向にするは、不可解な方程式を単純な方程式に変更します)。similar how? X42.8[X]57.2[Y]x42.8%[x]57.2%[y]


2
実際、回転は線形であるため、非幾何学的データで何が起こっているかを説明する便利な方法であることが偶然の一致です。偶然の一致は、デカルト/ユークリッド空間と中央極限定理/ガウスの両方の二次の性質に関連しています。Viz。シグマは直交次元のように二次的に加算されます。ここで、NDの回転/直交の用語は、2Dおよび3D空間との類推から始まります。
デビッドMWパワーズ14

@DavidMWPowers興味深い。私は線形代数の観点から回転について考えています。
同型14

27

このスレッドでのJD Longのすばらしい投稿の後、簡単な例を探し、PCAを生成して元のデータに戻るために必要なRコードを探しました。いくつかの直接的な幾何学的な直感を与えてくれたので、得たものを共有したいと思います。データセットとコードを直接コピーして、RフォームGithubに貼り付けることができます

ここで半導体オンラインで見つけたデータセットを使用し、プロットを容易にするために、「原子番号」と「融点」の2つの次元にトリミングしました。


注意事項として、この概念は計算プロセスの単なる説明です。PCAは、2つ以上の変数をいくつかの派生主成分に減らすため、または複数の特徴の場合に共線性を識別するために使用されます。したがって、2つの変数の場合にはあまり適用されず、@ amoebaで指摘されているように相関行列の固有ベクトルを計算する必要もありません。


さらに、個々のポイントを追跡するタスクを簡単にするために、観測値を44から15に切り捨てました。最終的な結果は、スケルトンデータフレーム(dat1)です。

compounds   atomic.no      melting.point
AIN         10             498.0
AIP         14             625.0
AIAs        23             1011.5
...         ...            ... 

「化合物」列は、半導体の化学組成を示し、行名の役割を果たします。

これは次のように再現できます(Rコンソールでコピーして貼り付ける準備ができています)。

dat              <- read.csv(url("http://rinterested.github.io/datasets/semiconductors"))
colnames(dat)[2] <- "atomic.no"
dat1             <- subset(dat[1:15,1:3])
row.names(dat1)  <- dat1$compounds
dat1             <- dat1[,-1]

次に、データをスケーリングしました。

X <- apply(dat1, 2, function(x) (x - mean(x)) / sd(x))
# This centers data points around the mean and standardizes by dividing by SD.
# It is the equivalent to `X <- scale(dat1, center = T, scale = T)`  

線形代数のステップは次のとおりです。

C <- cov(X)                                           # Covariance matrix (centered data)

[at_nomelt_pat_no10.296melt_p0.2961]

相関関数cor(dat1)は、スケーリングされていないデータでも、スケーリングされたデータの関数と同じ出力を提供しcov(X)ます。

lambda        <- eigen(C)$values                      # Eigenvalues
lambda_matrix <- diag(2)*eigen(C)$values              # Eigenvalues matrix

[λPC1λPC21.296422000.7035783]

e_vectors     <- eigen(C)$vectors                     # Eigenvectors

12[PC1PC21111]

最初の固有ベクトルは最初にとして返されるため、組み込み式との一貫性をこれをに変更することを選択します。[0.7,0.7][0.7,0.7]

e_vectors[,1] = - e_vectors[,1]; colnames(e_vectors) <- c("PC1","PC2")

結果の固有値はおよび。最小限度の条件では、この結果はどの固有ベクトルを含めるかを決定するのに役立ちます(最大固有値)。たとえば、最初の固有値の相対的な寄与は:です。これは、データの変動性のを占めることを意味します。2番目の固有ベクトルの方向の変動はです。これは通常、固有値の値を表すスクリープロットに表示されます。1.29642170.703578364.8%eigen(C)$values[1]/sum(eigen(C)$values) * 10065%35.2%

ここに画像の説明を入力してください

この玩具データセットの例のサイズが小さい場合、両方の固有ベクトルを含めます。固有ベクトルの1つを除外すると、次元の削減につながることを理解します-PCAの背後にある考え方。

スコア行列は、行列乗算として決定されたスケーリングされたデータXによる)の固有ベクトル(または「回転」)のマトリックス

score_matrix <-  X %*% e_vectors    
# Identical to the often found operation: t(t(e_vectors) %*% t(X))

概念は、各固有ベクトル行で重み付けされた中央の(この場合はスケーリングされた)データの各エントリ(この場合は行/主題/観測/超伝導体)の線形結合を必要とします。スコアマトリックス、データの各変数(列)(全体)からの寄与を見つけます。ただし、対応する固有ベクトルのみが計算に関与します(つまり、最初の固有ベクトルは次のように、(主成分1)およびへのに貢献し。X PC[0.7,0.7]T[ 0.7 0.7 ] T PCPC1[0.7,0.7]TPC2

ここに画像の説明を入力してください

したがって、各固有ベクトルは各変数に異なる影響を与え、これはPCAの「負荷」に反映されます。この場合、2番目の固有ベクトルの2番目の成分の負符号は、PC2を生成する線形結合の融点値の符号を変更しますが、1番目の固有ベクトルの効果は常に正になります。 [0.7,0.7]

ここに画像の説明を入力してください

固有ベクトルはスケーリングされます。1

> apply(e_vectors, 2, function(x) sum(x^2))
PC1 PC2 
  1   1 

一方、(loadings)は固有値でスケーリングされた固有ベクトルです(下に表示される組み込みR関数の用語はわかりにくいですが)。したがって、負荷は次のように計算できます。

> e_vectors          %*% lambda_matrix
          [,1]      [,2]
[1,] 0.9167086  0.497505
[2,] 0.9167086 -0.497505

> prcomp(X)$rotation %*% diag(princomp(covmat = C)$sd^2)
                   [,1]      [,2]
atomic.no     0.9167086  0.497505
melting.point 0.9167086 -0.497505

回転したデータクラウド(スコアプロット)には、固有値に等しい各コンポーネント(PC)に沿った分散があることに注意してください。

> apply(score_matrix, 2, function(x) var(x))
       PC1        PC2 
53829.7896   110.8414 
> lambda
[1] 53829.7896   110.8414

組み込み関数を使用して、結果を複製できます。

# For the SCORE MATRIX:
  prcomp(X)$x
# or...
  princomp(X)$scores # The signs of the PC 1 column will be reversed.

# and for EIGENVECTOR MATRIX:
  prcomp(X)$rotation
# or...
  princomp(X)$loadings

# and for EIGENVALUES:
  prcomp(X)$sdev^2
# or...
  princomp(covmat = C)$sd^2

あるいは、特異値分解()メソッドを適用して、PCAを手動で計算できます。実際、これはで使用されている方法です。手順は次のように綴ることができます。UΣVTprcomp()

svd_scaled_dat <-svd(scale(dat1))
eigen_vectors <- svd_scaled_dat$v
eigen_values <- (svd_scaled_dat$d/sqrt(nrow(dat1) - 1))^2
scores<-scale(dat1) %*% eigen_vectors

結果を以下に示します。最初に、個々の点から最初の固有ベクトルまでの距離、2番目のプロットでは、2番目の固有ベクトルまでの直交距離を示します。

ここに画像の説明を入力してください

代わりに、スコアマトリックス(PC1およびPC2)の値をプロットした場合、「melting.point」および「atomic.no」ではなく、固有ベクトルを基準としたポイント座標の基底の変化である場合、これらの距離は保存されますが、自然にxy軸に垂直になります:

ここに画像の説明を入力してください

トリックは、元のデータ回復することでした。点は、固有ベクトルによる単純な行列乗算によって変換されていました。これで、データは、固有ベクトルの行列の逆数とデータポイントの位置の顕著な変化を乗算することにより、回転されました。たとえば、左上の象限(下の左のプロットの黒丸)のピンクのドット「GaN」の変化に注目してください。左下の象限(下の右のプロットの黒丸)の初期位置に戻ります。

これで、最終的にこの「逆回転」行列で元のデータが復元されました。

ここに画像の説明を入力してください

PCAのデータの回転座標の変化を超えて、結果を解釈する必要があり、このプロセスではbiplot、新しい固有ベクトル座標に対してデータポイントがプロットされ、元の変数がベクトル。(追従プロットで左)(「XY軸=固有ベクトルとスコア」)は、上記回転グラフの2行目のプロットとの間の点の位置に同等に注意することは興味深いことである、とbiplotします(右):

ここに画像の説明を入力してください

赤い矢印はの解釈へのパスを提供するように、元の変数の重畳PC1両方と方向(又は正の相関を有する)のベクトルとしてatomic no、およびmelting point、およびのPC2増加する値に沿った成分として、atomic no負の相関が melting pointあり、固有ベクトルの値と一致します:

PCA$rotation
                    PC1        PC2
atomic.no     0.7071068  0.7071068
melting.point 0.7071068 -0.7071068

Victor Powellによるこのインタラクティブなチュートリアルは、データクラウドが変更されたときの固有ベクトルの変化について即座にフィードバックを提供します。


1
努力、特にアニメーションのために+1!ただし、2変数の相関行列はすべて固有ベクトルを持っているため、2変数の相関行列のPCAは少し特殊なケースであることに注意してください。その1つは常に[0.7 0.7](0.7は1 / sqrt (2))。これは、共分散行列、または高次元の相関行列の場合ではありません。
アメーバ

14

PCAを頻繁に使用した(そして数人にも説明しようとした)人から、ここに私自身の神経科学の分野の例があります。

人の頭皮から録音するときは、64の電極で録音します。したがって、実際には、頭皮から放出される電圧を表す64個の数値がリストにあります。マイクロ秒の精度で記録するので、1時間の実験(多くの場合4時間)がある場合、各電極で電圧が記録された1e6 * 60 ^ 2 == 3,600,000,000の時点が得られます。 3,600,000,000 x 64のマトリックスがあります。PCAの主要な前提は変数が相関していることであるため、このとんでもない量のデータを扱いやすい量に減らすのは素晴らしいテクニックです。すでに何度も言われているように、固有値は変数(列)によって説明される分散の量を表します。この場合、固有値は、特定の電極による特定の時点での電圧の変動を表します。これで、「ああ、井戸電極xyそれが最も変化が起こっている場所であるため、時点でさらなる分析のために私たちが焦点を合わせるべきである。」これが役立つことを願っています。それらの回帰プロットを愛する!


12

私はこれを答えるのが悪い人かもしれません。なぜなら、私は私に説明された概念を持っていて、それ以上のことはしなかったということわざの祖母だからです。

人口があるとします。人口の大部分が心臓発作で死亡しています。あなたは心臓発作の原因を解明しようとしています。

身長と体重の2つのデータがあります。

今、体重と心臓発作の間にいくつかの関係があることは明らかですが、相関関係はあまり強くありません。重い心臓発作を起こす人もいますが、そうでない人もいます。

さて、あなたはPCAを行い、体重を身長で割った値(「体重」)は、体重と身長よりも心臓発作を予測する可能性が非常に高いことを示しています。心臓発作を引き起こす体重。

本質的に、PCAを行うのは、多くのことを測定しており、それらが本当に主要なコンポーネントであるのか、測定していないより深い基礎コンポーネントがあるのか​​本当にわからないからです。

[完全にベースから外れている場合は、自由に編集してください。この概念については、これ以上深く理解していません]。


1
統計サイト@Joelへようこそ!機会があれば、提案されている分散StackExchangeデータ分析プロジェクトstats.stackexchange.com/questions/2512/…の議論にも貢献してください
シェーン

9
すばらしい例ですが、技術的にはPCAは体重の説明を見つけることができません。これは、元の変数の加重和である線形の説明しか見つけることができないためです。ただし、入力変数のログを取ると、比率は差になり、正しい説明であれば、PCAはそれを見つけることができます。
デビッドMWパワーズ14年

10

おばあちゃんのためのものです:

私たちの町には、北と南に行く通りがあり、一部は東と西に行き、一部は北西と南東に行き、一部は北東から南西に向かっています。ある日、男はすべての道路のすべてのトラフィックを測定しますが、ほとんどのトラフィックは北西から南東に斜めに流れており、2番目に大きいトラフィックは北東から南西に向かってこれに垂直であり、残りはすべてかなり小さいことがわかります。そこで彼は大きな正方形を描き、大きな線を左から右に入れて、それがSEのNWであると言ってから、真ん中を上下に別の線を描きます。彼は、トラフィックの2番目に混雑した方向(NEからSW)であると言います。残りは小さいので無視できます。

左右の線は最初の固有ベクトルであり、上下の線は2番目の固有ベクトルです。左右に移動する車の総数が最初の固有値であり、上下に移動する車が2番目の固有値です。


1
この類似性は、調査中に壊れているようです。最大と2番目に大きいトラフィック方向が直交していない場合はどうなりますか?このような場合、PCAを理解するのにあなたの類推はどのように役立ちますか?
whuberの

おばあちゃんは直交の意味を理解していると思いますか?はい、そこにいくつかの欠陥がありますが、それは始まりです。ここで非常に多くの答えがあったことは素晴らしいことだと思います。
バハボブ

2
「おばあちゃん」が投稿を理解しているかどうかにかかわらず、それは合理的に明確かつ正確である必要があります。あなたの類推は、これらの目的のどちらも達成していないようです。それは、私がその類推を理解していないからかもしれません。PCAとは何なのか、または何をするのかと接続することはできません。おそらく、他の読者が私ほど謎にならないように、類推がどのように機能するかを明確にすることができます。
whuber

それらが直交していないという事実は、PCAではなくICAまたはFAが必要であることを意味します。おばあちゃんが障害者の船を斜めに見せているときにスタートレックを見ていた場合(彼女はその世代です)-PCAはスケールとビューに関連する基準面(銀河面または船の軸)を回復する傾向があります。
デビッドMWパワーズ14

-1。@whuberには、このアナロジーが機能しないことに同意します。ここでデータとなるものは何ですか、これらの「固有ベクトル」はどの共分散行列ですか?まったくわかりません。
アメーバ

10

この答えは、直感的で数学的な解釈ではありません:

PCAは、高次元の点群内の一連の直交ベクトルを提供します。ベクトルの順序は、すべてのポイントをベクトルに投影した後に伝達される情報によって決まります。

言い換えると、最初の主成分ベクトルは、すべてのポイントをベクトルに投影した後、ポイントクラウドについて最も多くを示します。これはもちろん直感的な解釈です。

この楕円を見てください(3Dモデルのリンクをたどってください)

ここに画像の説明を入力してください

楕円点の点が投影される1次元の部分空間を形成する1つのベクトルを選択する必要がある場合。元のセットに関する最も多くの情報を3次元で伝えるため、どちらを選択しますか?

最も長い軸に沿って赤いものを推測します。そして、これは実際に計算された第1主成分です!次はどれですか-次に長い軸に沿って青いものを選択します。

通常、高次元空間のポイントセットを2次元平面または3次元空間に投影します

ここに画像の説明を入力してください


http://www.joyofdata.de/blog/illustration-of-principal-component-analysis-pca/


10

PCAの直感的な理解を提供するために与えられた多くの例がありますが、その事実は、少なくとも私にとっては、最初はほとんど把握するのがより困難になる可能性があります。

「異なる分野からのこれらの異なるすべての例に共通するPCAの1つのことは何でしたか?」

私は直感的に理解するのに役立ちましたが、数学はあなたにとって簡単な部分であることが明らかなので、数学の類似点がいくつかありましたが、これはあなたの祖母にそれを説明するのに役立ちません...

正則化の問題を考えて、

||XBY||=0

YY

YYXkBYXBkSVSVT

AA


9

数学的な答えは次のとおりです。最初の主成分はデータの最長次元です。それを見て、尋ねます:データはどこが最も広いのですか?それが最初のコンポーネントです。次のコンポーネントは垂直です。したがって、データの葉巻には長さと幅があります。長方形のようなものには意味があります。


6
残念ながら、この答えの正しさは、あいまいな表現「最長」がどのように解釈されるかに依存します。直径などの多くの自然で関連する解釈は間違っています。
whuberの

PCAは実際に、さまざまなタイプの自然な方法で寸法/サイズを測定するのに非常によく機能します。共分散行列を任意の方向の「次元」を測定する行列に置き換える必要があります(行列は正の定義または対称である必要があります)。これはQuickSortが異なる順序演算子に対して機能するのと同じですが、異なる結果が得られます。異なる順序演算子用。
ジェームズLI 14

9

主成分を理解する方法は次のとおりです。複数の変数(高さ、重量、年齢、温度、波長、生存率など)を持つデータを3次元で表示して、関連性をプロットできます。

どういうわけか「3Dデータ」の意味を理解したい場合は、この3Dデータのどの2D平面(断面)が特定の変数スイートについて最も多くの情報を含んでいるかを知りたいかもしれません。これらの2D平面は主成分であり、各変数の割合が含まれています。

主成分は、元の変数(この新しい変数は、部品の重量、部品の高さ、部品の年齢などとして記述できます)の複合特性を持つ変数自体と考えてください。ある主成分(X)を別の主成分(Y)に対してプロットすると、元の変数間の相関を幾何学的に記述することができる2Dマップを作成します。ここで有用な部分:比較される各サブジェクト(観測)は各変数の値に関連付けられているため、サブジェクト(観測)もこのXYマップ上のどこかにあります。それらの位置は、基礎となる各変数の相対的な寄与に基づいています(つまり、1つの観測値は年齢と体温の影響を大きく受け、別の観測値は身長と体重の影響をより受けます)。


8

第2部では、数学ではない反応と、数学による動機付けのより詳細な鳥瞰図を示します。


非マシー:

数学的な説明ではないが、PCAはデータの分散が最も大きい方向を確認できるため、高次元のデータに役立ちます。これらの指示は主成分です。この情報を取得したら、場合によっては、主成分を意味のある変数自体として使用することを決定し、主成分の分散が最も大きい(説明力)だけを維持することで、データの次元を大幅に削減できます。

たとえば、30の質問を含む政治投票アンケートを行い、それぞれに1(強く同意しない)から5(強く同意する)の回答を与えることができるとします。大量の応答が得られ、30次元のデータが得られたので、そこから頭や尻尾を作ることはできません。そして必死になって、PCAを実行し、分散の90%が一方向から来ており、その方向がどの軸にも対応していないことを発見すると思います。データをさらに調べた後、この新しいハイブリッド軸は、政治的な左右のスペクトル、つまり民主党/共和党のスペクトルに対応すると結論付け、データのより微妙な側面を調べます。


マシー:

ズームアウトして、意味に光を当てる数学的な動機を見ることは時々役立ちます。

座標軸を変更するだけで対角行列に変換できる特別な行列ファミリがあります。当然、それらは対角化可能行列と呼ばれ、エレガントに言えば、これを行うために必要な新しい座標軸は実際に固有ベクトルです。

結局共分散行列は対称であり、常に対角化可能です!この場合、固有ベクトルは主成分と呼ばれ、固有ベクトル座標で共分散行列を書き出すとき、対角成分(左の1つのみ)は固有ベクトルの方向の分散に対応します。これにより、どの方向の分散が最も大きいかを知ることができます。さらに、これらの座標では共分散行列が対角線であるため、変数間のすべての相関関係を巧妙に除去しました。

実際のアプリケーションでは一般的であるように、変数は正規分布しているため、最も単純な画像を表示するために座標を変更しようとするのは非常に自然です。主成分とそれぞれの固有値(分散)を知ることで、必要に応じてデータの次元を減らすことができ、データの変動がどこにあるかについての簡単な概要も得ることができます。

しかし、一日の終わりに、このすべて望ましのルートは対角行列であるという事実から来ている途中自分のメシエ、より一般的ないとこと比較して対処しやすいです。


2
ご協力ありがとうございます。ただし、PCAの不必要に狭い解釈に対処しているようです。(1)PCAは、非常に非ガウスのデータセットに実り多い形で適用されています。(2)PCAは正式なパラメトリック手順ではありません。おそらく、それは精神的な探究的であると考える方が良いでしょう。(3)あらゆる種類の多変量分布またはデータのすべての共分散行列は、対角化可能です。ガウス性(正規性)も非縮退性も要件ではありません。(マトリックスの対称性と実際のコンポーネントの使用により、対角化可能性が保証されます。)
whuber

私は忘れてしまったことを恥ずかしく思いますが、共分散行列が一般的に対角化可能であることの良い点です。それを反映するように編集します。また、ポイント(2)について詳しく説明していただけますか?私は、パラメトリック手順とノンパラメトリック手順の違いに慣れていません。
クリスチャンブエノ

7

私はPCAを幾何学的なツールとして見ています。ほとんどすべてが直線上にある3空間の点の束が与えられ、その直線の方程式を計算したい場合は、PCAを介して取得します(最初のコンポーネントを取得します)。ほとんどが平面である3空間に多数のポイントがあり、その平面の方程式を検出したい場合は、PCAを使用して実行します(最下位コンポーネントベクトルを取得し、平面に垂直である必要があります)。


7

なぜ固有値/固有ベクトルなのか?

PCAを実行する場合、各基底ベクトルの投影された分散を最大化することにより、いくつかの直交基底を計算します。

前の基底ベクトルを計算したら、次のものを次のようにします。

  • 前に直交
  • 基準1
  • 投影された分散の最大化、すなわち最大共分散ノルム

これは制約付きの最適化問題であり、ラグランジュ乗数(幾何学的直観についてはウィキペディアのページを参照)は、目的(予測分散)と制約(単位ノルム)の勾配が最適で「平行」であることを示しています。

これは、次の基底ベクトルは共分散行列の固有ベクトルでなければならないということと同じです。各ステップでの最適な選択は、残りの固有値の中で最大の固有値を持つものを選択することです。


5
間違いなく素人の説明ではない -直交基底ベクトル?投影分散を最大化する?制約付き最適化問題?ラグランジュ乗数?これらは非常に「専門用語」の用語です。これらの意味を理解している素人を表示し、数学者/統計学者を紹介します
確率論

6

基本的に、PCAは、元の変数の線形結合である新しい変数を検出します。これにより、新しい空間では、データの次元が少なくなります。ある角度で支えられた平板の表面上の3次元の点で構成されるデータセットを考えてください。元のx、y、z軸では、データを表すために3つの次元が必要ですが、適切な線形変換では2つだけが必要です。

基本的に@Joelが言ったことですが、入力変数の線形結合のみです。


6

しばらく前に、私はこのPCAアルゴリズムを理解しようとしましたが、固有ベクトルと固有値についてメモしたかったのです。その文書は、EVの目的は大型モデルのモデルを非常に小型のモデルに変換することであると述べた。

たとえば、最初にフルサイズの橋を建設し、その上で実験とテストを実行する代わりに、EVを使用して、すべての要因/量が同じマージンだけでなくさらに減少する非常に小さなサイズの橋を作成することができますテストの実際の結果および実行されたストレス関連テストは、元のモデルの必要に応じて適切に計算および拡大できます。ある意味で、EVはオリジナルの要約を作成するのに役立ちます

私にとって、この説明は私がやろうとしていたことに対して深い意味を持っていました!それがあなたにも役立つことを願っています!


-1。おそらく、私はその類推を十分に理解していなかったかもしれませんが、それは私にとってかなり誤解を招くように見えます。実際、PCAは(ある意味では)「大」モデルを「小」モデルに「変換」することを許可しますが、データセットの次元を減らすことでそうします。しかし、大きな橋よりも低い次元の小さな橋はどうですか?!両方とも3Dです。
アメーバ

@amoeba:この抜粋は、私が読んだ論文からのものです。これらは私の言葉ではありません。私はこのトピックを長い間研究しておらず、痕跡を失っています。
ロールシャッハ

6

おばあちゃんがあなたがクリスマスに彼女に与えたデジタルカメラで彼女の最初の写真と映画を撮ったところを想像してください。残念なことに、彼女は写真のボタンを押すと右手を落とし、映画中もかなり揺れます。彼女は、人、木、フェンス、建物、出入り口、家具などが真っ直ぐではなく、垂直ではなく、床、地面、海、地平線が十分に水平ではないことに気づき、よく映画もかなり不安定です。彼女は、あなたがそれらを修正するのを手伝ってもらえるかどうか尋ねます、3000のすべての休日の写真と自宅とビーチ(彼女はオーストラリア人)で約100のビデオ、プレゼントを開け、田舎を歩きます。彼女はあなたが彼女が言うことをすることができるこの写真ソフトウェアを持っています。あなたは彼女に、それは数日かかるだろうと言って、とにかくビデオで動作しません、しかし、あなたはPCAとICAと呼ばれるテクニックを知っています。あなたの研究は実際に自然の次元へのこの種のデータの回転のみを含むこと、これらの技術はデータの最も重要な方向、この場合は写真を見つけ、最も重要な方向が水平であるように回転することを説明します時間は映画の次元でもありますが、垂直ではありません(さらに、想像できないほど多くの次元に進むことさえできます)。

-

技術は別として。実際、おそらく彼女のためにこれを行う博士号を取得することができ、Bell and Sejnowski(1997)によるエッジに対応する画像の独立したコンポーネントに関する重要な論文があります。これをPCAに関連付けるには、ICAは最初のステップとしてPCAまたはSVDを使用して、次元と初期近似値を減らしますが、PCAなどの2次誤差(SSE)だけでなく、高次誤差を考慮して改善しますICA、すべて高次、ただし多くのアルゴリズムは3番目または4番目に限定されます。低次PCAコンポーネントは、水平および垂直の影響を強く受ける傾向があります。映画のカメラモーションを処理する場合も、PCA / ICAを使用できます。2D写真と2½Dムービーの両方で、これを実現するにはいくつかの表現のコツが必要です。

おばあちゃんに説明できる別のアプリケーションは、固有顔です-高次の固有ベクトルは、「7つの基本的な感情」(それぞれの平均顔と、その平均化を行うための「スケーリングされた回転」または線形結合)に近似できますが、多くの場合、性別や人種に関連しており、個人や個人の特徴(メガネ、ひげなど)を区別するものもあります。これは、1人の個人の写真が少なく、多くの感情/表情がある場合に起こりますが、中立的な表情の顔が多い場合は、異なるバイアスがかかります。PCAの代わりにICAを使用することは、基本的な感情にはあまり役に立たないように見えますが、Bartlett and Sejnowsiki(1997)は、顔認識に役立つ機能を発見したことを示しました。


1
例と類推してコミュニケーションをとる努力に感謝します。ただし、画像の使用は、おばあちゃんが「回転」の感覚が実際に画像の軸を回転させることとはほとんど関係がないことを理解していない可能性が高いため、残念です「写真には2つだけでなく数百万の次元がある抽象的な意味で。
whuberの

はい、他の回答の画像と同様に、それを点群として表す必要があります。何らかの形のエッジ検出および/またはしきい値処理による前処理は、おそらく私が述べた「トリック」の一部です。しかし、複雑な写真を操作するには、博士号の価値のあるトリックが必要です。
デビッドMWパワーズ

@whuber私は実際にPCA(よくSVD)を使用して、ステレオ画像のキャリブレーションを行う際にこれらの回転を見つけました!それは間違いなく同じ回転感覚です。
デビッドMWパワーズ14

2

誰もが間違った目的から、つまり固有ベクトルからPCAを説明し始めると思います。私の答えは正しい場所、つまり座標系から始まります。固有ベクトル、および一般的な固有問題は、誤った座標系である実際の問題に対処するために使用される数学ツールです。説明します。

行から始めましょう。ラインとは何ですか?これは1次元のオブジェクトです。そのため、1つのポイントから別のポイントに移動するために必要なディメンションは1つだけです。平面上では、線の任意の点に2つの座標をアタッチします。これは、線自体に関して座標系が任意に選択されるためです。座標系は、線の内部の一次元の性質を反映していないと私は主張します。デカルト座標系の原点を常に線上に置き、そのx軸が線上にあるように回転させれば、y軸はもう必要ありません!線は1次元のオブジェクトなので、すべてのポイントは1つの軸上にあります。

そこでPCAの説明を始めます。固有問題は、私が説明した回転を行うツールであり、変数の意地消しは線上に原点を置きます。PCAは、変数間の関係が線形である限り、データの真の次元を明らかにするのに役立ちます。


1

固有ベクトルは、変換が同じ入力ベクトルに平行なベクトルであることに注意してください。したがって、固有値が高い固有ベクトルは、固有ベクトルがデータに対して高度な「並列性」を持っていることを意味します。つまり、このベクトルのみでデータを表現し、新しい表現で低いエラーを期待できます。固有値が低い追加の固有ベクトルを選択すると、固有値が低いために最初のものほど顕著ではない他の「並列性」を表すため、データの詳細をより詳細に表すことができます。


0

PCAは基本的に、できるだけ多くの情報を保持しながら、高次元の空間を低次元の空間に投影することです。

3Dティーポットの投影でPCAを説明するブログ投稿を書きました...

ここに画像の説明を入力してください

...可能な限り多くの情報を保持しながら、2Dプレーンに:

ここに画像の説明を入力してください

詳細と完全なRコードは、投稿で見つけることができます:http :
//blog.ephorie.de/intuition-for-principal-component-analysis-pca


1
画像にかかわらず、現時点ではこれは回答というよりもコメントです。リンクに情報の概要を記載することにより、それを展開できますか?SEネットワーク内の投稿は、単独で立つことができるはずです。
グン

@gung:まあまあ-要点は、PCAは基本的に高次元空間(この場合は3Dティーポット)の低次元空間(この場合は2D平面)への投影であり、できるだけ多くの情報を保持することです可能。回答で変更します。
vonjd

それは確かに真実です(このスレッドに関する他の多くの既存の回答で説明されています)が、一般にSEシステムに投稿された回答にはもっとあるはずです、そして、例えばリンクが切れた場合、彼らは自分で立つことができるはずです。
グング

1
ティーポットの例は興味深いです。あなたは、PCAはできるだけ多くの「情報」を保持しながら低次元空間への投影であると言います。しかし....情報とは何ですか?PCAの場合、これは総分散を可能な限り高く保つことを意味します。ティーポットの例は、特定の平面での投影を使用して情報を「最も保存する」という説明に似ていますが、PCAがこれをどのように行い、それが「情報」の「最良」の選択であるかについてはほとんど説明していません。たとえば、LDAは情報を保存することを目的とした投影法でもありますが、PCAとは異なります。
Martijn Weterings

ティーポットがPCAよりも円形/円形(背が低い)だった場合、ほとんどの「情報」を保存するために別の交差点が「選択」されます。
Martijn Weterings

-4

おそらくこれらの分析の後半では、グループIのデータがグループIIとは異なるという暗黙の仮定があり、どのコンポーネントが差異の主な要因になる可能性があるかを見つけようとしています。

2つの異なるセットに対して同一の楕円体が得られるPCA分析を実行すると、2つのセットが測定したパラメーターのいずれによっても違いがないことがわかります。


2
MANOVAを考えているのだろうか。2つの異なるPCAを実行した場合、相関関係の構造が類似していることを示すだけです。
グン

2
-1。これは、@ gungで概説されている理由により、完全に誤解を招く答えです。また、PCAが何であるかを説明しようとさえしません。
アメーバ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.