スパース主成分分析(SPCA またはスパース PCA) は、統計分析、特に多変量データ セットの分析で使用される手法です。入力変数にスパース構造を導入することで、データの次元を削減する 主成分分析(PCA)の従来の手法を拡張します。
通常の PCA の欠点は、主成分が通常、すべての入力変数の線形結合であることです。SPCA は、少数の入力変数 (SPC) の線形結合である成分を見つけることでこの欠点を克服します。これは、SPC を定義する線形結合の係数の一部 (負荷量と呼ばれる)がゼロになることを意味します[注 1] 。ゼロ以外の負荷量の数は、SPC の 基数と呼ばれます。
数学的定式化
データ行列を考えます。ここで、各列は入力変数を表し、各行はデータ母集団からの独立したサンプルを表します。 の各列の平均は 0 であると仮定します。そうでない場合は、 の各要素から列ごとの平均を減算できます。を の次元を持つ経験的共分散行列とします。
の整数が与えられた場合、スパース PCA 問題は、ベクトルの基数を制約しながら、ベクトルによって表される方向に沿った分散を最大化する問題として定式化できます。
- 式1
最初の制約は、v が単位ベクトルであることを指定します。2 番目の制約では、はvの疑似ノルムを表します。これは、 v の非ゼロ成分の数として定義されます。したがって、2 番目の制約は、vの非ゼロ成分の数がk以下であることを指定します。 k は通常、次元pよりもはるかに小さい整数です。式 1の最適値は、 kスパース最大固有値として知られています。
k=pとすると、問題は通常のPCAに簡略化され、最適値は共分散行列Σの最大固有値になります。
最適解vを見つけた後、Σを縮小して新しい行列を得る。
このプロセスを繰り返して、さらなる主成分を取得します。ただし、PCA とは異なり、スパース PCA では異なる主成分が直交していることを保証できません。直交性を実現するには、追加の制約を適用する必要があります。
次の同等の定義は行列形式である。p ×p対称行列をとすれば、スパースPCA問題は次のように書き直すことができる。
- 式2
Tr は行列トレースで、行列Vの非ゼロ要素を表します。最後の行は、Vが行列の階数が1 で、半正定値であることを示します。最後の行は、 を持つことを意味し、したがって式 2 は式 1と同等です。
さらに、この定式化におけるランク制約は実際には冗長であり、したがってスパースPCAは次の混合整数半正定値計画として表すことができる[1]
- 式3
基数制約のため、特に次元pが高い場合、最大化問題を正確に解くことは困難です。実際、式1のスパースPCA問題は強い意味でNP困難です。 [2]
計算上の考慮事項
ほとんどのスパース問題と同様に、SPCAにおける変数選択は計算上扱いにくい非凸NP困難問題であるため[3]、解決策を見つけるために貪欲な準最適アルゴリズムがよく使用されます。
SPCA のアルゴリズム
(式1の)いくつかの代替アプローチが提案されており、その中には
- 回帰フレームワーク、[4]
- ペナルティ付き行列分解フレームワーク、[5]
- 凸緩和/半正定値計画フレームワーク、[6]
- 一般化されたべき乗法フレームワーク[7]
- 交互最大化フレームワーク[8]
- 前方後方貪欲探索と分岐限定法を用いた正確な方法、[9]
- 証明可能な最適な分岐限定法[10]
- ベイズ定式化フレームワーク。[11]
- 証明可能な最適な混合整数半正定値分岐カット法[1]
スパースPCAの方法論的・理論的発展と科学的研究への応用は、最近調査論文でレビューされています。[12]
半正定値計画法の緩和に関する注記
スパースPCAは半正定値計画法(SDP)で近似できることが提案されている。[6]ランク制約を削除し、カーディナリティ制約を1ノルムの凸制約で緩和すると、半正定値計画法の緩和が得られ、これは多項式時間で効率的に解くことができる。
- 式3
2番目の制約では、はp×1のベクトルであり、|V|はVの要素の絶対値を要素とする行列です。
緩和された問題式 3の最適解は、必ずしもランク 1 であるとは限りません。その場合、主要な固有ベクトルのみを保持するように切り捨てることができます。
半正定値計画法はn=300以上の共変量ではスケールしないが、半正定値緩和法の2次円錐緩和法はほぼ同等のタイト性があり、n=1000の共変量の問題をうまく解くことができることが示されている[13]
アプリケーション
財務データ分析
通常の PCA を、各入力変数が異なる資産を表すデータセットに適用すると、すべての資産の加重組み合わせである主成分が生成される場合があります。対照的に、スパース PCA は、少数の入力資産のみの加重組み合わせである主成分を生成するため、その意味を簡単に解釈できます。さらに、これらの主成分に基づく取引戦略を使用する場合、資産が少ないほど取引コストが低くなります。
生物学
各入力変数が特定の遺伝子に対応するデータセットを考えてみましょう。スパース PCA は、少数の遺伝子のみを含む主成分を生成できるため、研究者はこれらの特定の遺伝子に焦点を当ててさらに分析することができます。
高次元仮説検定
現代のデータセットでは、入力変数の数()がサンプル数( )と同程度か、それよりはるかに多い場合がよくあります。がゼロに収束しない場合、古典的なPCAは一貫性がないことが示されています。言い換えると、式1を とすると、サンプルサイズが のときに最適値はデータ母集団の最大固有値に収束せず、最適解は最大分散の方向に収束しません。しかし、スパースPCAは、 の場合でも一貫性を保つことができます。
kスパースの最大固有値(式1の最適値)は、すべての方向が同じ分散を持つ等尺性モデルを、高次元設定でのスパイク共分散モデルと区別するために使用できます。[14]帰無仮説では、データは平均0で共分散が単位行列に等しい多変量正規分布から生成され、対立仮説では、データは信号強度のスパイクモデルから生成されると指定する仮説検定を考えます。
ここで、 はk 個の非ゼロ座標のみを持ちます。最大のk疎な固有値は、 の場合にのみ 2 つの仮説を区別できます。
k疎な固有値を計算するのは NP 困難であるため、半正定値計画法の緩和の最適値 (式 3 ) で近似することができます。その場合、 であれば 2 つの仮説を区別することができます。植え付けられたクリーク予想が成り立つ場合、追加の項は他の多項式時間アルゴリズムでは改善できません。
ソフトウェア/ソースコード
- amanpg - 交代多様体近似勾配法を用いたスパースPCA用のRパッケージ[15]
- elasticnet – エラスティックネットを用いたスパース推定とスパースPCAのためのRパッケージ[16]
- epca – 大規模データセットの探索的主成分分析のためのRパッケージ。スパース主成分分析とスパース行列近似を含む。[17]
- nsprcomp - 閾値付き累乗反復に基づくスパースおよび/または非負PCA用のRパッケージ[18]
- scikit-learn – 分解モジュールにスパースPCAやその他の技術を含む機械学習用のPythonライブラリ。[19]
注記
- ^ これらのベクトルにはローディングという用語が不適切に使用されています。代わりに係数と呼ぶべきです。この名前は、共通共分散行列を生成する値を設計するために因子分析で使用されるローディングという用語に由来しています。標準 PCA ではローディングは係数に等しいため、係数にはローディングという用語が使用されています。これは非常に残念なことです。なぜなら、SPCA では係数はローディングに等しくないからです。
参考文献
- ^ ab Dimitris Bertsimas、Ryan Cory-Wright、Jean Pauphilet (2020)。「 大規模スパース PCA を証明可能な (ほぼ) 最適値に解決する」。arXiv : 2005.05195 [math.OC]。
- ^ Andreas M. Tillmann; Marc E. Pfetsch (2013). 「圧縮センシングにおける制限付き等長性特性、ヌル空間特性、および関連概念の計算複雑性」IEEE Transactions on Information Theory . 60 (2): 1248–1259. arXiv : 1205.2081 . CiteSeerX 10.1.1.760.2559 . doi :10.1109/TIT.2013.2290112. S2CID 2788088.
- ^ Moghaddam, Baback; Weiss, Yair; Avidan, Shai (2007-09-07). Schölkopf, Bernhard; Platt, John; Hofmann, Thomas (編). Advances in Neural Information Processing Systems 19: Proceedings of the 2006 Conference. The MIT Press. pp. 915– 922. doi :10.7551/mitpress/7503.001.0001. ISBN 978-0-262-25691-9。
- ^ Hui Zou、Trevor Hastie、Robert Tibshirani ( 2006)。「スパース主成分分析」(PDF)。Journal of Computational and Graphical Statistics。15(2):262– 286。CiteSeerX 10.1.1.62.580。doi : 10.1198 /106186006x113430。S2CID 5730904 。
- ^ Fan Chen、Karl Rohe (2021)。 「スパース主成分分析の新しい基礎」。Journal of Computational and Graphical Statistics。33 (2): 421– 434。arXiv : 2007.00596。doi :10.1080 / 10618600.2023.2256502。
- ^ ab Alexandre d'Aspremont; Laurent El Ghaoui; Michael I. Jordan; Gert RG Lanckriet (2007). 「半正定値計画法を用いたスパース PCA の直接定式化」(PDF) . SIAM Review . 49 (3): 434– 448. arXiv : cs/0406021 . doi :10.1137/050645506. S2CID 5490061.
- ^ Michel Journee 、 Yurii Nesterov、Peter Richtarik、Rodolphe Sepulchre ( 2010)。「一般化電力法によるスパース主成分分析」(PDF) 。Journal of Machine Learning Research。11 : 517–553。arXiv : 0811.4724。Bibcode : 2008arXiv0811.4724J。CORE ディスカッション ペーパー 2008/70。
- ^ Peter Richtarik 、Majid Jahani、S . Damla Ahipasaoglu、Martin Takac (2021)。「交互最大化:8つのスパースPCA定式化と効率的な並列コードのための統合フレームワーク」。最適化とエンジニアリング。22 (3):1493–1519。arXiv:1212.4137。doi : 10.1007 / s11081-020-09562-3。S2CID 2549610 。
- ^ Baback Moghaddam、Yair Weiss、Shai Avidan (2005)。「スパース PCA のスペクトル境界: 正確なアルゴリズムと貪欲なアルゴリズム」(PDF)。ニューラル情報処理システムの進歩。第 18 巻。MIT プレス。
- ^ Lauren Berk 、Dimitris Bertsimas (2019)。 「証明可能な最適なスパース主成分分析」。数理計画法計算。11 (3)。Springer: 381– 420。doi : 10.1007/s12532-018-0153-6。hdl : 1721.1/131566。S2CID 126998398。
- ^ Yue Guan、Jennifer Dy (2009)。「スパース確率主成分分析」(PDF)。機械学習研究ワークショップおよび会議議事録ジャーナル。5 :185。
- ^ Hui Zou; Lingzhou Xue ( 2018 ). 「スパース主成分分析の選択的概要」。IEEE紀要。106 (8): 1311– 1320。doi : 10.1109/ jpcroc.2018.2846588。
- ^ Dimitris Bertsimas、Ryan Cory-Wright (2020)。 「半正定値最適化問題の多面体および2次円錐分解について」。オペレーションズ・リサーチ・レターズ。48 (1)。エルゼビア:78–85。arXiv : 1910.03143。doi : 10.1016 / j.orl.2019.12.003。
- ^ Quentin Berthet 、 Philippe Rigollet ( 2013 )。「高次元におけるスパース主成分の最適検出」。Annals of Statistics。41 ( 1 ): 1780– 1815。arXiv : 1202.5070。doi :10.1214/13-aos1127。S2CID 7162068 。
- ^ [1] https://cran.r-project.org/web/packages/amanpg/index.html
- ^ [2] https://cran.r-project.org/web/packages/elasticnet/index.html
- ^ [3] https://cran.r-project.org/web/packages/epca/index.html
- ^ [4] https://cran.r-project.org/web/packages/nsprcomp/index.html
- ^ [5] http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.SparsePCA.html
