Up

数量化2

カテゴリ変数による判別分析

カテゴリ変数の共通数量化による判別分析は

 

3群からなる個体が表1のように与えられているとする。各個体は、2つのカテゴリ型変量(項目1と項目2)によりその特性が表されている。

 

表1 グループ別に与えられたアイテム(項目)・カテゴリ(選択肢)型データ(岩坪、1987

 

群  個体

項目1

項目2

選択肢1  選択肢2

選択肢1 選択肢2 選択肢3

 

A  1

   2

   3

1       0

1       0

1       0

1    0     0

1    0     0

0    1     0

 

B  1

   2

1       0

       1

0    1     0

0    1     0

 

C  1

   2

   3

0       1

0       1

0       1

0    1     0

0    0     1

0    0     1

 

 

数量化2類を用いると、各項目の選択肢に数値を対応させ、その数値から算出される得点を座標値として各個体を図1のように座標平面上に表すことができる。

図1

 

図1において、小文字は個体を表し、大文字は群の平均値を座標とする位置である。図1の布置において右上の小文字bには小文字aが1つ重なり、右下のaは2つのaが重なっている。cの方も、左上のbに1つのcが重なり、左下のc2つのcが重なったものである。

数量化2類による分析を行うプログラムQ2.exeを用意した。図1は、このプログラムにより表1のデータを分析したものである。プログラムは、プログラム名Q2.exeをクリックしてダウンロード・実行することができる。実行開始時に「***.dllがインストールされていません」というようなエラーが表示されたときは、Visual Studio Express for Window Desktop

http://www.microsoft.com/visualstudio/jpn/downloads

からダウンロード・インストールすれば、必要なファイルがインストールされるので、プログラムQ2.exeをクリックしてダウンロード・実行することができるようなる。なお、Windows 8/8.1の場合の手順については、特にウェブサイトを用意して説明している。

プログラムのソースコードファイルなどは圧縮ファイルQ2.zipとしてまとめた。圧縮ファイル名Q2.zipをクリックしてダウンロード・解凍すれば、Visual Studio 2012で開くことができる。

プログラムで使われている数量化2類の分析法はManQ2.pdfで説明している。PDFファイルManQ2.pdfをクリックしてダウンロードすれば開くことができる。

なお、数量化の計算においては行列演算(線形代数)が有用であるが、データ分析に必要な行列演算などを簡潔に説明したものとして

岡本安晴(2009)「統計学を学ぶための数学入門[下]:データ分析に活かす」培風館

を用意した。

 

プログラムを実行すると、図2のフォームが表示される。

図2

 

GO」ボタンのクリックで、図3の入力データファイル名の設定を求めるダイアログウィンドウが表示される。

図3

 

入力データファイルは、例えば表1のデータの場合は図4のように用意する。

図4

 

1番目のスラッシュ / で始まる行の次の行にカテゴリ変数の個数を書く。スラッシュ / で始まる行は、区切りとして処理され、その右側の文字列は無視されるので、文字列をコメントとして書くことができる。

2番目のスラッシュ / で始まる行の次の行にカテゴリ変数の名前を空白またはタブで区切って並べる。

3番目のスラッシュ / で始まる行の次の行に、各カテゴリ変数で用いられているカテゴリ数を書く。

4番目のスラッシュ / で始まる行の次の行に、グループの数を書く。

5番目のスラッシュ / で始まる行の次の行に、グループ名(図4では、表1のグループABCDogCatMouseというグループ名を付けている)を空白またはタブで区切って並べる。

6番目のスラッシュ / で始まる行以降にデータ値(各カテゴリ変数のカテゴリ値)を書く。カテゴリ値は、カテゴリ変数のカテゴリ数がK個のときは、各カテゴリ(選択肢)に1からKまでの整数値を対応させて表す。

最後のデータの次の行は、スラッシュ / で始まる行を置いてデータの終わりとする。データで用いられていないカテゴリ値があれば除いて考える。例えば、K個のカテゴリ値のうち h 個が用いられていないときは、それらを除いた K- h 個のカテゴリで考え、用いられたカテゴリ値に 1 から K-h の整数値を割り当てる。また、ただ1つのカテゴリ値のみが用いられている変数は除く。

 

図3のダイアログウィンドウにおいて、入力データファイル名の設定後、「開く」ボタンをクリックすると、図5のような出力用ファイル名設定のダイアログウィンドウが表示される。

図5

 

出力用ファイル名の設定後、「保存」ボタンをクリックすると計算が始まる。計算が終了すると図6の画面になる。

図6

 

図6の画面の左上は図7のようになっている。

図7

 

横軸の次元と縦軸の次元を「H-Axis」と「V-Axis」の下のテキストボックスに設定して「Re-Draw」ボタンをクリックすると、設定した次元で描画が行われる。次元として0以下の値が設定されたときは1、求められた次元数より大きい値が設定されたときは次元の最大数が設定される。「Save」ボタンのクリックで描画画面をファイルに保存することができる(*.bmpファイル)。「Close」ボタンのクリックで図6の画面が閉じられ、図8のメッセージボックスが表示される。

図8

 

図8の「OK」ボタンのクリックでプログラムは終了する。プログラムの終了後、出力ファイルを開くと以下のようになっている。

 

=============== 出力ファイル =========================

Data file...D:\yasuharu\www\LaCoocan\VCpp\QMethods\Q2\Q2\Q2\DataForQ2.txt

 

 

CatVar[0] --> Item-1     n_categories = 2

CatVar[1] --> Item-2     n_categories = 3

 

 

Number of cases = 8

Group(A)-Dog: Nmem = 3

Group(B)-Cat: Nmem = 2

Group(C)-Mouse: Nmem = 3

Group(Dog)

  0:     1    1

  1:     1    1

  2:     1    2

Group(Cat)

  0:     1    2

  1:     2    2

Group(Mouse)

  0:     2    2

  1:     2    3

  2:     2    3

 

Data...

    0:  1  1

    1:  1  1

    2:  1  2

    3:  1  2

    4:  2  2

    5:  2  2

    6:  2  3

    7:  2  3

 

Ni(g,jk) =

Group(Dog)

  0:   1  0  1  0  0

  1:   1  0  1  0  0

  2:   1  0  0  1  0

Group(Cat)

  0:   1  0  0  1  0

  1:   0  1  0  1  0

Group(Mouse)

  0:   0  1  0  1  0

  1:   0  1  0  0  1

  2:   0  1  0  0  1

 

Number of Lambdas = 2

Lambda (eta squared) ...

Lambda[0] = 0.83333

Lambda[1] = 0.33333

 

w =

   0.63246   0.00000

  -0.63246   0.00000

   0.63246  -1.00000

   0.00000   1.00000

  -0.63246  -1.00000

 

Individual score...

Group(Dog)

  0:    1.26491  -1.00000

  1:    1.26491  -1.00000

  2:    0.63246   1.00000

Group(Cat)

  0:    0.63246   1.00000

  1:   -0.63246   1.00000

Group(Mouse)

  0:   -0.63246   1.00000

  1:   -1.26491  -1.00000

  2:   -1.26491  -1.00000

 

Group mean

Group(Dog)

        1.05409  -0.33333

Group(Cat)

        0.00000   1.00000

Group(Mouse)

       -1.05409  -0.33333

=======================================

 

Number of Lambdas = の値が、0でないの個数を表す。に等しいが、詳しくはPDFファイルで説明している。

w = に続く値は、各次元に対応するの値が各列に並べられている。

Individual score… の値が、各グループに属する個体の値であり、次元ごとに列として並べられている。

Group mean は、グループごとの個体の値の平均値である。

w の値を見ると、第1次元の値(第1列目の値)は、

項目1が、0.632-0.632 となっていて

項目2が、0.6320.0-0.632 となっている。

すなわち、選択肢1から選択肢2(項目2では、さらに選択肢3)へと値が正の値から負の値に変化しているので、第1軸は、グループAからBCへと正の値からから負の値へと変化して、ABCを並べる値の付け方となっている。

第2次元は、項目1では、2つの選択肢の値はともに0であるが、項目2の選択肢の値は、-1.0、1.0-1.0 となっていて、第2選択肢と第1および第2選択肢とに分かれている。このため、第2次元は、項目2の選択肢によって、AとCのグループとBのグループを分けるものとなっている。

 

参考文献

岩坪秀一「数量化法の基礎」朝倉書店、1987

 

Up