PCAの後に回転(バリマックスなど)が続いているのはまだPCAですか?


63

私はRのSPSSから(PCAを使用して)いくつかの研究を再現しようとしました。私の経験では、パッケージからのprincipal() 関数psych、出力に一致する唯一の関数でした(または私の記憶が正しければ、完全に機能します)。SPSSと同じ結果を一致させるには、parameterを使用する必要がありましたprincipal(..., rotate = "varimax")。私は論文がPCAをどのようにしたかについて話しているのを見てきましたが、SPSSの出力と回転の使用に基づいて、それは因子分析のように聞こえます。

質問:PCAは、(を使用してvarimax)回転した後でもPCAですか?私はこれが実際に因子分析であるかもしれないという印象を受けていました...もしそうでない場合、どのような詳細が欠けていますか?


4
技術的には、回転後のすべてのものはもはや主要なコンポーネントではありません。
ガラ

2
回転自体はそれを変更しません。回転するかどうかにかかわらず、分析はそのままです。PCAは、「因子分析」の狭い定義で FAではなく、「因子分析」の広い定義で FAです。stats.stackexchange.com/a/94104/3277
ttnphns

1
こんにちは、@ Roman!私はこの古いスレッドをレビューしてきましたが、Brettの回答が受け入れられたとマークしたことに驚いています。PCA +回転がまだPCAであるか、それともFAであるかを尋ねていました。ブレットの答えは、回転について一言も述べていません!principal質問した機能についても言及していません。彼の答えが本当にあなたの質問に答えたなら、おそらくあなたの質問は適切に定式化されていないでしょう。編集を検討しますか?そうでなければ、博士号の答えは実際にあなたの質問に答えることにはるかに近いと思います。受け入れられた回答はいつでも変更できます。
アメーバは、モニカを復活させる

1
私はあなたの質問に対する新しく、より詳細な答えに取り組んでいると付け加えなければなりません。したがって、あなたが実際にこのトピックにまだ興味があるかどうか知りたいです。結局、4と持っている年が過ぎた...
アメーバが復活モニカ言う

3
@amoeba残念ながら将来、私はその答えを受け入れた理由に答えることができません。4.5年後に古い獣をレビューすると、私は答えがどれも近づかないことに気付きました。mbqは有望なところから始まりますが、説明には至りません。しかし、問題は非常に複雑です。おそらく、4文字の略語で名前を付けない社会科学向けの一般的な統計ソフトウェアの誤った用語のおかげでしょう。回答を投稿し、pingを実行してください。質問に答えるのに近いと思われる場合は受け入れます。
ローマンルシュトリック

回答:


53

この質問は主にPCA / FAの定義に関するものであるため、意見が異なる場合があります。私の意見では、PCA + varimaxはPCAまたはFAと呼ばれるべきではなく、例えば「varimax-rotated PCA」と明示的に呼ばれます。

これは非常に紛らわしいトピックであることを付け加えておきます。この答えでは、私は回転が実際に何を説明したいです。これには数学が必要です。カジュアルな読者は、図に直接スキップできます。そうして初めて、PCA + rotationを「PCA」と呼ぶべきかどうかを議論できます。

参照の1つは、Jolliffeの著書「主成分分析」のセクション11.1「主成分の回転」ですが、より明確になる可能性があります。


ましょN × Pの私たちが中心に想定したデータ行列。PCA量(ここでは私の答えを参照)特異値分解に:X = U S V。この分解には、2つの同等で補完的なビューがあります。PCAスタイルの「投影」ビューとFAスタイルの「潜在変数」ビューです。Xn×pX=USV

PCAスタイルのビューによると、直交方向束(これらは共分散行列の固有ベクトルであり、「主方向」または「軸」とも呼ばれます)、および「主成分」U S(主成分とも呼ばれます)スコア」)は、これらの方向に関するデータの投影です。:主成分は、我々は、書くことができるなど、最初のものは、最大の可能な分散を有し、無相関であるX = U SV = スコア主方向VUS

X=USV=ScoresPrincipal directions.

FAスタイルの見解によれば、「負荷」を介して観測された変数を生じさせる、いくつかの相関のない単位分散「潜在因子」が見つかりました。確かに、は標準化された主成分(無相関および単位分散あり)であり、負荷をL=VS/U~=n1U場合、 X=L=VS/n1(つまり、注 S=のS。)両方のビューは等価です。負荷はそれぞれの固有値(S/ √でスケーリングされた固有ベクトルであることに注意してください

X=n1U(VS/n1)=U~L=Standardized scoresLoadings.
S=Sは共分散行列の固有値です)。S/n1

k<p

XUkSkVk=U~kLk.
k×kTTT=I
XUkSkVk=UkTTSkVk=U~rotLrot,
Lrot=LkTU~rot=U~kTTLrot その解釈を容易にするために、できるだけまばらに近くなりました。)

回転されるのは、(1)標準化されたスコア、(2)負荷であることに注意してください。しかし、生のスコアでも主要な方向でもありません!したがって、回転は、元の空間ではなく、潜在的な空間で発生します。これは絶対に重要です。

LrotkRpkX

ΣLkLk=LrotLrot.

しかし、PCAスタイルの視点は事実上崩壊しています。回転荷重は、直交方向/軸に対応しなくなりました。つまり、列は直交しません!さらに悪いことに、回転した荷重によって与えられた方向にデータを[直交]投影すると、相関(!)投影が得られ、スコアを回復できなくなります。[代わりに、回転後に標準化されたスコアを計算するには、データ行列に負荷の擬似逆数を掛ける必要があります。または、回転マトリックスを使用して、元の標準化されたスコアを単純に回転させることもできます。RpLrotU~rot=X(Lrot+)U~rot=U~T ]また、回転されたコンポーネントは最大分散量を連続的にキャプチャしません。ただし、すべての回転成分は、すべての元の主成分とまったく同じくらいの分散をキャプチャします。kk

これがイラストです。データは、主対角線に沿って引き伸ばされた2D楕円です。最初の主方向は主対角線であり、2番目の主方向はそれに直交します。PCAローディングベクトル(固有値でスケーリングされた固有ベクトル)は赤で表示されます-両方の方向を指しており、可視性のために一定の係数で引き伸ばされています。次に、負荷に直交回転を適用しました。結果のローディングベクトルはマゼンタで表示されます。それらが直交していないことに注意してください(!)。30

PCAローテーション

ここでのFAスタイルの直観は次のとおりです。ポイントが小さな円を埋める「潜在空間」を想像してください(単位分散のある2Dガウスから来る)。これらのポイントの分布は、PCAの負荷(赤)に沿って引き伸ばされ、この図に表示されるデータ楕円になります。ただし、同じポイントの分布を回転させ、回転したPCAの負荷(マゼンタ)に沿って引き伸ばして同じデータ楕円にすることができます。

実際には、[ 参照負荷の直交回転があると回転は、1はPCAのバイプロットを見てする必要があります。元の変数に対応するベクトル/光線は単に回転します。】


まとめましょう。直交回転(バリマックスなど)の後、「回転主」軸は直交せず、それらの直交投影は意味をなしません。したがって、この軸/投影の視点全体をやめる必要があります。まだPCAと呼ぶのは奇妙です(これは、最大分散などの投影に関するものです)。

FAスタイルの観点からは、単純に(標準化された無相関の)潜在的要因を回転させました。これは有効な操作です。FAには「投影」はありません。代わりに、潜在因子が負荷を介して観測変数を生成します。このロジックは引き続き保持されます。ただし、実際には要因ではない主成分から始めました(PCAはFAと同じではないため)。したがって、FAと呼ぶのも奇妙です。

PCAとFAのどちらを呼び出すべきかを議論する代わりに、使用する手順を厳密に指定することをお勧めします。「PCAに続いてバリマックス回転」。


あとがき。がと間に挿入される、代替の回転手順を考慮することできます。これにより、(標準化されたスコアと負荷の代わりに)生のスコアと固有ベクトルが回転します。このアプローチの最大の問題は、そのような「ローテーション」の後、スコアがもはや無相関にならないことであり、これはPCAにとって非常に致命的です。一つはできるそれを行うが、それは回転が通常理解して適用されている方法ではありません。TTUSV


写真を囲むテキストを完全に理解していませんでした。「ロード」を何度か使用します:PCA loading vectors... are shown in redstretched along the rotated PCA loadings (magenta)。「散布図」または「ベクトル」がデータ散布図の軸としてどのように表示されるのだろうか。もっとはっきりさせてください。そして、「ストレッチ」のアイデア?ありがとう。
ttnphns

1
これは、変数空間の「サブスペースにまたがる」負荷についての最近の長い議論に関連している可能性があります。この回答では、「ローディングベクトル」(または単に「ローディング」)を使用して、ローディングマトリックスの1列を参照しました。私の例では、データは2Dです。つまり、2つの変数があるため、負荷は2Dベクトルです。したがって、データ散布図にそれらをプロットできます(可視性のために一定の係数でスケーリングしました)。PCAでは、当然、負荷は直交します(固有ベクトルに比例します)。バリマックスの後、それらはもうありません。
アメーバは、モニカーを復活させる

「ストレッチング」に関する段落(写真の直後)は、おそらくもっとよく説明する必要があります。はっきりしていないことがわかります。
アメーバは、モニカーを復活させる

一部のベクトル(負荷など)の直交性または非直交性をプロットすることを目的とする場合は、それらを矢印として描画する必要があると考えました。それとも私はあなたを理解していないのでしょうか?
ttnphns

1
矢印を使用するほうが良いことに同意します。プロットの便宜上、「矢印」は省略しました。それらを追加するには、この図をやり直します。また、両方向を指す各ベクトルを描いたのは、それらの兆候は関係ないからです。
アメーバは、モニカを

29

主成分分析(PCA)と共通因子分析(CFA)は別個の方法です。多くの場合、同様の結果が生成され、PCSSはSPSS Factor Analysisルーチンのデフォルトの抽出方法として使用されます。これは間違いなく、両者の区別について多くの混乱をもたらします。

要するに、これらは概念的には2つの異なるモデルです。PCAでは、コンポーネントは合計分散を最大化する実際の直交線形結合です。FAでは、因子は分散の共有部分を最大化する線形結合であり、「潜在的な構成要素」の根底にあります。これが、FAがしばしば「共通因子分析」と呼ばれる理由です。FAはさまざまな最適化ルーチンを使用し、結果は、PCAとは異なり、使用される最適化ルーチンとそれらのルーチンの開始点に依存します。単純に唯一の解決策はありません。

Rでは、factanal()関数はCFAに最尤抽出を提供します。したがって、PCA抽出に基づくSPSS結果を再現することを期待しないでください。単に同じモデルやロジックではありません。同じアルゴリズムを使用していない可能性があるため、SPSSの最尤抽出を使用した場合に同じ結果が得られるかどうかはわかりません。

ただし、Rの良し悪しにかかわらず、SPSSがデフォルトとして提供する混同された「因子分析」を再現できます。Rのプロセスを次に示します。このコードを使用すると、このデータセットを使用してSPSS主成分の「因子分析」の結果を再現できます。(符号は例外で、これは不定です)。その結果は、Rsで利用可能な任意の回転メソッドを使用して回転させることもできます。

# Load the base dataset attitude to work with.
data(attitude)
# Compute eigenvalues and eigen vectors of the correlation matrix.
pfa.eigen<-eigen(cor(attitude))
# Print and note that eigen values are those produced by SPSS.
# Also note that SPSS will extract 2 components as eigen values > 1 = 2
pfa.eigen$values
# set a value for the number of factors (for clarity)
factors<-2
# Extract and transform two components.
pfa.eigen$vectors [ , 1:factors ]  %*% 
+ diag ( sqrt (pfa.eigen$values [ 1:factors ] ),factors,factors )

+1は、ここでSPSSとRをめぐる混乱を和らげるのに本当に役立ちました。二つの質問が残っている:何がRの行いprcompprincompSPSS」を混ぜたアプローチに比べていますか?SPSSは抽出によって実際に何をしていますか?
hans0l0 14

ああ、あなたのソリューションにPC1などのスコアを計算する方法を追加できます:標準化zz <- scale(attitude,T,T)pc1 <- zz %*% solve(cor(attitude),lamba[,1])。lambdaは@Brett Magillsの例の最後の行の結果です。
hans0l0 14

3
-1。この答えには多くの有用な情報がありますが、元の質問にはまったく答えていないことがわかりました。元の質問は、PCA +回転が依然としてPCA(またはFA)と見なされるかどうかでした。あなたの答えはローテーションにさえ言及していません!では、どうすれば答えが得られますか?
アメーバは、モニカーを復活させる

1
共通因子分析は、完全に異なる手順である確認因子分析(CFA)と同じではないことに注意してください。
リチャードボーダー

11

この回答は、@ amoebaがこのスレッドに関する深い(ただしやや複雑な)回答で推論したもの(95%が同意しているようなもの)とそれらがどのように見えるかをパスチャート形式で提示することです。 。

適切で最小の形式のPCAは、相関データの非相関形式への特定の直交回転であり、主成分は順次変動して全体的な変動性がますます少なくなります。次元の削減だけが必要な場合は、通常、負荷およびそれらの後に引き続くものは計算しません。(生の)主成分スコア満足しています。[チャートの表記は@amoebaの表記に正確に従っていないことに注意してください。他の回答のいくつかで採用していることに固執しています。]P

チャートでは、2つの変数の簡単な例を取り上げ、p=2抽出された両方の主成分を使用しています。私たちは通常、わずか数最初保つもののm<pコンポーネントを、私たちは考えている理論的な質問のために(「PCAは、回転PCAまたは何をか?」)を保持する場合、それは違いはありませんmか、すべてのpそれらの。少なくとも私の特定の答えでは。

負荷のトリックは、スケール(大きさ、変動性、慣性)をコンポーネント(生のスコア)から係数(固有ベクトル)に、前者をそのままの「フレームワーク」(標準化されたpr 。コンポーネントスコア)および後者は肉質の(負荷)です。両方を使用して、データを等しく復元します。しかし、積荷は見通しを開きます:(i)コンポーネントを解釈します。(ii)回転する; (iii)変数の相関/共分散を復元します。これはすべて、データのばらつきが負荷として書き込まれているという事実によるものです。V P z A X = P V = P z A LVPzAX=PV=PzA

そして、その負荷をいつでも、または回転後にデータポイントに戻すことができます。バリマックスなどの直交回転を考えると、回転が行われた後もコンポーネントが無相関のままになることを意味します。球面共分散行列を使用したデータのみが直交して回転した場合、無相関性が保持されます。そして、標準化された主成分(機械学習では「PCAデータ」と呼ばれることが多い)であるは、マジックデータ(は実際には左、つまりデータの行固有ベクトル)に比例します。バリマックス回転行列を探していますP z QPzPzQ負荷の解釈を容易にするために、データポイントは、それらの貞な球形と同一性(または「白さ」)で受動的に待機します。

が見つかった後、それによる回転は、荷重行列の一般化された逆行列を介した標準化された主成分スコアの通常の計算と同等です-今回は回転荷重の(グラフを参照してください) )。その結果、バリマックス回転さ主成分、:我々はそれを望んでいた、プラスデータは回転前のようにうまくそれらによって復元されるように、相関していない。私たちは、その後で、そのスケール堆積(およびそれに応じて回転)、それらをバック与える可能性があり -それらをunstandardizeする:。P z A r C z X = P z A = C z A r A r CQPzArCzX=PzA=CzArArC

私たちは、「バリマックス回転さ主成分は」ではないことを、認識しておく必要があり校長、私はそれを強調するために、表記のCz、C、代わりの装甲、Pを使用:コンポーネントはもう。それらは単なる「コンポーネント」です。主成分は一意ですが、コンポーネントは多数存在する場合があります。varimax以外の回転は、変数に加えて、コンポーネントとも呼ばれ、相関関係のない他の新しい変数を生成します。C

また、言うまでもなく、バリマックス回転(または直交回転)した主成分(現在は単に「成分」)は、相関がなく、直交のままですが、それらの負荷がまだ直交であることを意味しません。列は(固有ベクトル)相互に直交していますが、列ではありません(ここの脚注も参照)。V A rAVAr

そして最後に- 生の主成分を回転させることは有用なアクションではありません。問題のある意味を持つ相関変数を取得します。は、すべてのスケールを吸収した負荷の構成を(特定の方法で)最適化するように見えまし。は、すべてのスケールが残っているデータポイントを回転するようにトレーニングされたことはありません。回転と回転に相当するであろう固有ベクトルと内(QPQQ Q P Q V Q V r " C " = X V r"C"QQPQ VQVr)そして、生のコンポーネントスコアをとして計算します。これらの「パス」は、Postscriptumで@amoebaによって示されています。"C"=XVr

最後に概説されたこれらのアクション(ほとんどの部分は無意味)は、一般に、負荷だけでなく固有ベクトルも回転できることを思い出させます。たとえば、Varimaxプロシージャを適用して構造を単純化することができます。しかし、固有ベクトルは負荷の場合ほどコンポーネントの意味を解釈するのに役立ちませんので、固有ベクトルの回転はめったに行われません。

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

したがって、その後のバリマックス(または他の)回転を伴うPCAは

  • まだPCA
  • 途中で放棄された主成分のみのコンポーネント
  • 「潜在的な特性」として解釈される可能性のある(PCよりも)
  • しかし、それらとして統計的にモデル化されていません(PCAは公正な因子分析ではありません)

この回答では、因子分析について言及していません。@amoebaの「潜在空間」という言葉の使用は、質問された質問の文脈では少し危険であるように思えます。ただし、PCA +分析回転は「PCAのFA スタイルビュー」と呼ばれる可能性があることに同意します。


回転成分の固有値を計算する方法は?

1
@Haga、回転したコンポーネントがありません主なコンポーネントは、もはやので、彼らは固有値を持つことができません。それでも、それらの分散は、2乗荷重の列の合計に等しくなります(グラフの下部-標準化されていないスコアへの矢印を参照してください)。
ttnphns

8

ではpsych::principal()、あなたが使用して抽出された主成分(S)または「」パソコン「」に回転/変換の異なる種類を行うことができますrotate=ように、引数を: "none""varimax"(デフォルト)、 、"quatimax""promax""oblimin""simplimax""cluster"。必要に応じて、あなた自身の評価と調査対象の主題の知識に応じて、あなたのケースでどちらが意味をなすべきかを経験的に決定する必要があります。あなたにヒントを与えてくれるかもしれない重要な質問:どちらがより解釈可能か(もし必要なら)?

ヘルプでは、次の情報も役立つ場合があります。

回転した主成分は主成分(固有値分解に関連する軸)ではなく、単なる成分であることを認識することが重要です。これを指摘するために、回転していない主成分にはPCiのラベルが付けられ、回転したPCにはRCi(回転成分の場合)、斜めに変換された成分はTCi(変換成分の場合)としてラベル付けされます。(この提案をしてくれたUlrike Grompingに感謝します。)


7

私の理解では、PCAと因子分析の違いは主にエラー用語があるかどうかです。したがって、PCAはデータを忠実に表現できますが、因子分析はトレーニング対象のデータには忠実ではありませんが、データの基礎となる傾向やコミュニティ性を表現しようとします。標準的なアプローチでは、PCAはローテーションされませんが、数学的にローテーションを行うことは可能なため、人々は時々ローテーションを行います。これらのメソッドの「意味」はつかむのがやや多いという点でコメンターに同意します。たとえば、使用している関数が意図したとおりに動作することを確認するのが賢明です。たとえば、R SPSSのユーザーが使い慣れているPCAとは異なる種類のPCA。


2

両方の定義の混のおかげで、それらは事実上同義語です。言葉を信じないで、ドックを深く見て方程式を見つけてください。


3
私はいまだに方程式を理解するのに苦労しています(生物学者ahoy)。だから私はここでコミュニティに目を向けました。
ローマンルシュトリック

私たちが持っているデータはそれらのいくつかの組み合わせで構成されているが、イデオロギーはFAがプロセスがいくつかの「隠れた要因」によって駆動されると仮定していると思う。そのため、FAの問題は、何らかの形で隠れた要因を再構築することです。そして、PCAがあります-貪欲にデータの分散を吸収するような古い変数を混合することにより、新しい変数(PC)を繰り返し構築する方法です。PCはFAの要因と同等であり、ここでは区別がつかないと言う人もいるかもしれません。しかし、PCAに何らかの変更を加えて、他の「FAソート」のベースにすることもできるため、問題が始まります。

したがって、基本的には、どの流行語を使用するのではなく、何をしたいのかを考える必要があります。特に、生物学者がいる間は難しいことを知っています(use-buzzwordは生物学でうまく機能します。それでもこれは科学が行われるべき方法です。Google(またはこのサイト)を使用して、適切なアルゴリズムを評価するよりも。最後に、ドックを使用して、それを行う機能/ボタンを見つけ、それを入力/クリックします。

1

この質問にはすでに受け入れられた答えがありますが、質問のポイントに何かを追加したいと思います。

「PCA」-正しく思い出せば-「主成分分析」を意味します。そのため、回転なしでも回転ありでも、主成分を分析している限り、「適切な初期行列分解で見つかった」「主成分」の分析を行っています。

最初の2つの主成分の「バリマックス」回転の後、「最初の2つのPCのバリマックス解」(または他の何か)があるが、それでも主成分分析のフレームワークにあることを定式化します。以下は「pca」のフレームワーク内にあります。

私の主張をより明確にするために:回転の単純な質問がEFAとCFAを区別する問題を導入するとは感じません(後者は、たとえばBrettの回答で問題に言及/導入されました)


なぜ最後の文で突然CFAに言及したのですか?
アメーバは、モニカーを復活

@amoeba:_Brettの23ポイントの回答でその用語を指摘され、それについて何か発言する価値があると感じました。しかし、多分、代わりに「FA」と言う方がよかったでしょう。私はそれについて考えます...(それについて考えると、おそらく、80年代のその方法の私の以前の研究で、「CFA」を「一般的な...」の代わりに「確認的因子分析」として見たことを漠然と覚えていますまたは90'ies)
ゴットフリードヘルムズ

答えの最初の3つのパラグラフはPCA対FAについてのものであり、それから前のパラグラフを要約しているように見える最後のパラグラフは突然EFA対CFAについてです。
アメーバは、モニカーを復活

@amoeba:最後の編集で意図/文章が明確になりますか?
ゴットフリードヘルムズ

1

これが最も役立つことがわかりました:Abdi&Williams、2010、主成分分析

回転

コンポーネントの数が決定された後、解釈を容易にするために、分析はしばしば保持されたコンポーネントの回転を伴います[詳細については、参考文献40および67を参照]。2つの主なタイプの回転が使用されます。新しい軸が互いに直交する場合は直交、新しい軸が直交する必要がない場合は斜めです。回転は常に部分空間で実行されるため、新しい軸は常に、元のコンポーネント(最適になるように計算される)よりも少ない慣性を説明します。ただし、回転後の合計部分空間で説明される慣性の部分は、回転前と同じです(慣性のパーティションのみが変更されています)。回転は常にサブスペースで行われるため(つまり、保持されたコンポーネントの空間)、この部分空間の選択は、回転の結果に強く影響します。そのため、回転の解釈の堅牢性を評価するために、保持されたコンポーネントの部分空間に対していくつかのサイズを試すことを強くお勧めします。回転を実行するとき、ローディングという用語はほとんどの場合、行列Qの要素を指します。

(Qの定義については論文を参照)。

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