樋口先生こんばんは。 前回一度質問させて頂いたナカイマと申します。
今回は対応分析の結果におけるアイテム間の距離について質問があって投稿させて頂きました。 対応分析の結果として得られたプロット上のカテゴリ間の距離を数値化する方法を教えて頂けないでしょうか?例を挙げますと、写真のプロット上にある”上_先生と私”を基準として、”中_両親と私”、”下_先生と遺書”のどちらが距離として”上_先生と私”に近いのか数値化することを目標としています。つまり、キーワードの頻度を行に、各コーパス(例でいうと本の上中下)を列として作成したクロス表から得られた対応分析の結果を元に、(1) ”上_先生と私”から”中_両親と私”までの距離と、(2) ”上_先生と私”から”下_先生と遺書”までの距離、これら2つを数値化することが目的になります。
現在調べた限りで私が知っていることを下記に説明させて頂きますので、もし全く見当違いの方法を取っていたり、正しい計算過程をご存知でしたらご教示いただけないでしょうか?
ものすごく極端にシンプルにしたクロス表を例として作らせて頂きます。表の中の数字はそのコーパスにおける単語の絶対頻度です。
上 中 下 先生 9, 2, 0 = 11 父 0, 8, 1 = 9 お嬢さん 1, 0, 9 = 10
1: 得られたクロス表(ここではキーワード ×コーパス)からプロファイルという(通常行に合わせた)相対的な頻度に変換する。各行または列を一つの塊とみてこの相対頻度のセットをベクトルとしてとらえる。
上 中 下 先生 0.9, 0.2, 0 父 0, 0.8, 0.1 お嬢さん 0.1, 0, 0.9
2: 各列(ここでは各コーパス)のキーワードを合計して、全てのコーパスの総語数で割った値を求める。参考にした文献ではAverage profileと呼ばれていました。下のようになるかと思います。
先生 = 11/30 = 0.36.. 父 = 9/30 = 0.3 お嬢さん = 10/30 = 0.33..
3: その後、”上_先生と私”から”中_両親と私”までのカイ二乗距離を求める。”上_先生と私”のプロファイルは[0.9, 0, 0.1]で、”中_両親と私”のプロファイルは[0.2, 0.8, 0]と考えています。
ですので、 √(0.9 - 0.2)^2 / 0.36.. + √(0 - 0.8)^2 / 0.3 + √(0.1 - 0)^2 / 0.33.. ≒ 3.52
という流れで計算しています。 この流れで”上_先生と私”から”下_先生と遺書”までの距離求めて、両者を比べて中と下のどちらが”上_先生と私”に(キーワードの使用に関して)似ていると結論付けることは可能でしょうか?
またこのような計算過程を通して得られた距離はプロット上の距離とも完全に対応していると考えてよろしいでしょうか? 次元削減の手法ということもあり、二次元のプロットにした時点で元の情報が失われることを前提としているかと思いますのでどのように解釈すべきか、私にとっては計算過程がすごく難解なこともあって全く検討がつきません。もしよろしければご教示お願いします。
http://www.khcoder.info/cgi-bin/bbs_khn/khcf.cgi?list=&no=1912&mode=allread&page=0 なども参考にして見ましたが、自分の理解力だけではどうにも難しいと感じております。もしお時間よろしけばご教示よろしくお願い致します。
|