回答:
次の記事:CangelosiとGorielyによるcDNAマイクロアレイデータへの応用を伴う主成分分析における成分保持は、研究における成分の数を検出するための標準的な経験則のかなり良い概観を与えます。(スクリードプロット、説明される総分散の割合、平均固有値ルール、対数固有値図など)それらのほとんどは、Rでの実装が非常に簡単です。
一般に、スクリープロットが決定的でない場合は、「毒を拾う」だけです。実際に使用するPCの数は実際に問題の理解に依存するため、データに絶対的な正誤はありません。次元を「本当に」知ることができる唯一のデータセットは、自分で構築したものです。:-) 1日の終わりの主成分は、RSSメトリック(副産物として、各成分が変動の主要なモードを表すために得られる副産物として)の下でデータの最適な分解を提供し、特定の数の成分を含めるか除外します問題の次元に関する認識を決定します。
個人的な好みの問題として、私はこのPCAの次元の自動選択に関するMinkaのアプローチを気に入っています。これは、PCAの確率論的解釈に基づいていますが、ここでも、特定の次元のデータの可能性をモデル化しようとするゲームに入ります。(この理論的根拠に従いたい場合は、LinkがMatlabコードを提供します。)
データをよりよく理解してください。例えば。データセットの変動の99.99%がモデルの共変量によるものだと本当に信じていますか?そうでない場合は、おそらく、分散全体のこのような小さな割合を示すディメンションを含める必要はありません。実際には、コンポーネントが、目立つ違いのしきい値を下回る変動を反映していると思いますか?これもおそらく、そのコンポーネントを分析に含めることにはほとんど関連がないことを意味します。
いずれにせよ、頑張ってデータを注意深くチェックしてください。(それらをプロットすると不思議にもなります。)
この質問が最初に尋ねられて回答されてから、過去数年間、この問題に関する非常に素晴らしい後続の作業がありました。GavishとDonohoによる次の論文を強くお勧めします。特異値の最適ハードしきい値は4 / sqrt(3)です。
結果は漸近分析に基づいています(つまり、データマトリックスが無限に大きくなると、明確に定義された最適解が存在します)が、異なるノイズ下でも、小規模で現実的なサイズのデータセットに対して漸近的に最適な手順が機能することを示す印象的な数値結果を示しますモデル。
彼らはまた、論文で非正方形の場合を説明します。ここには(MATLABで)素晴らしいコード補足がありますが、アルゴリズムはRまたは他のどこでも簡単に実装できます:https : //purl.stanford.edu/vg705qn9070
警告:
カイザーの基準(すべての固有値が1より大きい)の問題は、追加の要素の多くがノイズであるかどうかに関係なく、抽出される要素の数は通常、バッテリー内のアイテムまたはスケールの数の約3分の1であることです。並行分析と画面基準は、抽出する要素の数を決定するためのより正確な手順です(HarmonとLedyard Tuckerによる古典的なテキスト、およびWayne Velicerによる最近の研究による)。
psy
orpsych
パッケージを参照してください。Parallel AnalysisとVelicerのMAP Testをより一般的に使用する。