混合正規分布モデル (GMM)
解説
混合正規分布モデルとは
混合正規分布モデル (Gaussian Mixture Model; GMM) は、複数の正規分布の線形結合でデータの分布を表現する教師なし学習手法です。データに潜在的に存在する複数のグループやクラスタを自動的に発見し、各データポイントがどのグループに属するかを確率的に推定します。
主な用途:
- 顧客セグメンテーション・マーケティング分析
- 遺伝子発現パターンの分類・バイオインフォマティクス
- 画像処理における領域分割・パターン認識
- 品質管理データの異常検知・工程管理
- 心理測定データのグループ分類
本アプリでサポートする機能
機能 | 詳細 | 特徴 |
---|---|---|
成分数の自動選択 | BIC・AIC基準による最適化 | 客観的なモデル選択 |
ソフトクラスタリング | 各成分への所属確率を算出 | 曖昧な境界の表現が可能 |
1変数・多変数対応 | 単変量から多変量データまで | 柔軟なデータ構造に対応 |
可視化機能 | 密度推定曲線・分類結果・事後確率 | 直感的な結果理解 |
真の分類との比較 | 既知のラベルとの精度評価 | モデル性能の定量的評価 |
成分数の決定方法
自動選択手法の比較
手法 | 特徴 | 適用場面 |
---|---|---|
BIC基準 (推奨) | 保守的、過学習を防ぎやすい | 一般的な分析、安定した結果が必要 |
AIC基準 | より複雑なモデルを選びやすい | 詳細な構造の把握が必要 |
手動指定 | 事前知識に基づく設定 | 理論的根拠がある場合 |
成分数の推奨範囲
データサイズ | 推奨最大成分数 | 理由 |
---|---|---|
< 100件 | 2-3 | サンプル不足によるパラメータ推定の不安定化 |
100-500件 | 4-6 | 適度な複雑さでバランスの取れた推定 |
> 500件 | 7-10 | 十分なデータによる複雑な構造の検出 |
データ要件と推奨事項
サンプルサイズの目安
分析の種類 | 最低限 | 推奨 | 理想 |
---|---|---|---|
1変数GMM | 50件 | 100件 | 変数数×成分数×10倍 |
多変数GMM | 100件 | 200件 | 変数数×成分数×15倍 |
真の分類あり | 各グループ20件以上 | 各グループ50件以上 | 各グループ100件以上 |
変数の要件
- 変数タイプ: 連続変数を推奨
- 分布: 正規分布に近いことが望ましい
- 欠損値: 完全なデータが必要 (欠損値のある行は自動除外)
- スケール: 異なる単位の変数は事前標準化を推奨
- 多重共線性: 高い相関を持つ変数は結果を歪める可能性
変数選択の指針
- 1変数分析: 分布が多峰性を示す変数
- 多変数分析: 3-6変数程度を推奨
- 理論的根拠: グループ分けに意味のある変数を選択
- 外れ値: 結果に大きく影響するため事前確認を推奨
可視化機能
変数数 | グラフ | 内容 | 用途 |
---|---|---|---|
1変数 | 密度推定図 | ヒストグラム+各成分の密度曲線 | 分布の全体像把握 |
分類結果 | データポイントの成分別色分け | クラスタ構造の確認 | |
事後確率図 | 各成分への所属確率の散布図 | 分類の確実性評価 | |
多変数 | 分類散布図 | 主要2変数での成分別色分け | 高次元構造の2次元投影 |
不確実性図 | 分類の曖昧さの可視化 | 境界領域の特定 | |
密度等高線 | 2変数の場合の確率密度分布 | 成分の形状と重なりの把握 |
結果の解釈と評価
適合度指標
指標 | 意味 | 解釈 |
---|---|---|
対数尤度 | モデルの当てはまりの良さ | 高いほど良い |
BIC | 複雑さを考慮した適合度 | 低いほど良い |
ICL | 分類の明確さを考慮 | 低いほど良い |
真の分類がある場合の評価
指標 | 範囲 | 解釈 |
---|---|---|
調整ランド指数 (ARI) | -1.0~1.0 | 1に近いほど完全一致 |
ARI ≥ 0.9 | - | 優秀な分類性能 |
ARI 0.7-0.9 | - | 良好な分類性能 |
ARI 0.5-0.7 | - | 中程度の分類性能 |
ARI < 0.5 | - | 要改善 |
混合係数の解釈
- 値の範囲: 0から1の間、合計は1
- 意味: 全体に占める各成分の割合
- 均等: 各成分がほぼ同じ重み
- 偏重: 特定の成分が支配的
統計学的注意事項
推奨されるサンプルサイズ
- 一般原則: 成分数×変数数×10件以上
- 1変数の場合: 成分数6以下を推奨
- 多変数の場合: 成分数と変数数のバランスを考慮
{{title}}
{{title}}
{{ item.full }}
{{title}}
{{group}}
{{title || 'カラム選択'}}
{{title || 'カラム選択'}}
{{ title }} カテゴリー変数を選択してください。複数選択すると組み合わされます
...(選択肢が多すぎます)
それぞれに設定する値を入力してください。異なる分類に同じ値を設定することもできます。順位の数値を入れれば、順序カテゴリカル変数として扱えるようになります。
分類内容 | 値 | |
{{ item.tag }} |
データの取り扱い
- データインポート
- データの読み込みは、ブラウザ内で完結し、外部へのデータ送信は発生しません。
- データ保持
- 読み込んだデータはブラウザ内に保持されます。
- ブラウザのセッションが終了または全てのタブが閉じられると、保持していたデータは自動的に破棄されます。
- データの安全性
- ブラウザがクラッシュした場合でも、10分経過すれば次回の起動時にデータは安全に消去されます。
- 共用のPCでの使用も考慮し、データの外部漏洩のリスクを最小化しています。
クラウド R を利用する時のデータ送信
- 最小限のデータ送信
- 外部のRサーバーへ送信されるデータは、数値計算に必要な最小限のセットに制限されています。
- 送信データは解析に必要なサブセットのみに限られます。
- ユーザーコントロール下のデータ送信
- 送信前に、どのデータが外部サーバーへ送信されるのか内容を確認することが可能です。
- データの送信はユーザーの操作により行われ、自動的な送信は行いません。
- クラウド R 出力結果の保持
- クラウド R からの出力結果は、将来の自動翻訳や自動解説の機能実現のため、サーバーがデータベースに保持します。
- その際に、送信者の情報や、計算元となるデータなど、プライバシーに関わる情報は保持しません。
- 通信経路も全て暗号化していますので、たとえプライバシーに関わる情報が含まれていたとしても、通常は漏洩する恐れはありません。
AI による解説を利用する時のデータ送信
- 最小限のデータ送信
- 外部のAIサーバーへ送信されるデータは、クラウド R の出力結果と、用いた統計手法の徐放です。
- ただし、クラウド R の出力結果に連続した数値データが含まれる場合は、AI にデータ形式を認識させる目的で、連続データの最初の行のみを送信します。
- クラウド R 出力結果の保持
- AI による解説内容は、将来の品質向上などのため、サーバーがデータベースに保持します。
- その際に、送信者の情報や、計算元となるデータなど、プライバシーに関わる情報は保持しません。
新しい列 (カラム) 名:
ここで設定した値に完全一致するデータを欠損値として扱います。
新しい列 (カラム) 名:
Reactive stat において、統計データの変数は、通常の数値や文字列として扱われます。 したがって、日付や時間の概念は直接的にはサポートされていません。
統計計算を行う際には、日付や時間の差分を数値として事前に用意しておく必要があります。
計算結果プレビュー:
新しい列 (カラム) 名:
チェックされた行が削除対象となります
削除対象の行
データ入力
{{ errorMessage || dataStatus + 'です'}}
設定とオプション
AI による R コードの解説
R の出力結果
R出力図形
AI による R 出力結果の解説
変換設定:
(
変換元の単位:
変換先の単位:
)
変換結果プレビュー:
新しい列 (カラム) 名:
計算式の入力:
数式:
- データ: カラム名 (列名) をそのまま記述するか、"列名" のようにダブルクォートで挟んで指定
- 算術演算子: +, -, *, /, ()
- 基本関数: abs(), sqrt(), pow(), exp(), log(), log10()
- 三角関数: sin(), cos(), tan(), asin(), acos(), atan()
- 丸め関数: round(), floor(), ceil()
体重 / pow(身長, 2)
, "体重" / ("身長" * "身長")
利用可能なカラム:
{{ column }}
変換結果プレビュー:
{{ errorMessage }}
新しい列 (カラム) 名:
区切り文字の選択:
欠損値の処理:
プレビュー:
{{ preview }}
新しい列 (カラム) 名:
確認
変換結果プレビュー:
新しい列 (カラム) 名:
{{title}}
データがありません
{{title}}
...(選択肢が多すぎます)
{{filteringText}}
{{ title || '対象データ' }}
({{ filteredRowCount }}件 / 元データ{{ originalRowCount }}件)
除外レコードあり
データ
設定
分析
クラウド R 分析