コレスポンデンス分析(対応分析)とは?KH Coderでの分析手順~主成分分析・数量化Ⅲ類との違いまで徹底解説

コレスポンデンス分析(対応分析)とは?KH Coderでの分析手順~主成分分析・数量化Ⅲ類との違いまで徹底解説

「コレスポンデンス分析」は聞き慣れないわかりにくい言葉でしょう。日本語で表現すると 「対応分析」 。

…一体なんのことやら、と思う方は少なくないです。

 

この手法、テキストマイニングで使われる分析のひとつです。

アンケート、ニュース、SNS投稿などから特定のテーマで書かれた記事(単語に分解)が年代、新聞社、特定のグループなどの単位でどのように異なるかを散布図のかたちでアウトプットし、示唆を得る手法です。

この記事では、コレスポンデンス分析(対応分析)の基礎知識や主成分分析・数量化Ⅲ類との違い、KH Coderでの実行手順について、わかりやすく解説していきます!

 

自力でコレスポンデンス分析をおこなえるようになりますので、最後まで読んでいただければ幸いです。

本記事の目標|KH Coderによるコレスポンデンス分析を自力で完遂できるようになる

この記事の目標は、ご覧になっている皆さんがご自身で以下を実行できるようになることです。

  • コレスポンデンス分析を行うテーマを選定する
  • KHCoderを使ってコレスポンデンス分析を実行する
  • コレスポンデンス分析の結果を読み解く(より好ましくは、示唆出しをする)

* KH Coderは、タダで使える主にWindows向けのテキストマイニングツールです。

あわせて読みたい

アウトプットイメージとして、年代別で好きな車のアンケートを集計し、コレスポンデンス分析に供した例を示します。

アンケート対応分析_サンプル

ここから分かるファクトとしては、以下が挙げられます。

  • 好きな車で一番多かったのは”TOYOTA”である ※一番大きな円
  • 好きな車で二番目に多いのは"HONDA", "MAZDA", "LUXUS"である ※二番目に大きな円
  • ”TOYOTA”はどの年代でも人気
  • ”HONDA”は30代、40代から人気 ※30代、40代の四角に近い
  • ”TESLA”は10代からのみ人気 ※10代の四角に近い
  • ”日産”は10代, 20代, 50代から人気 ※10代の四角よりも原点に近く、上下に20代と50代がある
  • ”メルセデス・ベンツ”は50代からのみ人気 ※10代の四角に近い
  • ”LEXUS”は10代と50代から人気 ※10代、50代の四角に近い

以上のような読み取りができるようになるまでの手順をわかりやすく解説します!

まずは、コレスポンデンス分析の概要からお伝えしていきますので、もし既にご存じの方は読み飛ばしていただいても問題ありません。



コレスポンデンス分析(対応分析)とは

コレスポンデンス分析という言葉はなかなか聞きなじみがないでしょう。日本語では対応分析と呼ばれることもあります。

コレスポンデンス分析(対応分析)は、簡単に言うと「単語間の関係性を、散布図と呼ばれるグラフで視覚的に表現する方法」のことです。

たとえば、ネットニュースを思い浮かべてください。多くのニュースサイトに出現する単語は原点近くに配置され、特定のニュースサイトに偏って出現する単語は原点から離れた場所に配置されます。また、互いに関連の強い単語は、原点から同じ方向に配置されます。

また、アンケート回答結果のようなデータでは、「回答者のセグメント(属性)×回答内容の特徴」を散布図として表現することが可能です。以下は「本記事の目標」で示したグラフの再掲ですが、単語(好きな車の情報。今回はメーカー名)がセグメント(年代)でどういった位置関係にあるかを知ることができます。

アンケート対応分析_サンプル

なおこの場合でも、原点に近い単語は全回答者が満遍なく挙げているもの、原点から遠い単語は特定のセグメントに特徴的なもの、と考えることができます。

解釈方法については、KH Coderのチュートリアルが参考になります。

主成分分析とコレスポンデンス分析の違いとは?

統計に精通している人は「主成分分析も同じような分析では?」と思ったかもしれません。

簡単に答えるなら、「両者は同じような分析」です。

もう少し詳しく言うと、コレスポンデンス分析(対応分析)は、「データ構造の再現は主成分分析に劣る」ものの、「特徴の表現においては良い結果を示す」ことが多いと言われています。

つまり、主成分分析は厳密な分析(情報を圧縮して再現)で、コレスポンデンス分析は情報をわかりやすい形で表現するといった形です。

全ての情報を表現したいなら主成分分析で、関係性を探りたいレベルであればコレスポンデンス分析の方が向いている形になります。

多変量解析の数量化Ⅲ類とコレスポンデンス分析の違いとは?

コレスポンデンス分析(対応分析)も、多変量解析の数量化Ⅲ類も、多くの変数をまとめることができる分析方法です。

大まかに言うと、両者の分析ロジックには違いがありません。

少し細かく言うと、分析に用いる変数が0と1で構成される場合は定量化Ⅲ類、クロス集計表のようなデータの場合はコレスポンデンス分析(対応分析)と考えていただければ十分です。

数量化Ⅲ類のデータは以下のようなイメージです。

▼よく行くカフェ|回答がない場合は0 or null、回答がある場合は1が入力される

回答者#ムーンバックスExcelシヨール怒涛パンダ珈琲下島珈琲ダリィズヨンマルク
1111111 
2111    
31 11   
41   11 
511 11  
611     
71 11   
8111  1 
9 1  1 1
10 111  1

一方で、コレスポンデンス分析のデータは以下のようなイメージです。クロス集計表としてアウトプットされるようなデータだと考えてください。

▼好きな車のメーカー

回答者回答者年代Q1.好きな車のメーカーは?
110代日産
210代TESLA
310代MAZDA
410代TOYOTA
510代LEXUS
610代日産
710代TESLA
810代MAZDA
910代TOYOTA
10 10代LEXUS

KH Coderのコレスポンデンス分析は、RのCorresp関数を使って計算している

KHCoderの対応分析機能を使う場合、内部的にRを使ってX軸、Y軸の座標値を算出しております。具体的には、入力データのマトリクスをインプットに、Rにある「corresp」関数(詳しくはコチラ)を使用しています。

記事後半では、KH Coderによるコレスポンデンス分析(対応分析)の手順を詳しく説明するのですが、その際に用いるのが以下のデータセットです。

回答者#回答者年代Q1.好きな車のメーカーは?
110代日産
210代TESLA
310代MAZDA
410代TOYOTA
510代LEXUS
610代日産
710代TESLA
810代MAZDA
910代TOYOTA
1010代LEXUS
1120代TOYOTA
1220代TOYOTA
1320代MAZDA
1420代日産
1520代ダイハツ
1620代TOYOTA
1720代JEEP
1820代MAZDA
1920代日産
2020代ダイハツ
2130代TOYOTA
2230代SUBARU
2330代TOYOTA
2430代TOYOTA
2530代HONDA
2630代TOYOTA
2730代SUBARU
2830代クライスラー
2930代TOYOTA
3030代HONDA
3140代HONDA
3240代TOYOTA
3340代JEEP
3440代ルノー
3540代クライスラー
3640代HONDA
3740代TOYOTA
3840代マセラティ
3940代ルノー
4040代クライスラー
4150代TOYOTA
4250代メルセデス・ベンツ
4350代日産
4450代フォルクスワーゲン
4550代LEXUS
4650代TOYOTA
4750代メルセデス・ベンツ
4850代日産
4950代MINI
50 50代LEXUS

このデータセットを行列で表現すると、下表のように表すことができます。

image

これを各要素の総数n で割ったデータ(P)に表現しなおします

image
image

更に、カイ2乗統計量を使ってデータ(Z)に表現しなおします。

image
image

このデータを使って、X軸とY軸の座標値を求めます。細かい計算を省きますが、前述のデータは細かい計算を省くと以下のように出力されます。

好きな車X軸Y軸
ルノー0.9629629629629630.510174851906096
日産0.1384792035106390.514170549495984
クライスラー0.8545593999779260.492527503766902
ダイハツ0.2166446112075890.949414161699453
メルセデス・ベンツ0.1178406882807210.037037037037037
TOYOTA0.4348889629538290.522418114100221
HONDA0.8730601438955610.443057425906775
LEXUS0.04296259995380230.323646345921269
MAZDA0.103072198420520.766286106988967
JEEP0.6387632913142330.743343308066285
SUBARU0.8297634773618930.389488801170963
TESLA0.07619439861196480.583158052278481

この座標軸でプロットし、各データの出現頻度をバブルの大きさで表現すると、KHCoderの対応分析が完成します。

…とこれだけでは何のことか全くわからないと思います。ここからは、KH Coderでの実行手順を画像を用いて解説していきます!

コレスポンデンス分析(対応分析)の前段階としての形態素解析

前述の例では、好きな車のメーカーを答えてもらう単語の回答をベースにしておりましたが、KHCoderの対応分析では、文章による解析も可能です。

KH Coderでの形態素解析に使うツールを選ぶ

KHCoderでは、新規プロジェクトを開く際に、言語の行で形態素解析に使うツールの選択があります。

image

※ツールはデフォルトのChaSenを選択しています

今回のサンプルでは、好きな車の列を分析対象の列にしており、ここに文章が入っても分かち書きを実行してくれます。

分かち書きとは?

テキストマイニングにおける分かち書きとは、文章を単語に分解することです。

例えば、以下の文章があったとします。

 私は、最新の赤くて速いHONDAのスポーツカーが好きです。

これを分かち書きすると、以下のように分解されます。

 私 は 、 最新 の 赤く て 速い HONDA の スポーツカー が 好き です 。

文章を解析する場合においても、特段の工夫は不要で、このように単語を品詞に分解した結果に対して、対応分析が実行されます。

▼形態素解析・分かち書きについては以下の記事をあわせてご覧いただくとイメージしやすいでしょう。

あわせて読みたい

コレスポンデンス分析(対応分析)に向いているテーマを知っておこう

これまでの説明通り、この分析では、アンケート結果やニュース等を使って、各単語(メーカー名、速い・遅い/赤い・黒いなどの形容、タイプ:スポーツカー)と各セグメント(年代、新聞社、商品)の位置関係を把握することができます。

そのため、向いているテーマは、既出のアンケート、ニュースの分析に加え、SNS・ブログの投稿、論文の内容、Wiki、課題管理表、日報、メール内容など、幅広い領域になります。

KH Coderによる対応分析の手順

順を追ってKHCoderによる分析手順を紹介します。

Step1:KH Coderのセットアップ

KHCoderのwebサイトより、「ダウンロードと使い方」にあるダウンロードのリンクをクリックしてください。

image

その後、フリー版のリンクからEXEファイルをダウンロードください。(600MB以上のファイルなので、ダウンロードに多少時間かかります)

image

ダウンロードしたファイルをダブルクリックして実行ください。以下のように解凍のウィンドウが立ち上がるため、Unzipを実行ください

image

これで「C:\khcoder3」というフォルダにファイルが展開されます。

Step2:KH Coderでの文書読み込み

KH Coderは「C:\khcoder3\kh_coder.exe」をダブルクリックすると起動します。

image

まずは上部メニューで[プロジェクト]-[新規]を選択します。

「新規プロジェクト」のウィンドウが立ち上がります。

image

※参照ボタンを押下して、分析するファイル(アンケート_サンプル.CSV)をセットすると、初期表示されるウィンドウに戻ります。CSVをセットする例にしておりますが、Excelファイルを参照することも可能です。

image

次に、上部メニューで[前処理]-[前処理の実行]を選びます。そうすると以下のウィンドウが立ち上がるので、そのままOKを選択します。

image

処理が終わると以下のような処理時間が記載されたウィンドウが表示されます。

image

OKを押すと、以下のように文書の単純集計結果が表示された初期ウィンドウが表示されます。

image

Step3:コレスポンデンス分析(対応分析)を実行する

前処理が終わりましたので対応分析を表示します。

上部メニューで[ツール]-[抽出語]-[対応分析]を選びます。そうすると以下のウィンドウが立ち上がります。

image

基本的には左側はいじらないことが多いのですが、グラフに描画する単語の出現頻度の閾値を変更したい場合は、最小出現数を変更してください。

右側の部分もほとんどデフォルトで問題ないかと思います。もし、セグメント(10代~50代)を別の内容に変更したい場合(年代ではなく、性別や住所などに変更するなど)は、抽出語×外部変数のところに表示されているカラム名を変更ください。

※セグメントを変更する場合、インプットデータのカラムに存在している必要があります。

また、デフォルトの設定ではバブルで出現数のボリュームが表現されないので、アンケートのように出現頻度をあわせて確認したい場合には、バブルプロットにチェックを入れるようにしてください。(バブルの大きさは比較的小さめに出るので120%程度にセットすることをお勧めします。)

こうして描画を行うと以下のように出力されます。

image

コレスポンデンス分析(対応分析)のアウトプットの見方

上記結果からわかることは以下のとおりです。

  • 好きな車で一番多かったのは”TOYOTA”である ※一番大きな円
  • 好きな車で二番目に多いのは"HONDA", "MAZDA", "LUXUS"である ※二番目に大きな円
  • ”TOYOTA”はどの年代でも人気
  • ”HONDA”は30代、40代から人気 ※30代、40代の四角に近い
  • ”TESLA”は10代からのみ人気 ※10代の四角に近い
  • ”日産”は10代, 20代, 50代から人気 ※10代の四角よりも原点に近く、上下に20代と50代がある
  • ”メルセデス・ベンツ”は50代からのみ人気 ※10代の四角に近い
  • ”LEXUS”は10代と50代から人気 ※10代、50代の四角に近い


まとめ

今回、KH Coderというフリーソフトで、好きな自動車のアンケート結果をコレスポンデンス分析(対応分析)で分析する方法をご紹介いたしました。

文章を単語に分解し、それがどのセグメントと関連しているのか視覚的に理解できるようになったかと思います。

様々なニュースに対して、各誌での取り扱い方法の違いを分析してみることや、、TweetやFacebookの投稿を基にしたトレンドのセグメント分析、社内ドキュメントのレビュー記録などを使った指摘者別の傾向を分析してみても面白いと思います。

以前は、精度が悪かった日本語テキストマイニングは現在かなり進歩し、十分実用化できるレベルになっております。ぜひ皆さまお試しください。

  • この記事を書いた人

みなも

データ分析に強くなるためのポイントを解説します。Excelを用いた統計分析や、テキストマイニングツール、BIツールの情報を中心にお届けします。

-テキストマイニング, 統計
-,