はじめに
RのloadingsパッケージをCRANで公開しています (https://cran.r-project.org/web/packages/loadings/)。先日、バージョン0.4.1をリリースしましたので、その内容を少しご紹介できればと思います。
目的
loadingsは、主成分分析やPartial least squares(PLS)のローディング(主成分負荷量、PLS負荷量)を計算するためのRパッケージです。Rで主成分分析を計算する際には、prcomp関数などが用いられていますが、例えばprcomp関数では、主成分係数(固有ベクトル、重み)はrotationで出力されますが、主成分負荷量は出力されません。loadingsパッケージを用いることで、主成分負荷量を出力することが出来ます。
なぜ主成分負荷量が必要か?
主成分負荷量は、主成分スコアと元のデータの各変数との相関係数で定義されています。データを各変数に対してautoscaling(平均0、分散1)した場合には、主成分係数と主成分負荷量は比例しますので、主成分係数の値が大きな上位10変数を選ぶのと、主成分負荷量の値が大きな上位10変数を選ぶのとは、全く同じ変数が選ばれます。
しかし、上位10変数で良いのか、上位30変数まで確認すべきなのかを判断するには、その値の大きさに閾値を設定して判断する必要がありますが、主成分係数ではそれができません。主成分負荷量は相関係数そのものなので、その値の大きさ(例えば相関係数0.7以上など)で上位何個の変数まで選べばよいのか統計的な基準で判断することが出来るようになります。
Rのloadingsパッケージで出来ること
主成分分析、PLS、群に順序がある時のPLSであるPLS-ROG(rank order of groups)、OS-PCA(orthogonal smoothed PCA)、マルチセットPLS、マルチセットPLS-ROG、片側カーネル主成分分析と、それらのローディングを計算することが出来ます。またローディングの仮説検定を行い、p値を計算することも出来ます。
また、最近バージョンアップを行って、PLS-DA(discriminant analysis)とRCCA-DA (regularized canonical correlation analysis) とローディングも計算できるようになりました。
PLS-DAのローディング
今回loadingsパッケージに追加したPLS-DAのローディングについて簡単に紹介します。PLS-DAはplsやchemometricsパッケージなどで計算出来ますが、これらで計算されるローディングは、データをautoscalingした時には、PLSスコアと元のデータの各変数との相関係数に比例しますが、相関係数そのものではありません(主成分係数と主成分負荷量の関係に似ています)。
そこで、PLS-DAのローディングを相関係数に変換するためのplsda_loading関数を追加しました。これにより、PLS-DAスコアと元のデータの各変数との相関係数であるPLS-DA負荷量を計算するようになり、変数の選ぶ際の基準を設定しやすくなります。
おわりに
Rのloadingsパッケージについて紹介しました。今回はその一部だけご紹介しましたが、他にも例えばRCCA-DAでは、PLS-DAでは群間差が分かれにくい場合でも、群間差が明確に表れる結果が得られる事があります。loadingsパッケージは、サンプルの数よりも変数の数が多いオミックスデータの解析に有用です。パッケージの詳細や使用例については、CRANのloadingsページをご覧ください。
また、利用時のフィードバックや提案もお待ちしています。何かお困りの点や質問がありましたら、遠慮なくお寄せください。loadingsが皆さまの研究やデータ解析にお役に立てれば幸いです。