# クラスタ分析の手順
###### tags: `multivariate-causal-analysis-2023`
```mermaid
graph TD
ST{{クラスタ分析開始}} --> Condition1{変数型の確認}
Condition1 -- "すべて連続尺度" --> Condition2{N数}
Condition2 -- "数十" --> Operation1[階層クラスタリング]
Condition2 -- "百以上" --> Operation2([非階層クラスタリング])
Operation1 --> Distance1[最小距離]
Operation1 --> Distance2[最大距離]
Operation1 --> Distance3[重心距離]
Operation1 --> Distance4[Ward法]
Operation2 --> Algorithm1([k-means法])
Operation2 --> Algorithm2([正規混合分布])
Condition1 -- "名義尺度か順序尺度" --> Algorithm3([潜在クラス分析])
Error1{パラメータ多過ぎ}
Criterion0{目}
Criterion1{CIC}
Criterion2{AIC}
Criterion3{BIC}
Criterion2LCA{AIC}
Criterion3LCA{BIC}
Distance1 --> Criterion0
Distance2 --> Criterion0
Distance3 --> Criterion0
Distance4 --> Criterion0
Algorithm1 --> Criterion1
Algorithm2 --> Criterion2
Algorithm2 --> Criterion3
Algorithm3 --> Criterion2LCA
Algorithm3 --> Criterion3LCA
Algorithm3 --> Error1
Error1 -- エラー --> Conversion1[水準数を減らす]
Error1 -- エラー --> Conversion2[変数を減らす]
Conversion1 --> Algorithm3
Conversion2 --> Algorithm3
Error1 -- 問題なし --> Criterion2LCA
Error1 -- 問題なし --> Criterion3LCA
Criterion0 -- ちょうどいい --> Summary1HC[各クラスタの平均を推定]
Summary1HC --> ED
Criterion1 -- 最小 --> Summary1KM[各クラスタの平均を推定]
Summary1KM --> Summary2KM[各クラスタの標準偏差を推定]
Summary2KM --> Summary3KM[各サンプルをクラスタに分類]
Summary3KM --> ED
Criterion2 -- 最小 --> Summary1LCA[各クラスのプロファイルを推定]
Summary1LCA --> Summary2LCA[各サンプルの所属確率を推定]
Summary2LCA --> Summary3LCA[各サンプルをクラスに分類]
Summary3LCA --> ED
Criterion3 -- 最小 --> Summary1LCA
Criterion2LCA -- 最小 --> Summary1LCA
Criterion3LCA -- 最小 --> Summary1LCA
Criterion0 -- まだ足りない --> Adjustment1[閾値を下げる]
Adjustment1 --> Operation1
Criterion1 -- 減少中 --> Adjustment2[クラス数を1増やす] --> Operation2
Criterion2 -- 減少中 --> Adjustment2
Criterion3 -- 減少中 --> Adjustment2
Criterion2LCA -- 減少中 --> Algorithm3
Criterion3LCA -- 減少中 --> Algorithm3
ED(クラスタ分析完了)
StratifiedAnalysis{{クラスタ・クラスごとの分析}}
ED --> StratifiedAnalysis
```
クラスタ分析は4種類ある。
1. 階層クラスタリング
2. 非階層クラスタリング(k-meansアルゴリズム)
3. 非階層クラスタリング(正規混合分布, 潜在プロファイル分析とも)
4. 非階層クラスタリング(潜在クラス分析)
外れ値を気にするのは、最初であったり、クラスタ分析しながらであったり、最後であったりする。
* 階層クラスタリングは、閾値を上下させて、クラスタ数を見極める。
* 非階層クラスタリングは、クラスタ数・クラス数を1つずつ増やし、情報量基準が最小になるところを見極める。最小でなく、エルボー法(減少幅が小さくなったところで止める)を用いることもある。