アソシエーション分析とは?基本〜エクセル活用方法をわかりやすく解説!

公開日:2023-12-25 更新日:2023-12-25 by SEデザイン編集部

目次

アソシエーション分析とは

アソシエーション分析を活用すれば、Webマーケティングの精度向上が期待できます。顧客データから購買パターンを抽出することで、緻密にマーケティング戦略を立てられるためです。この記事では、アソシエーション分析の基礎知識のほか、Pythonやエクセル、R言語を活用する方法を解説します。

アソシエーション分析とは

アソシエーション分析とは、顧客の購買行動を解明し、販売促進に活かす分析手法です 。POSレジデータやECサイトの購買データなどから、マシーンラーニングモデルを用いてパターンや関連性を見つけ出します。

また、アソシエーション分析では「IF(もし〜なら)」「THEN(そのときは〜になる)」という関係性、すなわち「アソシエーションルール」を生成するのも重要です。その際、支持度や信頼度といった指標を用います。ここでは、アソシエーション分析の目的やアソシエーションルール、バスケット分析との違いについて解説します。

アソシエーション分析の目的

アソシエーション分析の目的は、データマイニング※によって大量のデータの中から強い関連性を見つけ出してパターンを解析し、マーケティングに活かすことです。

具体的には以下のような場面で活かせます。

  • 購買行動の予測
  • アップセル・クロスセルの効果アップ
  • 店舗内のレイアウト・商品陳列の最適化
  • 仕入れ商品の選定・数量の調整

このような場面でアソシエーション分析を活用することで、結果的に売上の最大化に寄与します。

※データマイニング:統計学やパターン認識、人工知能などを活用してビッグデータを解析し、有用な知見を探し出す技術のこと。顧客の購買行動における、さまざまな関連性を抽出する際によく用いられる。

アソシエーションルールとは何か

アソシエーションルールは、特定の事象の間に認められる関連性や同時性を示す規則です。基本的には「Aが発生するなら、同時にBが発生する」「Aの後にBが起こる可能性が高い」と仮定し以下のように条件部と帰結部で構成されます。

  • 条件部(前提部)=もし~なら
  • 帰結部(結論部)=~になる(可能性が高い)

ただし、アソシエーションルールが見つかっても、2つの事象間の因果関係を証明するわけではありません。関連性の指摘にとどまることに注意してください。
バスケット分析とアソシエーション分析の違い
バスケット分析(マーケットバスケット分析)は、特に小売業における顧客の購買行動(買い物かごの中)に注目する分析方法です。実際にはPOSデータやECサイトの取引データを分析することを指します。

両者の手法はよく似ており、バスケット分析は広義のアソシエーション分析に含まれるといえます。本稿のアソシエーション分析に関する説明の一部は、バスケット分析にも共通する内容です。

アソシエーション分析で使われる指標

アソシエーション分析では、アソシエーションルールの指標に「支持度」と「信頼度」を用います。また、「リフト値」も同時性や関連性を調べるのに有効な値です。ここでは、これらの3つの指標について解説します。

支持度(Support)

支持度とは、2つの商品が同時に購入される割合のことです。

支持度

2つの商品をA、Bとするとき、支持度は以下の式で求められます。

支持度=AとBを同時購入した顧客数÷全体顧客数

支持度の数値が高くなるほど、商品Aと商品Bを同時に購入される確率が高くなることを意味します。

信頼度(Confidence)

信頼度とは、ある商品の購入者のうち、別の特定商品を同時に購入した人の割合です。

信頼度

ある商品をA、別の商品をBとすると、信頼度は以下の式で表されます。

信頼度=AとBを同時に購入した人数÷Aを購入した全体の人数

信頼度が高いほど、商品間の関連性が高いとされています。

リフト値(Lift)

リフト値は、特定の2商品を同時購入する傾向を示す指標です。

リフト値

2つの商品をA、Bとするとき、Aの信頼度を求めてから次の式でリフト値を求めます。

リフト値=Aの信頼度÷(Bを購入した顧客数÷全体顧客数)

リフト値には、一般に以下の傾向があります。

  • リフト値が1以上 → 商品間の関連性が高い
  • リフト値が1未満 → 商品間の関連性が低い

マーケティング施策においては、商品ペアリングを検討する際などにリフト値を参照するのが有効です。

Pythonで実践できるアソシエーション分析

code coding programingプログラム言語の中でも比較的習得しやすいPython(パイソン)を用いて、アソシエーション分析を実践できます。ここでは、Pythonによるアソシエーション分析の手順や、Pythonコードの記述例を紹介します。

▼Pythonでアソシエーション分析をする手順

  1. Windows版またはMacOS版のPythonをダウンロード・インストールして、環境構築をします。MacにはPythonがプリインストールされていますが、バージョンが古い可能性があります。不具合などを避けるために最新バージョンをインストールするのがおすすめです。
  2. Pythonには多くの外部ライブラリがあり、それらを管理するには「pip」というパッケージマネージャーを使用します。アソシエーション分析でよく使われるpandas、 mlxtendなどのライブラリを、pipを通じてインストールしてください。
  3. 新規フォルダにアソシエーション分析用のPythonファイル(拡張子.py)を作成し、テキストエディタでコードを記述します。
  4. Pythonを実行します。

アソシエーション分析に用いられるPythonコードの例

まず、必要なライブラリをインポートします。以下のように記述してください。

import pandas as pd
from mlxtend.frequent_patterns import apriori, association_rules

または、

import mlxtend
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
import pandas as pd

次に、トランザクションデータをpandas DataFrameに読み込み、apriori関数を用いて最小支持度を満たす頻出アイテムセットを生成します。

# データの読み込みと前処理
df = pd.read_csv('dataset.csv')

# Boolean値を扱う場合の前処理が必要であればここで行う
# 例: df = df.applymap(lambda x: True if x == 'some_value' else False)

# 頻出アイテムセットの抽出
frequent_itemsets = apriori(df, min_support=0.05, use_colnames=True)

# アソシエーションルールの生成
rules = association_rules(frequent_itemsets, metric=""confidence"", min_threshold=0.1)

※トランザクションデータ = 日々の業務で発生する一連の処理に伴うデータ、あるいは取引情報などのデータのこと
※Boolean値 = True および False で表された値

dataset.csvに前処理をしたデータセットを指定し、実行します。

エクセル(Excel)でのアソシエーション分析

Pythonでのアソシエーション分析は、プログラミングの知識がない人にとっては少々ハードルが高いです。より簡単な方法としては、エクセルでのアソシエーション分析が挙げられます。エクセルは一般的なビジネスアプリケーションであるため、初めてアソシエーション分析に取り組む人におすすめです。

▼エクセルでアソシエーション分析をする手順

  1. トランザクションデータをエクセルシートに整理します。
  2. 必要であればデータの前処理を行います。ここでいう前処理とは、バイナリ形式(データの内容を1・0またはTrue・Falseで表現)など分析に適した形式に変更する作業のことです。
  3. COUNTIF関数などを使用して、該当項目の件数をカウントします。
  4. 支持度、信頼度、リフト値などの指標を計算し、アソシエーションルールを分析します。「分析ツールパック」などのデータ分析アドオンを使用すると便利です。

必要なツールとアドオンの紹介

エクセルの基本的な操作や数式を理解していればアソシエーション分析は可能ですが、拡張機能(ツールやアドオン)を使うと分析作業が簡便になります。「オプション(Windows)」または「ツール(Mac)」から「アドイン」を開き、「分析ツール」にチェックを入れれば利用可能です。

有名なアドオンとして「XLMiner Analysis ToolPak」や「XLSTAT」などがあります。

XLMiner Analysis ToolPak(Microsoft|AppSource)
XLSTAT(Lumivero)

R言語でも可能なアソシエーション分析

R言語はデータサイエンスや統計解析に強いオープンソースのプログラミング言語です。視覚化やデータクレンジングがしやすく、統計分野向けのパッケージが豊富に用意されています。ここでは、R言語でアソシエーション分析をする手順と、分析に役立つパッケージを紹介します。


▼R言語でアソシエーション分析をする手順

  1. 事前に「RStudio」などのR言語環境を用意しておきます。
  2. トランザクションデータをread.csvやread.tableでRに読み込みます。read.transactions()関数を使えば、素性ベクトルへの変換が不要です。
  3. arulesパッケージのapriori関数を使用し、頻出アイテムセットとアソシエーションルールを生成します。supportやconfidenceなどのパラメータを設定することで精度を調整可能です。
  4. 生成されたルールをinspect関数で評価し、支持度、信頼度、リフト値を確認します。

アソシエーション分析に役立つRパッケージ

「arulesパッケージ」はアソシエーション分析の主要なRパッケージで、頻出アイテムセットの探索とルール抽出に必要な関数を提供します。さらに「arulesVizパッケージ」を用いることでアソシエーションルールの可視化もできます。これらのパッケージはCRAN(Comprehensive R Archive Network)でダウンロード可能です。CRANを訪れることで豊富なドキュメントとコミュニティサポートが利用できます。

また、日本にも下記2つのCRANのミラーサイトが存在します。
統計数理研究所
山形大学

Webマーケティングにおけるアソシエーション分析の活用例

アソシエーション分析の活用は、小売店などの実店舗だけの話ではありません。オンライン上のマーケティング戦略においても有効な手法です。ここでは、アソシエーション分析の主要な目的であるアップセル戦略・クロスセル戦略について説明し、Webデータのアソシエーション分析の活用事例も紹介します。

アップセル戦略・クロスセル戦略の強化

アップセル戦略・クロスセル戦略の強化にも、アソシエーション分析が有効です。商品間の相関関係を明らかにすることで、顧客が興味を持つ可能性が高い商品を推薦しやすくなります。

イベント時の購買行動の分析やバンドル販売の促進にも活かせるため、クロスセル戦略においては、カート内のアイテム数の増加や顧客満足度の向上が図れるでしょう。

アソシエーション分析をアップセル戦略に応用する場合は、顧客データをパーソナライズして、より高価格帯の商品や付加価値の高いサービスを提案する手法が有効です。顧客単価や顧客生涯価値(LTV)が高まり、さらに売上を拡大することができます。

クロスセル戦略とアップセル戦略について詳しく知りたい方は、以下の記事も合わせてお読みください。
アップセル・クロスセルとは?違いや手法、注意点を解説

Webデータのアソシエーション分析を活用する事例

実際のWebマーケティングでは、アソシエーション分析がどのように応用されているのでしょうか。

ECサイトでは「レコメンド機能」に活用されています。レコメンドとは「この商品を買った人はこんな商品も買っています」といった関連商品をおすすめするメッセージのことです。この機能は、アソシエーション分析をリアルタイムに実行して提供しています。

Webサイト運用に応用する場合には、サイト訪問者の閲覧したページの関連性や、検索ワードの組み合わせ、流入経路などからアソシエーションルールを見つけ出すこともできます。顧客情報も詳細に取得可能であれば、年齢や性別、住所(位置情報)などとの関連性も分析可能です。

アソシエーション分析でマーケティングを成功させるには?

analytics pcアソシエーション分析によって、マーケティングに有用なデータの関連性を見出すことができます。しかし、間違ったやり方では良い結果が得られないケースもあるでしょう。ここでは、アソシエーション分析をマーケティングで有効活用するために重要なポイントを解説します。

分析の方向性に注意しながら広い視野で推測・仮説立てをする

アソシエーション分析は適切な方向性でルールを生成しなければなりません。商品を推薦する際には、商品の相関関係を正確に理解し、方向性を誤らないようにすることが重要です。この方向性とは、データの順序と言い換えてもよいでしょう。

例えば、「スマホの購入者に本体カバーなどのアクセサリをレコメンドするのは売上アップにつながりやすいが、アクセサリ目的の人にスマホ本体をおすすめするのは有効ではない」といったケースがこれに当てはまります。売上やリフト値など他の指標も考慮しつつ、広い視野を持って推測と仮説立てを行うことが重要です。

データクリーニングで分析精度を高める

データクリーニング(データクレンジング)は、分析精度を高めるために不可欠なプロセスです。データセット内の欠損値の処理、異常値の修正、重複データの除去、古いデータの更新などを行い、データの品質を向上させて、より実態を反映した分析を目指します。

ノイズが多い低品質なデータをそのまま分析に用いると、実際の状況とは異なる結果を導くリスクが高まります。結果的に的外れな戦略立案につながり、重大な損失をもたらすかもしれません。綿密なマーケティング施策の計画と実施には、分析対象のデータの正確性と信頼性を確保することが重要です。

アソシエーション分析でWebマーケティングを加速させよう!

アソシエーション分析をWebマーケティングに活用すれば、効果的な戦略を立てることができます。データから関連性の強い要素を特定し、顧客の行動パターンや嗜好を把握することは、マーケティング戦略を立案する上で非常に有益です。

特に商品の推薦やキャンペーンの設計においては、顧客のニーズを満たす施策が実現しやすくなるでしょう。アソシエーション分析を活用し、Webマーケティングの促進に役立ててください。

SEデザインでは、さまざまなコンテンツマーケティングの支援を行っており、出版業で培ってきた編集力・企画力が強みです。貴社に最適な施策やプランをご提案させていただきますので、ぜひお気軽にお問い合わせください。

関連記事

コンテンツマーケティングで、
ビジネスの効果を最大化しませんか?

もっと詳しく知りたい方

ご質問・ご相談したい方