見出し画像

[PSPP]クラスター分析

一定の手続きによってデータを分類する方法、つまりカテゴリに分ける方法はいくつかあります。その中で代表的なのが、クラスター分析です。

クラスター分析には、階層クラスター分析と非階層クラスター分析の2つがあります。

階層クラスター分析ではデンドログラム(樹形図)を用います。

デンドログラムを見れば、クラスターが結合されて最終的に全体が1つのクラスターに集約されるまでの過程を見ることができます。そのため、早く結合されるほど、近い仲間だということが視覚的に判断できます。

そしてクラスターの分割数も視覚的に判断できます。①で区切れば、クラスター数は4つ、②で区切ればクラスター数は3つになります。

このように階層クラスター分析は非常に視覚的なアウトプットが得られるので、直感的に判断ができます。しかし、分類対象が多くなると計算量も増大するため実行不可能になったり、不安定な結果になったりという欠点もあります。

その問題を解決するのが非階層クラスター分析です。

非階層クラスター分析は、同じクラスターの中はなるべく似通っており、クラスター間ではなるべく違いが際立つように分類を行います。

階層クラスター分析と違って、項目数が膨大になっても結果が安定しています。

そのため、いわゆるビッグデータを扱うマーケティングリサーチなどでは良く用いられます。

しかし、非階層クラスター分析では、あらかじめクラスター数を決めておかなければいけないという問題があります。また階層クラスター分析のデンドログラムのような視覚的に分かりやすい分析結果の出力はなく、所属するクラスターについての情報だけしか得られません。

PSPPでは、非階層クラスター分析の内、k平均法クラスター分析を行うことができます。


k平均法クラスター分析

k平均法クラスター分析は、最初にクラスター数を決めと、すべてのサンプルが所属するクラスターの平均に近くなるように、クラスタリングを行う手法です。

大雑把に説明すると、次のような流れになります。

①各データにランダムにクラスターを割り当てる。
②クラスターの重心を計算する。
③各データのクラスターを、重心が一番近いクラスターに変更する。

そして変化がなくなるまで②③を繰り返します。

というわけで、長所としては、

・アルゴリズムが単純である。
・クラスター数を決めるだけ。

と、とにかく単純であるということが挙げられるわけですが、その分短所も明確です。

・最初のクラスターがランダムに決められるため、結果が変わる。
・クラスター数を決めるには、他の分析手法に頼らないといけない。


クラスター分析

実際に、PSPPでk平均法クラスター分析を行ってみましょう。
2つのテストを受けた10名をその得点によって分類して見ます。

まず、プロットを取ってみました。

まとまりは、2つか3つというところでしょうか。ひとまず、3つと考えて、分析を行ってみましょう。

・[分析]→[k平均法クラスタ分析]を選択。

・「test1」と「test2」を右側のボックスへ移動(変数をクリックして選択状態で三角マークのボタンをクリック。)
・[クラスタ数]に「3」と入力。
・[貼り付け]をクリック。

・シンタックスエディタで、2行目最後の「.」を削除。
・3行目に「/PRINT=INITIAL CLUSTER.」を追加。

・[実行]→[すべて]を選択。


出力の見方

「初期クラスタ起点」と「最終クラスタ起点」は、先ほど説明した手順でいうと最初の②と最後の②の値です。

「起点」とありますが重心つまり平均と考えて差し支えありません。

「各クラスタ内のケース数」はクラスターにどれだけのデータが割り当てられたかです。

最後の「クラスタのメンバーシップ」は、どのケースがどのクラスターに割り当てられたかを示しています。プロットで予想した分け方とは少し異なっていますが、3つに分類することができました。

ただ、PSPPでは、どうもこれをデータセットに直接戻す方法がないようです。一旦エキスポートしてから、加工してマージするしかないようです。

LibreOfficeを使って、クラスタ別に色分けして散布図に描いてみると、次のようになります。

当初の予想との違いがよく分かると思います。

なお、クラスタ数を「2」にして分析してみると、以下のようになります。

もちろん、2変数なので散布図に描けているのであり、変数が多くなった場合は、散布図でイメージをつかむということができなくなります。


なお、先ほどクラスター数の決定は別の分析によらなくてはいけないと書きましたが、これを機械的に求める方法としてGap統計量を用いるやり方があります。

R K-means法のクラスタ数を機械的に決定する方法」などを参考にしてください。

この記事が気に入ったらサポートをしてみませんか?