主成分分析 (PCA; Principal Component Analysis)
解説
主成分分析とは
主成分分析 (Principal Component Analysis; PCA) は、多数の連続変数を持つデータセットから、元の情報をできるだけ保持しながら少数の新しい合成変数(主成分)を作成する統計手法です。
主成分は、元の変数の線形結合として定義され、第1主成分がデータの分散を最大限説明し、第2主成分は第1主成分と直交する方向でデータの分散を最大限説明する、という形で順に導出されます。
主成分分析は教師なし手法であり、目的変数と説明変数の区別はありません。分析対象の変数群を「説明変数」として入力します。
主な用途:
- データの次元削減と可視化
- 変数間の構造やパターンの探索
- 多重共線性の解消(主成分を新たな説明変数として使用)
- データの要約と情報圧縮
- 外れ値の検出
本アプリでサポートする機能
| 機能 | 詳細 | 特徴 |
|---|---|---|
| 主成分分析 | prcomp() による固有値分解 | 標準化を自動適用 |
| 寄与率 | 各主成分の分散説明割合 | 累積寄与率の計算 |
| 因子負荷量 | 元の変数と主成分の相関 | 主成分の解釈に使用 |
| 変数貢献度 | 各変数の主成分への貢献割合 | 重要な変数の特定 |
| バイプロット | factoextra パッケージによる可視化 | 変数の貢献度をカラーマッピング |
データ要件と推奨事項
変数の要件
- 目的変数: 不要(教師なし手法)
- 説明変数(分析対象変数): 連続変数 3つ以上(カテゴリカル変数は使用不可)
サンプルサイズの目安
| 分析の種類 | 最低限 | 推奨 |
|---|---|---|
| 探索的分析 | 変数数×5件以上 | 変数数×10件以上 |
| 安定した推定 | 100件以上 | 300件以上 |
データの性質
- 標準化: 変数のスケール(単位)が異なる場合、自動的に標準化(平均0、標準偏差1)されます
- 欠損値: 完全なデータが必要(欠損値のある行は自動除外)
- 外れ値: 結果に大きく影響するため、事前に確認を推奨
結果の解釈
寄与率(分散説明割合)
| 累積寄与率 | 解釈 |
|---|---|
| ≥ 80% | 十分な情報を保持 |
| 70 - 79% | 許容可能 |
| < 70% | 情報の損失が大きい可能性 |
主成分数の決定
主成分数を決定する一般的な基準:
- カイザー基準: 固有値 > 1 の主成分を採用
- 累積寄与率: 70-80%以上を説明する主成分数を採用
- スクリープロット: 固有値の減少が緩やかになる「肘」の位置
因子負荷量の解釈
| 負荷量の絶対値 | 解釈 |
|---|---|
| ≥ 0.7 | 強い関連 |
| 0.4 - 0.69 | 中程度の関連 |
| < 0.4 | 弱い関連 |
バイプロットの読み方
- 矢印の方向: その変数が主成分空間でどの方向に位置するか
- 矢印の長さ: その変数の主成分への貢献度の大きさ
- 矢印間の角度: 変数間の相関(小さい角度 = 正の相関、直角 = 無相関、反対方向 = 負の相関)
- 色のグラデーション: 変数の貢献度を視覚化
主成分分析と因子分析の違い
| 項目 | 主成分分析 (PCA) | 因子分析 (FA) |
|---|---|---|
| 目的 | データの次元削減・要約 | 潜在因子の特定 |
| モデル | 観測変数 → 主成分 | 潜在因子 → 観測変数 |
| 分散 | 全分散を対象 | 共通分散のみを対象 |
| 一意性 | 解が一意に決まる | 回転により複数の解が存在 |
| 解釈 | データ圧縮として解釈 | 潜在的な構造として解釈 |
注意事項
- 変数のスケール: 標準化せずに分析すると、分散の大きい変数に主成分が引きずられます。本アプリでは自動的に標準化されます
- 線形性の仮定: PCAは変数間の線形関係を仮定します。非線形の関係がある場合、カーネルPCAなどの手法が必要です
- 解釈の限界: 主成分は数学的に導出された合成変数であり、必ずしも実質的な意味を持つとは限りません
- 因果推論: PCAはデータの構造を記述する手法であり、変数間の因果関係を示すものではありません
他の多変量解析手法
複数の説明変数によるデータ分析 (多変量解析) ページでは、本手法を含む10種類の多変量解析手法の概要と比較をご覧いただけます。
下のアプリでは、入力されたデータの目的変数・説明変数のタイプを自動判定し、適用可能な統計手法をすべて提示します。 そのため、本ページの手法以外の結果も表示されることがあります。これは同じデータ設定で複数の分析を比較検討できる仕組みです。
アプリ
| 分類内容 | 値 | |
| {{ item.tag }} |
データの取り扱い
- データインポート
- データの読み込みは、ブラウザ内で完結し、外部へのデータ送信は発生しません。
- データ保持
- 読み込んだデータはブラウザ内に保持されます。
- ブラウザのセッションが終了または全てのタブが閉じられると、保持していたデータは自動的に破棄されます。
- データの安全性
- ブラウザがクラッシュした場合でも、10分経過すれば次回の起動時にデータは安全に消去されます。
- 共用のPCでの使用も考慮し、データの外部漏洩のリスクを最小化しています。
クラウド R を利用する時のデータ送信
- 最小限のデータ送信
- 外部のRサーバーへ送信されるデータは、数値計算に必要な最小限のセットに制限されています。
- 送信データは解析に必要なサブセットのみに限られます。
- ユーザーコントロール下のデータ送信
- 送信前に、どのデータが外部サーバーへ送信されるのか内容を確認することが可能です。
- データの送信はユーザーの操作により行われ、自動的な送信は行いません。
- クラウド R 出力結果の保持
- クラウド R からの出力結果は、将来の自動翻訳や自動解説の機能実現のため、サーバーがデータベースに保持します。
- その際に、送信者の情報や、計算元となるデータなど、プライバシーに関わる情報は保持しません。
- 通信経路も全て暗号化していますので、たとえプライバシーに関わる情報が含まれていたとしても、通常は漏洩する恐れはありません。
AI による解説を利用する時のデータ送信
- 最小限のデータ送信
- 外部のAIサーバーへ送信されるデータは、クラウド R の出力結果と、用いた統計手法の徐放です。
- ただし、クラウド R の出力結果に連続した数値データが含まれる場合は、AI にデータ形式を認識させる目的で、連続データの最初の行のみを送信します。
- クラウド R 出力結果の保持
- AI による解説内容は、将来の品質向上などのため、サーバーがデータベースに保持します。
- その際に、送信者の情報や、計算元となるデータなど、プライバシーに関わる情報は保持しません。
Reactive stat において、統計データの変数は、通常の数値や文字列として扱われます。 したがって、日付や時間の概念は直接的にはサポートされていません。
統計計算を行う際には、日付や時間の差分を数値として事前に用意しておく必要があります。
チェックされた行が削除対象となります
削除対象の行
データ入力
AI による R コードの解説
R の出力結果
R出力図形
AI による R 出力結果の解説
- データ: カラム名 (列名) をそのまま記述するか、"列名" のようにダブルクォートで挟んで指定
- 算術演算子: +, -, *, /, ()
- 基本関数: abs(), sqrt(), pow(), exp(), log(), log10()
- 三角関数: sin(), cos(), tan(), asin(), acos(), atan()
- 丸め関数: round(), floor(), ceil()
体重 / pow(身長, 2), "体重" / ("身長" * "身長")
{{ column }}
{{title}}
入力されたデータの目的変数・説明変数のタイプを自動判定し、適用可能な統計手法をすべて提示します。 これは同じデータ設定で複数の分析を比較検討できる仕組みです。
{{calledFromSubPage? '本アプリで統合的に実行可能な': ''}}分析法の特徴一覧
| 手法 | 英語名 | 目的変数のタイプ | 説明変数のタイプ | 特徴 | Wikipedia |
|---|---|---|---|---|---|
| {{ method.japaneseName }} | {{ method.englishName }} | {{ method.dependentVariableType }} | {{ method.independentVariableType }} | {{ method.characteristic }} |
データ
設定
統計手法
| 変数名 | 数値 | 連続変数 | カテゴリカル /離散変数 |
|||
|---|---|---|---|---|---|---|
| {{ variable }} | {{ type.numerical ? '〇' : '-' }} | {{ type.originallyContinuous ? '〇' : '-' }} | {{ type.originallyCategorical ? '〇' : '-' }} |
データの分類は以下のルールに従っています
変数タイプは手動で調整できます
- : 有効 / : 無効
- クリックすると切り替わり、各統計手法に渡されるデータ形式を明示できます。
| 手法 | 目的変数のタイプ | 説明変数のタイプ | 適用 |
|---|---|---|---|
| {{ method.japaneseName }} | {{ method.dependentVariableType }} | {{ method.independentVariableType }} | {{ method.reason }} |
結果
{{method.japaneseName}} ({{method.englishName}})
- {{ warning }}