データ分析・GA4

コレスポンデンス分析とは?布置図の読み方とやり方、Excel・Pythonでの実行例

コレスポンデンス分析とは?布置図の読み方とやり方、Excel・Pythonでの実行例

コレスポンデンス分析(correspondence analysis)は、クロス集計表の行の項目と列の項目を1枚の散布図(布置図)に置き、どの行とどの列が結びつきやすいかを読み取る多変量解析の手法です。「対応分析」とも呼ばれ、調査会社の現場では「コレポン」と略されます。この記事では、説明用に作成した架空の4ブランド×5イメージ語の集計表をPythonのprince 0.23.1で分析した数値を使い、やり方の手順、布置図で誤読しやすい点、Excelでの実行方法、主成分分析などとの違いを説明します。

まとめ:コレスポンデンス分析の要点

  • 入力は2つの質的変数のクロス集計表。期待度数からのズレを特異値分解(SVD)で少数の次元に分け、上位2次元を布置図にする。
  • 総イナーシャはカイ二乗統計量を総度数で割った値。各次元が総イナーシャの何%を説明するかが寄与率。
  • 行と列を重ねた対称マップでは、行同士・列同士の近さは読めるが、行の点と列の点の距離は意味を持たない。行と列の関係を読むなら非対称マップか、元の表の比率で確かめる。
  • 累積寄与率が高くても、点ごとに2次元で表せている度合い(cos²)が低い点がある。原点付近の点を「平均的」と決めつける前にcos²を見る。
  • Excelの分析ツールには対応分析の専用機能がない。エクセル統計などのアドインか、Python(prince)・R(FactoMineR、ca)を使う。

以下、仕組み、手順、布置図の読み方、ツール別の実行方法の順に説明します。

コレスポンデンス分析とは|クロス集計表を1枚の図に要約する手法

コレスポンデンス分析は、2つの質的変数のクロス集計表を入力に取り、行の各項目と列の各項目を同じ平面上の点として配置します。「ブランド×イメージ語」の表なら各ブランドと各イメージ語が、「年代×好きな飲料」の表なら各年代と各飲料が点になります。行数・列数が増えると数表のままでは全体の関係がつかみにくくなるため、表全体の関連の構造を2次元に要約して見せる点にこの手法の価値があります。入力となるクロス集計表の作り方と、カイ二乗検定・残差分析での読み方はクロス集計の表の見方とExcel・SPSS・pandasでの作り方を解説した記事で扱っています。

カイ二乗統計量と総イナーシャ、寄与率の関係

計算の中身は、各セルの実測度数と「行と列が無関係だった場合の期待度数」とのズレを標準化し、その行列を特異値分解(SVD)で次元に分けることです。表全体のズレの大きさを総イナーシャと呼び、分割表の総イナーシャはカイ二乗統計量を表の総度数で割った値になります。この記事の例の表(総度数400)ではカイ二乗統計量が117.22で、総イナーシャは0.2931でした。princeが出す総イナーシャも0.2931で一致します。

寄与率は、各次元の固有値が総イナーシャに占める割合です。例の表では第1次元が41.90%、第2次元が37.43%で、累積寄与率は79.33%でした。残りの約2割は第3次元にあり、布置図には描かれません。この2割に何が入っているかは、後の「布置図の読み方」の章で確かめます。

対応分析・コレポン・数量化III類との関係

「対応分析」はcorrespondence analysisの訳語で、コレスポンデンス分析と同じ手法を指します。日本で独自に発展した林知己夫の数量化III類とも近い関係にあり、福山平成大学の福井正康による比較資料では、同じデータで両者のカテゴリウェイトと個体ウェイトを並べ、「0/1 データを用いる限り両者は同じである」と結論づけています。同資料の整理では、コレスポンデンス分析は度数の入った分割表全般を扱える点で数量化III類の拡張にあたります。

コレスポンデンス分析のやり方|5つの手順

計算はソフトやライブラリに任せるのが普通ですが、各手順で何をしているかを知っておくと、出力のどこを見るべきかが分かります。

  1. クロス集計表を作る:分析したい2つの質的変数で度数の表を作る。アンケートの個票データなら、ブランドごとに各イメージ語を選んだ人数を数える。
  2. 度数の少ない行・列を整理する:合計が極端に少ない行や列は、数件の回答で位置が大きく動く。近いカテゴリにまとめるか、分析から外す。
  3. 期待度数からのズレを標準化する:行合計×列合計÷総度数で期待度数を出し、実測とのズレをカイ二乗距離の尺度で標準化する。
  4. 特異値分解で次元に分け、寄与率を確認する:第1・第2次元の累積寄与率と、点ごとのcos²を見て、2次元の図で語れる範囲を決める。
  5. 布置図を描いて解釈し、元の表で裏を取る:図で見えた関係を、期待度数に対する比率で数値として確かめてから報告する。

手順5を省くと、次の章で示すような誤読がそのまま報告書に載ります。図から読んだ関係は、元の表の数字で必ず裏を取ってください。

布置図の読み方|行点と列点の距離比較の限界

布置図の解釈で避けたい誤りは、ブランドの点とイメージ語の点が近いことだけで「結びつきが強い」と読むことです。行の点と列の点を同じ図に重ねた対称マップ(多くのソフトの既定の図)について、GreenacreとHastieは行同士・列同士の距離はカイ二乗距離の近似として解釈できるが、行と列の間の距離は意味を持たない(meaningless)と書いています。Qualtricsのヘルプも、対称マップでは行と列の間の関係は解釈できないと明記しています。行の点と列の点は、もともと別々の空間にある点を1枚に重ねたものだからです。

4ブランド×5イメージ語の例で見る誤読

分析には、架空の4ブランドと5イメージ語からなる総度数400のクロス集計表を使います。入力値は後掲のPythonコードに示しています。これをprince 0.23.1で分析し、対称マップ上の距離と、元の表の「期待度数に対する比率」を並べました。比率が1.0を超えるほど、そのブランドとイメージ語は期待より多く結びついています。

ブランドD との組 対称マップ上の距離 期待度数に対する比率
親しみ 0.307 1.75
手軽 0.393 0.53
信頼 0.414 1.11
高級 0.583 0.96
先進的 0.674 0.64

図の上では、ブランドDは「親しみ」の次に「手軽」に近く見えます。しかし実際のDと「手軽」の組は期待度数の0.53倍しかなく、5つのイメージ語の中で最も結びつきが弱い組です。逆に、図では「手軽」より遠い「信頼」は1.11倍と期待を上回っています。距離の順位で読むと、Dの特徴を正反対に報告することになります。

累積寄与率と点ごとのcos²による表現の質の確認

ブランドDが誤読を生んだもう1つの理由は、Dの情報が布置図の2次元にほとんど載っていないことです。各点が2次元でどれだけ表せているかを示すcos²(princeではrow_cosine_similarities)を見ると、ブランドAは0.921、Bは0.896、Cは0.981なのに対し、Dは0.043しかありませんでした。累積寄与率79.33%は表全体の話で、個々の点の表現の質までは保証しません。

Dは図の原点付近に置かれているため、「どのイメージとも特徴的に結びつかない平均的なブランド」と読まれがちです。ところが元の表では「親しみ」が1.75倍と、全組の中でも強い結びつきを持っています。この結びつきは描かれない第3次元(総イナーシャの約2割)に入っていました。原点付近の点を平均的と判断するのは、cos²が十分に高い点に限ってください。

非対称マップの内積による行と列の関連の解釈

ブランドとイメージ語の結びつきを図で読みたい場合は、行を主座標、列を標準座標で描く非対称マップ(行主体の正規化)を使います。この図では、行の点と列の点の内積が「期待度数に対する比率−1」を近似します。原点から見た2点のなす角が90度より小さければ内積は正で、関連の強さは角度に加えて両点の原点からの距離でも決まります。例の表で計算すると、ブランドAと「高級」の内積は2次元で0.983、元の表の比率−1は1.024で、ほぼ一致しました。一方、cos²の低いブランドDでは、「親しみ」との内積が0.052と実際の0.75に届かず、「手軽」との内積は0.079と正なのに実際は−0.47で、符号まで逆転します。2次元の内積はあくまで近似で、非対称マップでもcos²の低い点は図から読まないのが原則です。

Rのcaパッケージでは、plotのmap引数で対称マップ(symmetric)と行主体の非対称マップ(rowprincipal)などを切り替えられ、マニュアルに各指定の性質が書かれています。報告書に図を載せるときは、どちらの図かを凡例に明記してください。

主成分分析・MDS・多重コレスポンデンス分析との違い

コレスポンデンス分析は、高次元の情報を少数の軸に要約して図にする点で主成分分析や多次元尺度構成法(MDS)と似ています。選び分けは、手元のデータの形で決まります。

手法 入力データ 図にするもの 距離の基準
コレスポンデンス分析 2変数のクロス集計表(度数) 行の項目と列の項目 カイ二乗距離
多重コレスポンデンス分析 2変数以上の質的データ 全変数のカテゴリ カイ二乗距離
主成分分析 数値の変数群 個体と変数 ユークリッド距離
多次元尺度構成法 対象間の距離・非類似度 対象 与えた距離
数量化III類 0/1の反応パターン 個体とカテゴリ カイ二乗距離

売上や満足度スコアのような数値の変数群なら主成分分析を使います。仕組みと手順は主成分分析の定義・仕組み・分析手順を解説した記事で、類似度データから位置関係を描くMDSは多次元尺度構成法(MDS)と主成分分析の違いを解説した記事で扱っています。性別×年代×購入ブランドのように3つ以上の質的変数を同時に扱うときは、2つ以上の質的変数の関連を調べる手法である多重コレスポンデンス分析(MCA)を選びます。2変数に絞れるなら通常のコレスポンデンス分析の方が図を読みやすく、変数を足すほど図は混み合います。

Excelでコレスポンデンス分析を行う方法

Excelの分析ツールには、コレスポンデンス分析を実行する専用機能がありません。Microsoftが公開している分析ツール(Analysis ToolPak)の一覧には、分散分析・相関・回帰分析・t検定などはありますが、コレスポンデンス分析(対応分析)は含まれていません。Excelで完結させたい場合の選択肢は次の2つです。

  • エクセル統計(社会情報サービス):Excelに追加するアドイン。機能説明のページによると、[エクセル統計]タブの[集計表の作成と分析]または[多変量解析]から[コレスポンデンス分析]を選んで実行する。
  • XLSTAT(Lumivero):Excel用の統計アドイン。公式ヘルプにコレスポンデンス分析(CA)と多重コレスポンデンス分析(MCA)の項目がある。

どちらも有料製品で、提供範囲は版や契約プランで変わるため、導入前に各社の公式ページで確認してください。アドインを入れられない環境では、クロス集計表までをExcelのピボットテーブルで作り、CSVに保存して次の章のPythonに渡す流れが手軽です。3重・4重のクロス集計を組む場合の数え方は多重クロス集計の読み方とExcel・スプレッドシート・pandasでの作り方を解説した記事を参照してください。

Pythonでのコレスポンデンス分析(prince 0.23.1)

Pythonではprinceライブラリが使えます。2026年10月30日時点のPyPIの最新版は2026年10月28日公開の0.23.1で、Python 3.11以上が必要です。pip install prince==0.23.1 pandas==3.1.0で、この記事と同じ版を指定できます。次のコードは、前の章の4ブランド×5イメージ語の表を分析し、寄与率、座標、cos²、期待度数に対する比率を出力します。

import pandas as pd
import prince

# 行=ブランド、列=イメージ語のクロス集計表(回答数、総度数400)
X = pd.DataFrame(
    [[42, 18, 10,  8, 22],
     [12, 40, 15, 25,  8],
     [ 9, 14, 38, 12, 27],
     [20, 11, 12, 35, 22]],
    index=["ブランドA", "ブランドB", "ブランドC", "ブランドD"],
    columns=["高級", "手軽", "先進的", "親しみ", "信頼"],
)

ca = prince.CA(n_components=2, random_state=42).fit(X)

print(ca.eigenvalues_summary)            # 各次元の固有値と寄与率
print(round(ca.total_inertia_, 4))       # 総イナーシャ
print(ca.row_coordinates(X).round(3))    # 行(ブランド)の座標
print(ca.column_coordinates(X).round(3)) # 列(イメージ語)の座標
print(ca.row_cosine_similarities(X).round(3))  # 各点の2次元での表現の質(cos2)

# 期待度数に対する比率(1.0より大きいほど結びつきが強い)
n = X.values.sum()
expected = X.sum(axis=1).values[:, None] * X.sum(axis=0).values[None, :] / n
print((X / expected).round(2))

# 布置図はAltairのグラフで返る。ブラウザで開けるHTMLに保存する
ca.plot(X).save("ca_map.html")

prince 0.23.1(pandas 3.1.0、Python 3.12)で実行した出力の主要部分は次のとおりです。

          eigenvalue % of variance % of variance (cumulative)
component
0              0.123        41.90%                     41.90%
1              0.110        37.43%                     79.33%
0.2931
             0      1
ブランドA  0.522 -0.193
ブランドB -0.139  0.504
ブランドC -0.442 -0.378
ブランドD  0.059  0.067
             0      1
ブランドA  0.810  0.111
ブランドB  0.063  0.833
ブランドC  0.567  0.414
ブランドD  0.019  0.024

掲載した出力抜粋の最後の表がcos²で、第1・第2次元の値を足したものが2次元での表現の質です。ブランドDは0.019+0.024=0.043で、前の章で見たとおり図から読んではいけない点だと分かります。row_coordinatesとcolumn_coordinatesはどちらも主座標を返すため、両方を重ねたplotの図は対称マップです。行と列の関係はこの図の距離ではなく、最後に出力する比率で確かめてください。

実装上の注意が2つあります。1つは、plotがmatplotlibではなくAltairのグラフを返すことです。Jupyterならそのまま表示されますが、スクリプトから実行するときは上のようにsaveでHTMLに書き出します。もう1つは、princeのAPIが版によって変わってきたことです。古い解説記事のコードが動かないときは、まず版を確認してください。Rで行う場合は、FactoMineR(2026年10月時点のCRAN版2.18)のCA関数か、caパッケージ(同0.72)のca関数を使います。

コレスポンデンス分析の活用事例|ブランドイメージとポジショニング

使い方の一例は、ブランドイメージ調査の結果をポジショニングマップにすることです。「各ブランドに当てはまるイメージを選んでください」という複数回答の設問を集計すると、ブランド×イメージ語のクロス集計表ができます。自社ブランドが狙ったイメージの側にあるか、競合とどのイメージで差がついているかを1枚で議論できます。調査票の設計と設問例はブランドイメージ調査の設問例と手順を解説した記事に、図をポジショニングの判断につなげる手順はSTP分析のやり方を解説した記事にまとめています。

ブランド以外でも、店舗×来店客層、商品カテゴリ×購買動機、年代×好きな飲料のように、2つの質的な軸で集計できるテーマならそのまま使えます。自由回答をアフターコーディングしたカテゴリ×回答者属性の表も対象になります。毎回の調査で同じ集計と図の作成を繰り返すなら、集計表の出力と分析をアンケート管理システムの開発で自動化すると、手順2の度数チェックまで仕組みに組み込めます。

コレスポンデンス分析が向かない場面と注意点

強みは、数表では埋もれる質的データの関連を、統計に詳しくない相手にも1枚の図で共有できることです。その一方で、次の場面では使わない、または結論を図だけに頼らない判断が必要です。

  • データが数値の変数:売上や満足度スコアを区間に切ってクロス集計にすると情報が落ちる。主成分分析や回帰分析を使う。
  • 度数の少ない行・列がある:回答数が数件の行や列は位置が不安定になる。まとめるか外してから分析する。
  • 第1・第2次元の累積寄与率が低い:2次元の図が表の関係を代表していない。第3次元まで確認するか、元の表で報告する。
  • 関連の有無や因果を主張したい:布置図は関連の傾向を示す要約で、有意性の検定や因果の証明にはならない。独立した観測の度数表では期待度数などの条件を確認してカイ二乗検定を使う。同じ回答者が複数セルに入る複数回答の集計表には、そのまま通常の独立性検定を適用しない。

ここで示した例では、計算結果が正しくても読み方によって誤った結論になります。対称マップで行と列の距離を読まないこと、cos²の低い点を解釈しないこと、図の結論を元の表の比率で確かめること。この3点を守れば、布置図は調査結果を共有する道具として十分に役立ちます。多変量解析の手法全体の中での位置づけは多変量解析の手法一覧とビジネスでの使いどころを解説した記事で整理しています。

よくある質問

コレスポンデンス分析をわかりやすく言うと何ですか?

クロス集計表を散布図に変えて、どの項目とどの項目が結びつきやすいかを見る手法です。ブランドとイメージ語の関係を地図のように示すものと考えると分かりやすいでしょう。ただし、ブランドの点とイメージ語の点の近さだけで結びつきを判断することはできず、元の表の比率で確かめる必要があります。

ビジネス用語の「コレスポンデンス」とは意味が違いますか?

違います。英語のcorrespondenceには手紙やメールによる通信、またはやり取りした手紙やメールという意味があり、貿易実務では商業通信を「コレポン」と呼びます。統計のコレスポンデンス分析は、行と列の「対応」関係を分析するという意味で、通信の意味とは関係ありません。調査会社で「コレポン」と言えば多くはコレスポンデンス分析を指します。

コレスポンデンス分析はExcelでできますか?

Excelの分析ツールには対応分析の専用機能がありません。計算処理を自作せずExcel上で実行するには、エクセル統計やXLSTATなどのアドインを使う方法があります。アドインを使わない場合は、Excelでクロス集計表まで作り、Pythonのprinceや、RのFactoMineR・caで分析します。

3つ以上の変数を同時に分析できますか?

通常のコレスポンデンス分析は2変数のクロス集計表が対象です。3つ以上の質的変数を同時に扱うときは、多重コレスポンデンス分析(MCA)を使います。princeではprince.MCA、RではFactoMineRのMCA関数が対応します。

寄与率はどのくらいあれば布置図を信頼できますか?

第1・第2次元の累積寄与率を目安にしますが、決まった合格ラインはありません。この記事の例では累積寄与率が79.33%でも、ブランドDはcos²が0.043しかなく、図から読むと誤った結論になりました。累積寄与率に加えて、解釈したい点ごとのcos²を確認してください。

関連記事

お気に入りに入れた記事の一覧

一創の公式 SNS

X では毎朝の新着記事と IT ニュースの速報を、YouTube・TikTok・Instagram・LinkedIn・Facebook では記事の解説動画を配信しています。

この記事は以下の記事からリンクされています

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.10.29 テックブログ ソニー生命の不正アクセス:38.5万件の対象確認と窓口、停止中の手続き
  2. 2026.10.31 テックブログ 無印良品の情報漏洩:MUJIアプリ最大2,726万件の対象確認となりすましメール対策
  3. 2026.10.31 テックブログ 松屋の不正アクセス:237万件の対象確認と窓口、漏れたパスワードの守り方
  4. 2026.10.27 テックブログ Joshin(ジョーシン)不正アクセス:最大600万件の対象とサブスク初期パスワードの対処
  5. 2026.10.28 テックブログ リンツ不正アクセス:314万件の対象確認とパスワード強制リセット後の対処

RELATED POSTS 関連記事

目次