判別分析 (Discriminant Analysis)
解説
判別分析とは
判別分析 (Discriminant Analysis) は、あらかじめグループが既知のデータから判別関数を導出し、新しい観測値がどのグループに属するかを予測する教師あり分類手法です。
説明変数が連続変数である場合に適用され、グループ間の差異を最大化する線形(または非線形)の判別関数を求めます。
主な用途:
- 疾患診断: 検査値から疾患の有無を判別
- 品質管理: 製品の良品・不良品の分類
- マーケティング: 顧客セグメントの分類
- 生態学: 種の分類・同定
- 考古学: 遺物の分類
2つの判別分析手法
| 手法 | 仮定 | 特徴 | 適用場面 |
|---|---|---|---|
| 線形判別分析 (LDA) | 各群の共分散行列が等しい | 線形の判別境界 | 群間で分散が等しい場合 |
| 二次判別分析 (QDA) | 各群の共分散行列が異なってもよい | 非線形の判別境界 | 群間で分散が異なる場合 |
本アプリでサポートする機能
| 機能 | 詳細 | 特徴 | ||
|---|---|---|---|---|
| LDA | MASS::lda() による線形判別 | 判別係数、事前確率の算出 | ||
| QDA | MASS::qda() による二次判別 | 群ごとに異なる共分散を許容 | ||
| 交差検証 | Leave-One-Out (LOO) 法 | 判別精度の客観的評価 | ||
| 正規性検定 | Shapiro-Wilk検定 | 各変数の正規性を確認 | ||
| 多重共線性チェック | 相関行列の確認 | r | > 0.8 の変数ペアを検出 | |
| 混同行列 | 予測 vs 実測のヒートマップ | 分類精度の視覚的評価 | ||
| 散布図 | 群ごとの楕円プロット | 群分離の視覚的確認(説明変数2つの場合) | ||
| 感度・特異度 | 二群分類の場合に算出 | 診断精度の評価 |
データの適合性の自動チェック
本アプリでは、データの判別分析への適合性を自動的にチェックします:
| チェック項目 | 条件 | 影響 | ||
|---|---|---|---|---|
| 群の数 | 2群未満 | 分析不可 | ||
| 各群のサンプルサイズ | 群のサイズ < (説明変数の数 + 1) | 警告: パラメータ推定が不安定 | ||
| 最小群サイズ | 5件未満の群がある | 警告: 統計的検出力が低下 | ||
| 群のバランス | 最大群/最小群 > 5倍 | 警告: 深刻な不均衡 | ||
| 説明変数の数 | 2個未満 | 警告: 情報不足 | ||
| 多重共線性 | r | > 0.8 の変数ペア | 警告: 判別関数が不安定 |
データ要件と推奨事項
変数の要件
- 目的変数: カテゴリカル変数 1つ(2値以上のグループ)
- 説明変数: 連続変数のみ(カテゴリカル変数は使用不可)
サンプルサイズの目安
| 分析の種類 | 最低限 | 推奨 |
|---|---|---|
| LDA | 各群に説明変数数+1件以上 | 各群に20件以上 |
| QDA | 各群に説明変数数×2件以上 | 各群に50件以上 |
前提条件
- 正規性: 各群の説明変数が多変量正規分布に従うこと
- 等分散性: LDAでは各群の共分散行列が等しいこと(QDAでは不要)
- 独立性: 各観測値が独立であること
- 多重共線性の回避: 説明変数間に強い相関がないこと
結果の解釈
判別精度の評価
| 正答率 | 評価 |
|---|---|
| ≥ 90% | 優秀な判別精度 |
| 80 - 89% | 良好な判別精度 |
| 70 - 79% | 許容可能 |
| < 70% | 要改善 |
交差検証
- LOO交差検証: 1件ずつ除外して判別し、全データでの判別精度を評価
- 交差検証の正答率は、通常の正答率よりも低くなります。大きく低下する場合、過学習の可能性があります
感度・特異度(二群分類の場合)
- 感度 (Sensitivity): 真の陽性をどれだけ正しく検出できるか
- 特異度 (Specificity): 真の陰性をどれだけ正しく除外できるか
注意事項
- 判別分析 vs ロジスティック回帰: 判別分析は正規分布と等分散性を仮定しますが、ロジスティック回帰にはこれらの仮定がありません。多くの実践的な場面ではロジスティック回帰の方が頑健です
- QDAの特異行列: サンプルサイズが小さい場合、QDAで共分散行列が特異になり計算できないことがあります
- 因果推論: 判別分析は分類・予測のための手法であり、変数間の因果関係を示すものではありません
- 変数選択: 重要でない変数の混入は判別精度を低下させることがあります
他の多変量解析手法
複数の説明変数によるデータ分析 (多変量解析) ページでは、本手法を含む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 }}