双対尺度法による分割表(Contingency Table)の分析
双対尺度法の説明を<岡本安晴「心理学データ分析と測定」>で行っている。
双対尺度法(Dual Scaling)(Nishisato, 1994;西里、1982)を用いると、分割表/クロス表に含まれる情報の可視化を行うことができる。例えば、表1(西里(1982)の表4.1)のデータを双対尺度法で分析すると、図1のような結果を得る。
表1.分割表の例(西里(1982)、表4.1) |
||||
|
|
コーヒー・紅茶に対す好み |
||
|
|
コーヒー |
紅茶 |
時による |
|
常時 |
38 |
7 |
18 |
喫煙度 |
ときどき |
29 |
15 |
31 |
|
皆無 |
11 |
43 |
8 |
図1
図中の正方形あるいは円内の2文字は、表1のカテゴリーの最初の2文字を表している。正方形は列カテゴリーを、円は行カテゴリーを表す。図1における布置において、「喫煙度が常時とコーヒーを好むこと」、「喫煙がときどきとコーヒー・紅茶の好みが時によること」、「喫煙が皆無と紅茶を好むこと」の関係が強いことが明らかに示されている。また、「喫煙が皆無と紅茶を好む」ことが、他の2つの場合とかなり異なり目立つ組み合わせであることも読み取れる。このように、双対尺度法を表1のような分割表に適用すると、分割表に含まれる情報が視覚的に明示され、カテゴリー間の関係がわかりやすくなる。
分割表の双対尺度法による分析を行うプログラムとしてDualScaleXTable.exeを用意した。プログラムDualScaleXTable.exeは.NETFramework3.5対応であり、クリックしてダウンロード実行することができる。ソースコードファイルなどを圧縮ファイルDualScaleXTable.zipとしてまとめたものも用意した。クリックしてダウンロードした圧縮ファイルDualScaleXTable.zipをマウスの右ボタンでクリックして表示されるメニュから「展開」あるいは「解凍」を選んで解凍することができる。解凍したファイルは、Visual C++2008などで開くことができる。
分割表の双対尺度法の考え方の説明と、そのプログラムの使用法についての解説を以下に行う。
表2.分割表 |
||||||||
|
|
|
列カテゴリー |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
行カテゴリー |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
データが表2に示す分割表(連関表; クロス集計表(Cross Tabulation))の形式で与えられているものとする。行カテゴリーが、列カテゴリーがである頻度がである。行カテゴリーに数値を、列カテゴリーに数値を割り当てると、数値の対が個あることになる。これらの対から相関係数rが計算できる。双対尺度法とは、このrが最大(正確には極大)になるように、割り当てる数値とを求めるものである。
とおく。このとき、数値およびの平均が0という条件は
と表すことができる。
平均が0であるので、分散と共分散は次式で与えられる。
ここで、
である。
条件(A)のもとで、分散が1
という条件は、
と表される。
以上の条件の下で、相関係数は次式で与えられる。
相関係数の最大化(極大化)を、平均が0(条件(A))、分散が1(条件(B))の制約条件の下で行うが、まず、の最大化、すなわちの最大化を条件(B)のみの下で行い、その解が条件(A)を満たしていることを確認することにより、条件(A)と条件(B)のもとでの極大化を行う。そのために、次のラグランジュ乗数法(岡本(2009)、6.8節)による式を考える。
偏微分した値を0とおくことにより次式を得る(ベクトルによる微分表記については、岡本(2009)、7.1節参照)。
すなわち、
式(1)と(2)より
条件(B)より
となる。
とおけば、式(1)と(2)は次のように変形できる。
すなわち、
とおくと
を得る。はGの特異値分解によって得られる。ただし、特異ベクトルの長さは
となるようにとる。このとき、
が成り立つので、特異値がカテゴリーの数量化とに対する相関係数となる。
いま、次の関係に注意する。すなわち、式(1)と(2)において、
とおいた式が成り立つ。したがって、1以外の特異値に対応する特異ベクトルuおよびvは、それぞれおよびと直交する。よって、次式が成り立つ。
すなわち、条件(A)が満たされている。
以上より、求めるとの値は、Gの1以外の特異値に対応する特異ベクトルuとvに対して
により与えられる。このときの相関係数は特異値である。
特異値分解における各特異ベクトルの説明率は、特異値の2乗に比例する(岡本(2009)、7.3節参照)。数量化の値およびの分散が特異値の2乗に比例するように、得られたとの値に特異値を重みとして掛けたものを用いて、以下のように視覚化を行う。
1以外の特異値を大きさの順にと並べる。h番目の特異値に対応する特異ベクトルから算出された数量化の値をおよびとおき、分散がに比例するようにh番目の解における座標値をおよびとする。ここで、、である。h番目の解とk番目の解によって平面上に行カテゴリーを表すときは、を座標値とする点で表す。列カテゴリーの方は、点で表す。上の図1の布置は、そのようにして描かれたものである。なお、特異値に対して得られた解がとであるとき、との組み合わせも解である。解における正負の方向は絶対的なものではないことに注意。
解を解釈するときは、特異値の大きいものから、すなわち解−1から見ていけばよい。に対応する解―1が、分割表(ただし、特異値1に対応する解の成分を除いたものについて考える。これは分割表の値を中心化したもの(独立な成分を除いたもの)について考えることである。当該の分割表における特有の関係は、特異値1に対応する解の成分(独立な成分)を除いたものに残される)におけるもっとも強い傾向(主要な情報)を表す。分割表からこの解―1で表される情報を除いたとき、残りの情報は他の解によって表わされるが、その中でもっとも強い傾向を表すものが解―2である。以下同様に、解―1から解―sまでが表す情報を分割表から除いたものにおいて、もっとも強い傾向を表すものが解―(s+1)である。
プログラムDualScaleXTable.exeの使い方
プログラムDualScaleXTable.exeは.NETFramework3.5対応である。プログラム名DualScaleXTable.exeをクリックして、ダウンロード・実行できる。プログラムのソースコードファイルなどをまとめた圧縮ファイルDualScaleXTable.zipもクリックしてダウンロードできる。ダウンロードした圧縮ファイルDualScaleXTable.zipは、マウスの右ボタンクリックで表示されるメニュから「解凍」あるいは「展開」などを選んで解凍できる。解凍したファイルは、Visual C++2008などで開くことができる。コンパイル・ビルドのためには、Professional Editionでないと必要なヘッダーファイル(マーシャリング機能「marshal_as」を用いるためのもの; マーシャリングについては岡本(2010)、11.3節参照)が揃っていないようである。
プログラムを実行すると、図2のフォームが表示される。
図2
データを新しく入力するときは「New Data」ボタンをクリックするが、その前に行カテゴリーの数を行数に、列カテゴリーの数を列数に設定する。表1のデータを入力するときは図3のように設定する。
図3
設定後「New Data」ボタンをクリックすると、図4のフォームが表示される。カテゴリー名は先頭の2文字が図1の布置の描画で用いられるので、先頭2文字で区別できるようにしておく。
図4
設定後、右上の「OK」ボタンをクリックすると、「計算」ボタンと「データ保存」ボタンがイネーブルになる。次元数は、解として採用する解の数(次元数)であるが、この値を変えても共通の解(次元)の値は変化しない。また、データの情報に比べて大きすぎる値を設定したときは、計算時に可能な最大数に調整される。
図5
「データ保存」ボタンをクリックすると、設定されたデータが保存される。保存されたデータは、図3のフォームにおいて「Old Data」ボタンをクリックすると読み込むことができる。このときは、図3のフォームおいて設定されている行数と列数は無視される。読み込み後は、「計算」ボタンと「保存」ボタンがディスイネーブルである図5のフォームが表示される。読み込まれたデータの確認後、「OK」ボタンをクリックして「計算」ボタンをイネーブルにする。
「計算」ボタンをクリックすると、計算結果の出力先ファイル名の設定を求めるダイアログフォームが表示される(図6)。
図6
ファイル名を設定して「保存」ボタンをクリックすると、計算が始まる。計算が終了すると、図7のメッセージボックスが表示される。
図7
「OK」ボタンをクリックすると、図8のフォームの「描画」ボタンがイネーブルになる。
図8
「描画」ボタンをクリックすると図9のフォームが表示される。
図9
フォームの左側に並べられている「描画」ボタン(図10参照)をクリックすると、「横軸の解」および「縦軸の解」に設定されている解を数量化の値とする布置が図11のように描かれる。
図10
図11
図11に示されている布置は、「保存」ボタンをクリックすることにより画像ファイルとして保存することができる。
横軸の解と縦軸の解を表す数値を変えて「描画」ボタンをクリックすると、再設定された解の次元で再描画が行われる。
「閉じる」ボタンのクリックでプログラムの実行終了となる。
プログラムの実行終了後、図6で指定したファイル名のファイルをエディタで開くと、次のような内容になっている。
========================================
コーヒー
紅茶
時による
常時
38
7
18
ときどき
29
15
31
皆無 11
43
8
ndim = 2
相関比の2乗(相関係数)
説明率
累積
1:
0.28499(0.53384)
91.14%
91.14%
2:
0.02771(0.16645)
8.86%
100.00%
行カテゴリーの尺度値
常時
-0.87512 -1.18691
ときどき
-0.48177 1.19773
皆無
1.47202
-0.24282
列カテゴリーの尺度値
コーヒー
-0.74529 -1.00431
紅茶
1.43933
-0.07241
時による -0.62147
1.45689
行カテゴリーの重み付き尺度値
常時
-0.46718 -0.19757
ときどき
-0.25719 0.19937
皆無
0.78583
-0.04042
列カテゴリーの重み付き尺度値
コーヒー
-0.39787 -0.16717
紅茶
0.76838
-0.01205
時による
-0.33177 0.24251
=======================================
まず、入力データが出力されている。次に、特異値1を除いた特異値の2乗値が相関比の2乗の値として、の値が( )内に相関係数の値として出力されている。ここにおける特異値などの値は、図4における次元数としてndimに設定されている値に関わりなく、1を除くすべての特異値に対する値が出力される。の値が説明率として出力されているが、この値は重み付き解の値およびとして反映されている。これらの重み付き解の値は、説明率に分散が比例するように重み付けられた値であり、この値で布置が描かれている。「累積」の項目のもとに出力されている値は、説明率の累積値である。
行カテゴリーおよび列カテゴリーに対する解およびは尺度値として、重み付き解の値およびは重み付き尺度値として出力されている。解の数は、次元数として設定された値から決まるndimの値である。
Nishisato (1994)に載っているロールシャッハ反応とムードの関係を示した分割表(Contingency/Frequency Table;表3)の分析例を示す。
表3.ロールシャッハ反応とムード(Nishisato (1994), Table 7.12 より) |
||||||
Fear |
Anger |
Depression |
Ambition |
Security |
Love |
|
Bat |
33 |
10 |
18 |
1 |
2 |
6 |
Blood |
10 |
5 |
2 |
1 |
0 |
0 |
Butterfly |
0 |
2 |
1 |
26 |
5 |
18 |
Cave |
7 |
0 |
13 |
1 |
4 |
2 |
Clouds |
2 |
9 |
30 |
4 |
1 |
6 |
Fire |
5 |
9 |
1 |
2 |
1 |
1 |
Fur |
0 |
3 |
4 |
5 |
5 |
21 |
Mask |
3 |
2 |
6 |
2 |
2 |
3 |
Moutains |
2 |
1 |
4 |
1 |
18 |
2 |
Rocks |
0 |
4 |
2 |
1 |
2 |
2 |
Smoke |
1 |
6 |
1 |
0 |
1 |
0 |
表3の分析結果において解1と解2の値で布置を描くと図12のようになる。
図12
解―1の値の大きさの順序で列カテゴリーを並べると
Fear Anger Depression Security Love Ambition
となり、行カテゴリーを並べると
Blood Bat Smoke Fire Cave Clouds Mask Mountains Fur Butterfly
となる。表3のカテゴリーをこれらの順序で並べ替えると表4のようになり、対角線に近いところに大きい値が集まることがわかる。これは、双対尺度法による解が列カテゴリーと行カテゴリーの間の相関係数を最大化(極大化)するものとして求められていることを反映している。
表4.表3の並べ替え |
||||||
Fear |
Anger |
Depression |
Security |
Love |
Ambition |
|
Blood |
10 |
5 |
2 |
0 |
0 |
1 |
Bat |
33 |
10 |
18 |
2 |
6 |
1 |
Smoke |
1 |
6 |
1 |
1 |
0 |
0 |
Fire |
5 |
9 |
1 |
1 |
1 |
2 |
Cave |
7 |
0 |
13 |
4 |
2 |
1 |
Clouds |
2 |
9 |
30 |
1 |
6 |
4 |
Mask |
3 |
2 |
6 |
2 |
3 |
2 |
Rocks |
0 |
4 |
2 |
2 |
2 |
1 |
Mountains |
2 |
1 |
4 |
18 |
2 |
1 |
Fur |
0 |
3 |
4 |
5 |
21 |
5 |
Butterfly |
0 |
2 |
1 |
5 |
18 |
26 |
参考文献
西里静彦(1982)「質的データの数量化:双対尺度法とその応用」朝倉書店.
Nishisato, S. (1994). “Elements of Dual Scaling: An introduction to practical data analysis”. Lawrence Erlbaum Associates, Publishers.
岡本安晴(2009)「統計学を学ぶための数学入門[下]」培風館.
岡本安晴(2010)「大学生のための心理学VC++プログラミング入門」勁草書房.
岡本安晴 作