# 第1回 主成分分析 ###### tags: `service-data-science-2023` ## 授業の進め方 1. この講義の背景と目的 2. 主成分分析の紹介 3. 個人演習 4. 宿題 グループワークのアウトカム変数は複数を候補にしてください。 ## 連絡手段 相談の結果、引き続きSlackを使うことになりました。 ## この科目(サービスデータサイエンス)について 多変量解析(Multivariate Anaysis, MVA)には様々な手法があります。 ||説明変数が数量|説明変数がカテゴリ| |---|---|---| |目的変数が数量|(重)回帰分析 正準相関分析 パス解析 グラフィカルモデリング 回帰木|数量化1類 回帰木| |目的変数がカテゴリ|判別分析 ロジスティック回帰分析 決定木 サポートベクトルマシン ニューラルネットワーク|数量化2類 決定木| |目的変数なし|共分散構造分析 主成分分析 因子分析 多次元尺度構成法 クラスタ分析|数量化3類 (対応分析) 多次元尺度構成法 クラスタ分析| もう少し、タスクの種類に分けると、次のような分類もあります。 * 回帰 (線形回帰モデル、非線形回帰モデル、加法モデル、回帰樹、サポートベクトル回帰モデル、ランダムフォレスト、ブースティング、ニューラルネットワーク) * 分類(線形判別モデル、二次判別モデル、決定木、サポートベクトルマシン、ランダムフォレスト、ブースティング、ニューラルネットワーク) * クラスタリング (階層クラスタリング、混合分布、自己組織化マップ) * 次元削減 (主成分分析、t-SNE、UMAP, 多次元尺度構成法) * モデル選択 (AIC, BIC, Cp) * 前処理 (クリーニングや変換、コード化・符号化、欠測パターンの分析、欠測値補完、欠測レコードの除去、外れ値の除去) 分析の流れは次のような感じになります。 ```graphviz digraph A { node [shape=rectangle, style=rounded] 前処理 -> 次元削減 前処理 -> クラスタリング 前処理 -> 回帰 前処理 -> 分類 クラスタリング -> 回帰 クラスタリング -> 分類 次元削減 -> 回帰 次元削減 -> 分類 次元削減 -> 評価 クラスタリング -> 評価 回帰 -> 評価 分類 -> 評価 評価 -> 前処理 } ``` クオリティマネジメントでは重回帰分析を活用しました。データサイエンスは、一つの手法を一つのデータセットに適用すれば有用な情報が抽出できるほど、単純ではありません。重回帰分析でも変数選択や、外れ値の診断など、場合によっては何度も重回帰分析を実行し直す必要が生じました。 今回は重回帰分析と主成分分析を組み合わせた分析のアプローチを体験的に学んで頂きます。そこでは複数の手法を単に順に用いるのでなく、組み合わせて分析する、データサイエンスのプロセスの一例です。 ## 教科書等 ### 教科書 次の刊行物の第3章がそのまま、この科目の内容です。スキャンしたものをこのクラス内限定で公開します。ダウンロード可能です。教員サイドで履修者数分を購入して、著作権には対応しておきますが、電子ファイルの再配布はなさらないでください。 1. [日本統計学会・日本行動計量学会編 (2017) 統計学Ⅲ:多変量データ解析法スタディノート, 日本統計学会](https://keio.box.com/s/8xow5ok9fm2wdeuierm0twmqln0qsl6q). ISBN 978-4-8223-3946-3 ### 参考書 統計学を学びたい人。 1. [日本統計学会・日本行動計量学会編 (2017) 統計学Ⅰ:データ分析の基礎スタディノート, 日本統計学会](https://keio.box.com/s/dzjdcz2cnqf4wa7tyecpgg21smim7cw4) 2. [日本統計学会・日本行動計量学会編 (2021) 統計学Ⅱ:推測統計の基礎スタディノート, 日本統計学会](https://keio.box.com/s/5s3rpz4tk9g2zd0k5lppzcb67ei5ri5j) 多変量解析を学びたい人。 1. 永田靖・棟近雅彦 (2001) 「多変量解析法入門」, サイエンス社. 2. Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani (2018) 「Rによる統計的学習入門」, 朝倉書店. (原著は "An Introduction to Statistical Learning: with Applications in R," Springer Texts in Statistics. 第2版刊行済み) ## 主成分分析 ## 主成分分析の概要 * 多次元データの正規直交基底を軸方向の分散を最大にするように導く * データのばらつきの多くを説明する低次元のアフィン空間を構成する (平均を原点に取った部分空間とも) * 分散をばらつきの規準に取り、データのばらつきを多く説明する軸を互いに直交するように順に作成する * 相関係数行列の固有値固有ベクトル分解 * 主成分分析は変数の合成。 ```graphviz digraph A { node [shape=rectangle] rankdir = LR 変数1 -> 第1主成分 [label = w11] 変数1 -> 第2主成分 [label = w12] 変数4 -> 第1主成分 [label = w41] 変数4 -> 第2主成分 [label = w42] 変数3 -> 第1主成分 [label = w31] 変数3 -> 第2主成分 [label = w32] 変数2 -> 第1主成分 [label = w21] 変数2 -> 第2主成分 [label = w22] } ``` ## 主成分分析の目的 * データのばらつきの多くを表現する低次元空間を見出して、その低次元を情報の縮約とする (次元縮約、次元圧縮) * データの低次元の要約の獲得 * データから細かなばらつきの成分(ノイズ)を取り除く ## 主成分分析の(計算)手順 1. データの重心と分散を求める 2. 全変数を個別に標準化して、標準化データを得る 3. 共分散行列を推定する (相関係数行列と等しい) 4. 固有値と固有ベクトルを求める 5. 寄与率と累積寄与率を求めて、分析で採用する主成分の数を決める 6. 標準化データを主成分に変換する(主成分得点という) 7. 因子負荷量を求める 8. 主成分得点の散布図を描く 9. 主成分得点の散布図に因子負荷量を描く 10. 主成分を解釈する 11. データを見て、解釈の正しさを検証する ### JMPの場合 1. 〔ファイル〕→〔開く〕データを開く 2. 〔分析〕→〔一変量の分布〕ヒストグラムを見る 3. 〔分析〕→〔多変量分析〕→〔多変量の相関〕相関係数行列、散布図行列を見る 4. 〔グラフ〕→〔三次元散布図〕三次元散布図を見ておく 5. 〔分析〕→〔多変量分析〕→〔主成分分析〕主成分分析 5.1 相関係数行列に対する主成分分析の結果を眺める (第2主成分までしか表示されない) 5.2 〔固有値〕を表示させて、幾つの固有値まで選択するかを決める (スクリープロットと同じ) 5.3 固有値の等質性(等しいかどうか)に対する〔Bartlettの検定〕を表示させて、有意かどうかを確認する 5.4 〔外れ値分析〕を表示させて、外れているレコードを確認し、必要に応じて解析から外す 5.5 〔バイプロット〕を表示させて、各主成分の意味を読み解いて、記録する 5.6 〔散布図行列〕を表示させて、主成分の意味と主成分間の違いを上側の主成分負荷量で確認すると共に、各主成分の解釈が正しいかを主成分スコアとデータを見比べて確認する 5.7 〔スクリープロット〕を表示させるけど、〔固有値〕と似たグラフなので、既に固有値を決めてあれば、報告用のみ 5.8 〔スコアプロット〕は散布図行列にも含まれている 5.9 〔三次元スコアプロット〕は必要に応じて表示させ、主成分スコアの3次元での散布の様子を確認する(ラグビーボールのような形状が望ましい) 5.10 〔スコアに対する楕円〕は正規分布に近いことを確認するために表示させる、最後には消していい 5.11 〔主成分の保存〕は、元のデータに主成分スコアの計算式を保存する 練習1:成績データ 練習2:株価データ ## 宿題 例えば皆さんの当大学院への進学の動機となったことなど、自分が興味を抱いている領域、あるいはその隣接領域において、主成分分析を用いた論文を探してください。 ### 論文検索 検索手段はオンラインなら次のサイトで。 * [信濃町メディアセンター](https://www.lib.keio.ac.jp/med/)の論文・記事検索 * [湘南藤沢メディアセンター](https://www.lib.keio.ac.jp/sfc/)の論文・記事検索、PubMed、医中誌 検索した結果、義塾の何処かの図書館で購読していたら、そこに出向いて複写するか、複写を取り寄せるかのいずれか。他に、[Google Scholar](https://scholar.google.com/)を用いても良い。その他、健マネ概論で教わったメディアセンターの利用法も参考にして欲しい。 ### 論文のまとめ方 * 分量:パワーポイント等のスライド2枚以内。 * 様式:Zoom時代なので、文字の大きさは気にしなくていい。 * 論文内の図表等の利用:特定少数での教育目的の共有なので、使用して構わない。 * 必要な記載項目:皆さん自身の属性情報(学籍番号、氏名、提出日, 小さいフォントでいいです)、興味を持った論文の書誌情報(タイトル、著者、掲載雑誌、巻、号、ページ、これらもタイトル以外は小さいフォントでいいです)、論文の概要(研究の目的、研究の対象、研究のデータ、分析手法、分析に使用された変数、結果(元の変数群と主成分の関係を表す図)) * お願い:上の項目を網羅しつつ、大まかにどのような研究かを説明するように、スライドを作成してください。 提出先は明日以降、このページに記載します。(Google Driveを用いる予定です。ファイル名にご自身の苗字は忘れずにつけてください。) ## 主成分分析の目的 主成分分析を行って抽出した情報そのものが目的の場合と、主成分分析で抽出した情報を更なる分析に活用する場合とがある。 1. 次元縮約(機械学習:画像その他のパターン認識:データアナリティクス? 簡単な操作) 2. データアナリティクスなデータの深掘り:元の変数から新しく評価指標を作成する(スコアリング) 3. 新しい指標のもとでの、対象の分類(クラスタリング)、ポジショニング(可視化、2次分析) 4. 変数の分類と、対象の分類は、dualな構造 5. 機械学習の言葉で表すると、教師なし学習による特徴抽出に相当する(非常にカジュアルに用いられる) ## JMPの主成分分析プラットフォーム 主成分分析(PCA; Principal Component Analysis)は、複数の変数における変動をできるだけ説明する、少数の独立した線形結合(主成分)を求めます。主成分分析は次元を削減する手法であり、探索的データ分析(EDA; Exploratory Data Analysis)の手法の1つです。主成分回帰(PCR)によって予測モデルを作成するときにも使えます。 「主成分分析」プラットフォームには、変数の個数が非常に多いデータに対する分析のために、「横長」(wide)というオプションも用意されています。「横長」手法では、横長なデータに対して、通常の処理方法よりも計算時間が短くてすみます。主成分スコアをデータテーブルに保存すれば、それをもとに主成分回帰が行えます。 多くの0があるデータ(疎データ)に対する分析のために、「疎」(sparse)というオプションも用意されています。「横長」オプションと同様、「疎」オプションも計算時間が短くなります。ただし、「横長」オプションとは異なり、「疎」オプションはすべての次元ではなく、ユーザが指定した個数だけ主成分が算出されます。 また、「主成分分析」プラットフォームでは因子分析も行うことができます。JMPには、抽出した因子を解釈しやすくするために、いくつかの直交回転や斜交回転が用意されています。因子分析については、因子分析を参照してください。 図4.1 主成分分析の例 ![](https://hackmd.io/_uploads/SJD1YPdfo.jpg) ### 概要 主成分分析は、多変量データの変動を、なるべく少数の合成変数(主成分)で説明しようとする分析です。 主成分分析は、相関が高い多変量データの分布を調べるのに役立ちます。主成分分析は、多変量データにおいて最も変動が大きくなっている方向を抽出します。主成分分析を適用すれば、より少ない次元の合成変数によって、元の多変量データがもつ変動を把握することができます。主成分分析は、できるだけ少数の主成分によって、元データの変動をなるべく多く説明しようとする手法です。 変数が$p$個あるとき、次のようにしてp個の主成分が形成されます。 * 第1主成分は、標準化された変数の線形結合のなかで、最大の分散を持つものです。 * それに続く主成分は、変数の線形結合のなかで、すでに求められた主成分との相関がないもののうち、最大の分散を持つものです。 相関係数行列(もしくは、共分散行列、原データの積和行列)の固有ベクトルが、上記のような線形結合の係数になります。また、各固有値は各主成分の分散になります。 「主成分分析」プラットフォームの主成分分析では、相関係数行列・共分散行列・積和行列を分析対象とします。なお、このプラットフォームでは因子分析も実行できます。詳細については、因子分析を参照してください。 ### 主成分分析の例 例として、2成分によってほぼ説明されるサンプルデータの「主成分分析」レポートを確認してみましょう。 1. [ヘルプ]>[サンプルデータライブラリ]を選択し、「Solubility.jmp」を開きます。 2. [分析]>[多変量]>[主成分分析]を選択します。 3. 連続尺度の列をすべて選択し、[Y, 列]を選択します。 4. 「推定法」は[デフォルト]のままで、[OK]をクリックします。 図4.2 「主成分分析: 相関係数行列から」レポート ![](https://hackmd.io/_uploads/SJgvKD_Ms.jpg) レポートには、固有値と、各主成分によって説明される変動の割合を示す棒グラフが表示されます。この例では、第1主成分が、データ内の変動の約80%を説明しています。第2主成分と合わせると、この2つの主成分でデータ内のほとんどすべての変動を説明しています(95.5%)。また、主成分スコアのプロットと、主成分負荷量のプロットも表示されます。「主成分分析」レポートを参照してください。 ### 「主成分分析」プラットフォームの起動 「主成分分析」プラットフォームを起動するには、[分析]>[多変量]>[主成分分析]を選択します。主成分分析は、「多変量の相関」プラットフォームや「三次元散布図」プラットフォームでも実行できます。 主成分分析の例で解説している例では、「Solubility.jmp」サンプルデータの連続変数をすべて使用しています。 図4.3 「主成分分析」起動![](https://hackmd.io/_uploads/S1xjFPOfo.png) ウィンドウ 「列の選択」の赤い三角ボタンのメニューのオプションについては、『JMPの使用法』の列フィルタメニューを参照してください。 #### Y, 列 主成分分析の対象となる変数を指定します。 #### Z, 追加変数 追加変数(supplementary variable)として使用する列を指定します。追加変数は主成分の計算には含まれません。追加変数を指定しても、元の主成分分析そのものには影響しません。連続尺度の追加変数に対しては、それらの主成分負荷量が計算され、グラフにプロットされます。追加変数は主成分を解釈するのにも役立ちます。 #### 重み この役割を割り当てた列の数値は、分析において各行の重みとして使用されます。 メモ: 「重み」の役割は、[推定法]オプションが[横長]および[疎]のときは無視されます。 #### 度数 この役割を割り当てた列の数値は、分析において各行の度数として使用されます。 メモ: 「度数」の役割は、[推定法]オプションが[横長]および[疎]のときは無視されます。 By [By]変数に指定した列の値ごとに「主成分分析」レポートが作成されます。つまり、グループごとに主成分分析が実行されます。 #### 推定法 相関の計算方法を指定します。これらの一部は欠測値の処理の仕方が違います。 1. デフォルト [デフォルト]オプションを選択した場合は、状況に応じて実際には[リストワイズ]・[ペアワイズ]・[REML]のいずれかが使用されます。また、状況に応じて、[横長]への変更を促す警告が表示されます。 * 欠測値が1つもないデータテーブルの場合は、[リストワイズ]推定が使用されます。 * [ペアワイズ]推定は、データに欠測値があり、かつ、次のいずれかの条件が満たされている場合に使用されます。その条件とは、列数が11列以上、行数が5,001行以上、または、行数より列数が多い場合です。 * それ以外で欠測値があるデータには[REML]推定が使用されます。 * データの列数が501列以上あり、列数が行数を上回る場合、[横長]を用いることを推奨する警告が表示されます。列数が非常に多い場合に通常の方法を使用すると、計算に時間がかかるためです。[横長]をクリックして、横長データに特化した計算方法に切り替えるか、または、[続ける]をクリックして、最初に選択した方法を使用してください。 2. REML 制限最尤法(REML)による推定は、欠測値がある場合でも、すべてのデータを使用します。バイアス修正項の計算に時間がかかるため、データセットが大規模で欠測値が多い場合は、計算時間が長くなります。そのため、REMLはデータが小規模な場合に有用な推定法です。データに欠測値が1つもない場合、[REML]や[最尤]を指定しても、リストワイズ法により計算が行われます。データに欠測値がある場合、REML推定の分散推定値と共分散推定値は、最尤法のそれらよりもバイアスが小さいです。統計的な詳細については、REMLを参照してください。 3. 最尤 最尤推定も、欠測値がある場合でも、すべてのデータを使用します。最尤推定はREML推定よりも計算が速いです。欠測データのある大規模なデータでは、最尤推定が有用です。 4. ロバスト ロバスト推定も、欠測値がある場合でも、すべてのデータを使用します。この方法は、外れ値となっているデータに対する重みを小さくします。そのため、外れ値のあるデータに対して有用です。詳細については、ロバストを参照してください。 5. リストワイズ リストワイズ法では、すべての列の値が欠測値ではない行だけを使って、Pearsonの相関係数を計算します。統計的な詳細については、Pearsonの積率相関係数を参照してください。この推定法では、すべての値が非欠測値である行だけを計算に用います。したがって、欠測値が1つでもある行を除外したいときに便利です。 6. ペアワイズ ペアワイズ法も、欠測値がある場合でも、すべてのデータを使用します。この推定法では、2変数のペアごとに、非欠測となっているすべてのデータを使用して、Pearsonの相関係数を計算します。統計的な詳細については、Pearsonの積率相関係数を参照してください。データに欠測値がある場合に、次のいずれかの条件が満たされていれば、デフォルトの推定法としてペアワイズ法が使われます。その条件とは、データの列数が11列以上であるか、行数が5001行以上であるか、または、列数が行数より多いか、です。 7. 横長 [横長]オプションは欠測値のある行を計算に使いません。欠測値が1つでもある行は、計算から除かれます。[横長]オプションを選択すると、内部的な計算において特異値分解が使われます。内部的な計算において共分散行列を求めず、効率的に主成分分析を行います。そのような計算を行うので、データに非常に多くの列があるときに役立ちます。統計的な詳細については、横長なデータに対する手法を参照してください。 8. 疎 [疎]オプションは、欠測値がある場合でも、すべてのデータを使用します。[疎]オプションは、特異値分解において、分析者によって指定された個数だけ特異値および特異ベクトルを求めます。内部的な計算において共分散行列や不必要な主成分を求めずに、効率的に主成分分析を行います。このオプションは、データが疎の場合(つまりデータに多くの0を含む場合)や、データに多数の列が存在する場合に有用です。統計的な詳細については、疎なデータに対する手法を参照してください。 メモ: 欠測値があるデータに対して[REML]・[ML]・[ロバスト]のいずれかを選択した場合でも、データの列数が行数より多い場合には、JMPは推定法を[ペアワイズ]に切り替えます。 #### 成分の数 (「推定法」に[疎]を指定した場合にのみ使用できます。)求める主成分の個数を指定します。通常、「成分の数」にはデータの次元よりもかなり小さい値を指定します。 ### 欠測値のあるデータ 上記したように、欠測値に対応するために、いくつかの推定法が用意されています。なお、次のような方法で欠測値を補完することもできます。 • [多変量]>[多変量の相関]で、[欠測データの補完]オプションを使えば、欠測値を補完できます。欠測データの補完を参照してください。 • [分析]>[スクリーニング]>[欠測値を調べる]で、[多変量正規分布による補完]または[多変量の特異値分解補完]によっても、欠測値を補完できます。『予測モデルおよび発展的なモデル』の「欠測値を調べる」ユーティリティを参照してください。 ### 「主成分分析」レポート [横長]または[疎]以外の手法を選んだ場合は、「主成分: 相関係数行列から」レポートがまず表示されます(「主成分分析」の赤い三角ボタンメニューから[共分散行列から]または[原点周りの積和行列から]を選択した場合はこのレポートのタイトルが変更されます)。 [横長]手法を選択した場合は、「横長の主成分分析」レポートが表示されます。[疎]手法を選択した場合は、「疎の主成分分析」レポートが表示されます。 「主成分分析」レポートの最初に出力されている結果は、相関係数行列に対する主成分分析です。このレポートでは、指定したY変数のデータを各主成分がどれぐらい説明しているかが示されています(図4.4)。赤い三角ボタンのメニューから[主成分]オプションを選択することで、共分散行列または原データに基づいた分析に変更できます。 次のいずれに対する主成分分析にするかを、選ぶことができます。 * 相関係数行列 * 共分散行列 * 原データの積和行列 レポートを見ると、各主成分によってデータの変動がどの程度、説明されるかがわかります。なお、主成分スコアは、固有ベクトルを重みとした、変数の線形結合によって求められます。 図4.4 「主成分分析: 相関係数行列から」レポート ![](https://hackmd.io/_uploads/B13vcvufi.jpg) レポートには、固有値と、各主成分によって説明される変動の割合を示す棒グラフが表示されます。また、主成分スコアのプロットと、主成分負荷量のプロットも表示されます。固有値は、各主成分によって説明される変動の量を表しており、抽出すべき主成分の個数を決めるときの目安となります。 主成分スコアのプロットは、初めの2成分の主成分スコアをプロットしたものです。相関係数行列に対する主成分分析では、主成分スコアの平均は0で、分散は固有値となっています。 主成分負荷量のプロットは、回転前の主成分負荷量をプロットしたものです。主成分負荷量は、主成分スコアと、各変数との相関です。主成分負荷量の絶対値が1に近いほど、主成分スコアと変数との間には強い相関関係があることを示します。 デフォルトでは、これらのプロットでは最初の2つの主成分が描かれます。「成分の選択」の横のリストで、これらのプロットで表示する主成分の次元を指定できます。 ### 「主成分分析」レポートのオプション 主成分分析のタイトルバーにある赤い三角ボタンをクリックすると、次のようなオプションが表示されます。 メモ: 一部のオプションは、「横長」または「疎」の推定法では表示されません。 主成分分析 (「横長」または「疎」の推定法では表示されません。)[相関係数行列から]・[共分散行列から]・[原点周りの積和行列から]のいずれかに基づいて主成分を求められます。 相関 (「横長」または「疎」の推定法では表示されません。)相関係数行列の表示/非表示を切り替えます。 メモ: 相関係数行列の対角要素は1.0になっています。 共分散行列 (「横長」または「疎」の推定法では表示されません。)共分散行列の表示/非表示を切り替えます。 固有値 各主成分に対応する固有値が、大きい方から順に表示されます。固有値は、多変量データにおける分散の合計が各主成分によってどれぐらい説明されるかを表します。 固有値のスケールは、分析対象とする行列によって異なります。 *[相関係数行列から]オプションを選んだ場合、固有値の合計は変数の個数に一致します。 *[共分散行列から]オプションを選んだ場合、固有値は尺度化されません。 *[原点周りの積和行列から]オプションを選んだ場合、積和行列の固有値を標本サイズで割った値が表示されます。 赤い三角ボタンのメニューから[Bartlettの検定]オプションを選択した場合、各固有値に対する仮説検定(図4.6)が行われます(Jackson, 2003)。 図4.5 固有値 ![](https://hackmd.io/_uploads/rkYbsPdMs.png) 固有ベクトル 各主成分(左から順に第1主成分、第2主成分、と並ぶ)の固有ベクトルの表示/非表示を切り替えます。固有ベクトルを係数として計算された元の変数の線形結合が、主成分スコアです。各固有ベクトルはノルムが1になるように標準化されています。 メモ: 表示される固有ベクトルの個数は、相関係数行列のランクと同じか、または「疎」の推定法が選択されている場合は、起動ウィンドウで指定された成分の個数です。 Bartlettの検定 (「横長」または「疎」の推定法では表示されません。)固有値の等質性に対する検定結果の表示/非表示を切り替えます(「固有値」表に追加されます)。この検定では、複数の固有値が等しいかどうかに関する検定に対して、カイ2乗値・自由度(DF)・p値(prob > ChiSq)が計算されます。Bartlett(1937, 1954)を参照してください。 図4.6 Bartlettの検定 ![](https://hackmd.io/_uploads/BJ1HoPuzi.png) 負荷量行列 各主成分の負荷量を示した表の表示/非表示を切り替えます。これらの負荷量は、負荷量プロットに描かれています。表中の値の透明度は、負荷量の絶対値が、どれぐらいゼロに近いかを示しています。負荷量の絶対値がゼロに近いほど透明になります。 追加変数として連続変数やカテゴリカル変数を指定した場合は、その座標の表も表示されます(カテゴリカル変数を指定した場合は、各水準の座標が表示されます)。追加変数として連続変数を指定した場合、これらの値が負荷量プロットに描かれます。 負荷量と座標がどのように尺度化されるかは、主成分分析の対象となった行列で異なります。 *[相関係数行列から]オプションを選んだ場合、i番目の負荷量の列は、i番目の固有ベクトルにi番目の固有値の平方根を掛けたものとなります。i,j番目の負荷量は、i番目の変数とj番目の主成分との相関になっています。 *[共分散行列から]オプションを選んだ場合、第i列、第j 行の負荷量は、i番目の固有ベクトルにi番目の固有値の平方根を掛けて、j番目の変数の標準偏差で割ったものとなります。i,j番目の負荷量は、i番目の変数とj番目の主成分との相関になっています。 *[原点周りの積和行列]オプションを選んだ場合、第i列、第j行の負荷量は、i 番目の固有ベクトルにi番目の固有値の平方根を掛けて、j番目の変数の平均積和で割ったものとなります。ここで言う「j番目の変数の平均積和」とは、積和行列(X′X/n)のj番目の対角要素を行数で割った値です。 メモ: 積和行列を分析対象とする場合、i,j番目の負荷量はi番目の変数とj番目の主成分の間の相関ではありません。 濃淡表示の負荷量行列 各主成分の負荷量を示した表の表示/非表示を切り替えます。この表の変数は、第1主成分の負荷量によって降順に並べ替えられています。 図4.7 濃淡表示の負荷量行列 ![](https://hackmd.io/_uploads/r1AGiPOzs.png) 値が小さい負荷量を淡色表示: 閾値= 「濃淡表示の負荷量行列」レポートに表示しない負荷量を決める値です。テキストボックスかスライダーを使って、選択した値より小さい絶対値の負荷量を淡色表示にします。 テキストの濃さ 「濃淡表示の負荷量行列」レポートで淡色表示する値の透明度。テキストボックスかスライダーを使って、淡色表示する負荷量の透明度を設定します。透明度は0~1です。低い値ほど透明度は高くなります。たとえば、透明度を0に設定すると、閾値以下の負荷量はまったく表示されなくなります。透明度を1に設定すると、すべての負荷量はそのまま表示されます。 変数の余弦2乗 各変数の余弦2乗を示した表の表示/非表示を切り替えます。追加変数を指定した場合は、その余弦2乗の表も表示されます。各変数の余弦2乗を主成分全体で合計したものは、1になります(100%になります)。余弦2乗を見れば、各変数が該当の主成分によっていかに良く表されるかがわかります。また、該当の変数を表すのにいくつの主成分が必要かを知る目安になります。このオプションを選ぶと、最初の3つの主成分の余弦2乗を描いたプロットも表示されます。 メモ: ただし、起動ダイアログの[推定法]オプションで[疎]を使用し、選択した成分が2つ以下の場合、1つもしくは2つ成分のみがプロットされます。 変数の偏寄与率 各変数の偏寄与率を示した表の表示/非表示を切り替えます。偏寄与率を見ると、各変数が各主成分に寄与する割合がわかります。このオプションを選ぶと、最初の3つの主成分の偏寄与率を描いたプロットも表示されます。 メモ: ただし、起動ダイアログの[推定法]オプションで[疎]を使用し、選択した成分が2つ以下の場合、1つもしくは2つ成分のみがプロットされます。 要約プロット デフォルトのレポートで作成された要約情報の表示/非表示を切り替えます。この要約情報には、固有値のプロット、主成分スコアのプロット、主成分負荷量のプロットが含まれます。デフォルトでは、レポートには最初の2つの主成分のスコアプロットと負荷量プロットが表示されます。プロットする主成分を変更することもできます。「主成分分析」レポートを参照してください。 メモ: データに欠測値が含まれる場合、補完したスコアがスコアプロットに表示されます。 ヒント: 負荷量プロットの矢印の先を選択すると、データテーブル内の対応する列が選択されます。Ctrlキーを押したまま矢印の先をクリックすると、列の選択を解除できます。 バイプロット スコアと負荷量を重ねて描いたバイプロットの表示/非表示を切り替えます。指定した成分数に対するバイプロットが描かれます。 メモ: データに欠測値が含まれる場合、補完したスコアがバイプロットに表示されます。 図4.8 バイプロット ![](https://hackmd.io/_uploads/B1e_sDdzj.png) メモ: バイプロットでは、主成分スコアは点で、主成分負荷量は矢印で描かれています。 散布図行列 主成分スコアと主成分負荷量をプロットした散布図行列の表示/非表示を切り替えます。この散布図行列には、主成分スコアのプロットが左下に、主成分負荷量のプロットが右上に描かれています。主成分スコアのプロットの背景色は黄色、主成分負荷量のプロットの背景色は青色になっています。 メモ: データに欠測値が含まれる場合、補完したスコアが散布図行列に表示されます。 図4.9 散布図行列 ![](https://hackmd.io/_uploads/rywuoPdzj.png) メモ: 散布図行列に表示される負荷量プロット行列は、[負荷量プロット]オプションを選択したときに得られる負荷量プロット行列を転置したものです。 スクリープロット 各成分の固有値をプロットしたグラフの表示/非表示を切り替えます。このグラフは成分数に対して固有値をプロットしたもので、求める主成分の次元数を決めるのに役立ちます。 スコアプロット 主成分スコアをプロットした散布図行列の表示/非表示を切り替えます。指定した成分数に対する散布図が描かれます。図4.4は主成分スコアをプロットした例です(一番左側のプロット)。 負荷量プロット 主成分負荷量のプロットの表示/非表示を切り替えます。指定した成分数に対するプロットが描かれます。負荷量プロットでは、変数が30個以下の場合は変数のラベルが表示されます。変数が30個より多い場合は、デフォルトでラベルが非表示になります。この情報は、図4.4に表示されています(一番右側のプロット)。 ヒント: 負荷量プロットの矢印の先を選択すると、データテーブル内の対応する列が選択されます。Ctrlキーを押したまま矢印の先をクリックすると、列の選択を解除できます。 補完したスコアプロット (「横長」または「疎」の推定法では表示されません。)欠測値をすべて補完したスコアプロットが作成されます。このオプションは、欠測値がある場合にのみ使用できます。 三次元スコアプロット (「横長」または「疎」の推定法では表示されません。)主成分スコアの三次元散布図が表示されます。初期のプロットでは、最初の3つの主成分がプロットされています。 メモ: データに欠測値が含まれる場合、補完したスコアが三次元スコアプロットに表示されます。 図4.10 三次元スコアプロット ![](https://hackmd.io/_uploads/SkUFoPuMi.jpg) プロットのソース どのデータをプロットするかを選択します。使用できるオプションは、[主成分分析]、[回転後の主成分]、[データ列]です。 変数の指定 各軸にプロットする変数を指定します。[主成分分析]オプションまたは[回転後の主成分]オプションを選択した場合、主成分スコアがプロットされます。[データ列]オプションを選択すると、元の変数がプロットされます。 サイクルボタン 軸にプロットする変数が順番に変更されます。 このプロットでは、変数が中心からの矢印で描かれます。この矢印は、バイプロット線といい、主成分の空間上に元の変数の向きを近似的に描いています。変数が2つまたは3つしかない場合、バイプロット線は、近似ではなく、元の変数の正確な向きを表します。これらのバイプロット線は、主成分負荷量を表しています。 スコアに対する楕円 主成分スコアの要約プロットにおいて、楕円の表示/非表示を切り替えます。楕円の種類には、累積確率に基づくものと、シグマの何倍になっているかに基づくものがあります。デフォルトでは、95%信頼楕円が表示されます。 楕円の大きさ スコアに対する楕円の描き方を指定するサブメニューが含まれます。楕円外の累積確率か、または、kシグマを指定します。楕円外の累積確率pと、kシグマは、p = 1 - exp(-k2/2)という関係になっています。 表示オプション 矢印線 矢印を表示できるプロットにおいて、矢印の表示/非表示を切り替えることができます。変数の数が1000個以下の場合、矢印が表示されます。変数が1000個より多い場合は、デフォルトにおいて矢印は表示されません。 追加変数の表示 (追加変数を指定したときだけ使用できます)バイプロット・スコアプロット・負荷量プロットにおいて、連続尺度の追加変数を表す矢印、および、カテゴリカルな追加変数のマーカーの表示/非表示を切り替えます。 外れ値分析 「外れ値分析」レポートの表示/非表示を切り替えます。この分析により、T2や各行の寄与に関する統計量に基づき、外れ値を検出できます。外れ値分析を参照してください。 因子分析 (「横長」または「疎」の推定法では表示されません。)回転を伴う主成分分析や、因子分析が実行されます。因子分析を参照してください。 変数のクラスタリング (「横長」または「疎」の推定法では表示されません。)変数に対するクラスター分析を実行し、変数を重なりのないクラスターに分割します。似ているどうしの変数から構成されたクラスターに分類します。各クラスターが、1つの成分または変数で表せるようになります。求められた成分は、クラスター内のすべての変数の線形結合です。また、各クラスター内で最も代表的とみなされる変数も求められます。変数のクラスタリングを参照してください。 メモ: [変数のクラスタリング]は、[共分散行列から]または[原点周りの積和行列から]オプションを選択した場合でも、すべての計算に相関係数行列が使用されます。 主成分の保存 指定された次元までの主成分スコアを計算する計算式を、データテーブルに保存します。この計算式で計算される主成分スコアは、欠測値のある行に対しては欠測値になります。 主成分スコアの計算式は、どの行列を分析対象にしたかによって異なります。 – [相関係数行列から]オプションを選んだ場合、i番目の主成分スコアは、i番目の固有ベクトルを係数にして求められた、中心化かつ尺度化されたデータの線形結合です。 – [共分散行列から]オプションを選んだ場合、i番目の主成分は、i番目の固有ベクトルを係数にして求められた、中心化されたデータの線形結合です。 – [原点周りの積和行列から]オプションを選んだ場合、i番目の主成分は、i番目の固有ベクトルを係数にして求められた、生データの線形結合です。 メモ: 指定した次元が相関係数行列のランクを超えている場合、保存される主成分の個数は相関係数行列のランクに設定されます。 予測値の保存 指定した次元までの主成分から計算される予測値を、データテーブルの新しい列に保存します。 Xモデルまでの距離を保存 各データ行から、指定した次元の主成分から計算される主成分モデルまでの距離(DModX)を、データテーブルの新しい列に保存します。DModXの値が大きいデータ行は、指定された次元までの主成分モデルでは十分に説明されず、その主成分モデルからは外れ値となっている可能性があります。DModXの計算方法を参照してください。 データ行の余弦2乗を保存 指定した次元までの主成分から計算されるデータ行の余弦2乗を、データテーブルの新しい列に保存します。 データ行の偏寄与率を保存 指定した次元までの主成分から計算されるデータ行の偏寄与率を、データテーブルの新しい列に保存します。 回転後の成分を保存 (「横長」または「疎」の推定法では表示されません。)回転した後の主成分スコア(もしくは因子スコア)の計算式がデータテーブルに保存されます。このオプションは、[因子分析]オプションを使用した場合にのみ表示されます。この計算式で計算されるスコアは、欠測値のあるデータに対しては欠測値になります。 補完して主成分を保存 (「横長」または「疎」の推定法では表示されません。)欠測値を補完した後に算出した主成分スコアがデータテーブルに保存されます。列には、欠測値を補完したデータから主成分スコアを算出する計算式が保存されます。このオプションは、欠測値がある場合にのみ使用できます。 補完して回転後の成分を保存 (「横長」または「疎」の推定法では表示されません。)欠測値を補完した後に算出した回転後のスコアがデータテーブルに保存されます。列には、欠測値を補完したデータから回転後のスコアを算出する計算式が保存されます。このオプションは、欠測値があるデータに対して[因子分析]オプションを使用した場合にのみ表示されます。 欠測データ補完の計算式を保存 (データテーブルに欠測値がある場合のみ使用できます。)欠測値を含む列に関して、欠測値の推定に使用した計算式を、データテーブル内の新しい列に保存します。新しい列には、「補完された_<列名>」という名前がつきます。 成分計算式の発行 指定した次元までの主成分スコアの計算式を作成し、それを「計算式デポ」レポート内の計算式列スクリプトとして保存します。「計算式デポ」レポートが開いていない場合は、このオプションによって「計算式デポ」レポートが作成されます。『予測モデルおよび発展的なモデル』の計算式デポを参照してください。 DModXの計算式を発行 「計算式デポ」プラットフォームの数式列スクリプトとして、指定された次元までのDmodX(主成分モデルからの距離)の計算式を保存します。「計算式デポ」レポートが開いていない場合は、このオプションによって「計算式デポ」レポートが作成されます。『予測モデルおよび発展的なモデル』の計算式デポを参照してください。 以下のオプションの詳細については、『JMPの使用法』のレポートのローカルデータフィルタ、レポートの[やり直し]メニュー、およびレポートの[スクリプトの保存]メニューを参照してください。 ローカルデータフィルタ データをフィルタリングするためのローカルデータフィルタの表示/非表示を切り替えます。 やり直し 分析を繰り返したり、やり直したりするオプションを含みます。また、[自動再計算]オプションに対応しているプラットフォームにおいては、[自動再計算]オプションを選択すると、データテーブルに加えた変更が、該当するレポートに即座に反映されるようになります。 スクリプトの保存 レポートを再現するためのスクリプトを保存するオプションが、保存先ごとに用意されています。 Byグループのスクリプトを保存 By変数の全水準に対するレポートを再現するスクリプトを保存するオプションが、保存先ごとに用意されています。起動ウィンドウでBy変数を指定した場合のみ使用可能です。 ### 外れ値分析 図4.11 「外れ値分析」レポート ![](https://hackmd.io/_uploads/SyIRjPufs.jpg) デフォルトでは、「外れ値分析」のプロットには、主成分分析の結果から計算されるT2が描かれます。このプロットは、中央値(メディアン)と上側管理限界(UCL)が水平線で描かれ、各行のT2値がプロットされます。表示します。T2値・中央値・UCLの計算法の詳細については、外れ値分析の計算を参照してください。 UCLの計算に使用されるa水準は、プロットの右に表示されます。プロットの下には外れ値として検出されたデータの個数も表示されます。この数は、T2値がUCLよりも大きくなっているデータ行の行数です。 ヒント: T2プロットの点にカーソルを合わせると、そのデータ行のT2寄与率プロットが表示されます。T2寄与率プロットをクリックすると、そのプロットがレポートウィンドウに追加されます。 「外れ値分析」レポートのオプション T2プロット T2プロットの表示/非表示を切り替えます。デフォルトではオンになっています。 寄与度ヒートマップ すべてのデータ行に関して、T2に寄与している大きさを示したヒートマップの表示/非表示を切り替えます。 寄与率ヒートマップ T2に対する寄与率のヒートマップ(各行ごとに、T2に対して各変数がどれだけ寄与しているかを割合で示したヒートマップ)の表示/非表示を切り替えます。この寄与率は、各行ごとに、各変数における寄与度の2乗を、寄与度の2乗和で割って求めています。 選択したデータ行の寄与度プロット (1つ以上の点がT2プロットで選択されている場合にのみ使用可能)選択したデータ行のT2寄与度プロットを表示します。このT2寄与度プロットは、そのデータ行のT2統計量に対する、各変数の寄与を表しています。寄与度の計算方法については、外れ値分析の計算を参照してください。寄与度プロットによって外れ値を吟味することができます。この寄与度が大きくなっている変数は、外れ値となっているデータ行において、T2を大きくしている変数とみなすことができます。赤い三角ボタンに含まれるオプションについては、寄与度プロットレポートのオプションを参照してください。 選択したデータ行の寄与率プロット (1つ以上の点がT2プロットで選択されている場合にのみ使用可能)選択したデータ行のT2寄与率プロットを表示します。このT2寄与率プロットは、選択したデータ行のT2がどの程度寄与しているかを割合で表したものであり、寄与率ヒートマップと同じ情報を別の表示形式で示したものと言えます。赤い三角ボタンに含まれるオプションについては、寄与度プロットレポートのオプションを参照してください。 正規化されたDModXプロット (主成分の個数が変数の個数より少ない場合のみ利用可能)正規化されたDModX値を表示または非表示にします。DModX値は、それほど極端ではない外れ値を検出するのに役立ちます。 成分の数 T2およびT2寄与度で使用される主成分の個数を指定できます。主成分の個数を変更すると、T2プロット、ヒートマップ、正規化されたDModXプロットが自動的に更新されます。 a水準の設定 a水準を指定できます。 T2を保存 T2値をデータテーブルの新しい列に保存します。 寄与度を保存 T2に対する寄与度を、データテーブルの新しい列に保存します。分析に用いたY列ごとに1列が作成されます。 正規化したDModXを保存 (主成分の個数が変数の個数より少ない場合のみ利用可能)正規化したDModX値をデータテーブルの新しい列に保存します。 寄与度プロットレポートのオプション 「選択したデータ行のT2寄与度プロット」・「選択したデータ行のT2寄与率プロット」・「選択したデータ行のT2平均寄与率プロット」の赤い三角ボタンには、以下のオプションが含まれます。 棒にラベルを付ける 寄与度プロットの棒にラベルを付けるためのサブメニューが表示されます。サブメニューには、[ラベルなし]・[値ラベル]・[列名ラベル]があります。 プロットの削除 レポートから寄与度プロットを削除します。 選択した項目の管理図 (寄与度プロットで複数の棒セグメントを選択した場合のみ使用可能。)「管理図ビルダー」ウィンドウが開き、選択した工程およびグループの管理図が表示されます。 ヒント: 寄与度プロットで棒セグメント上にカーソルを合わせることによっても、管理図を表示できます。その管理図をクリックすると、「管理図ビルダー」ウィンドウが開きます。