アソシエーション分析【多変量解析】
アソシエーション分析
アソシエーション分析は、マーケティングの情報システムに蓄積されている販売や取引のデータから、興味ある規則、あるいは商品の組み合わせのパターンを検出するデータマイニングの方法で、2つの代表的な方法(相関ルール、頻出アイテム)があります。
POS(Point of Sales: 販売時点情報管理)データが獲得しやすくった昨今、重要な課題の1つは蓄積されたデータの中から有益な情報を見つけ出すことです。
POSデータをイメージしたデータをマーケット・バスケット・トランザクション(market basket transaction)と呼びます。各行をそれぞれ1つのトランザクション、あるいはバスケットと呼びます。
アソシエーション分析(associations analysis)は、百貨店や店舗で集めているトランザクションデータを活用するために、バスケットの中の商品間の関係について分析を行う方法です。
アソシエーション分析は、トランザクション(transaction、取引)データから、頻出するアイテムの組み合わせの規則を漏れなく抽出し、その中から興味深い結果を探し出すことを主な目的とします。
1990年代初めに、英国の有力百貨店マークス&スペンサーの店舗で集めたデータの活用に関して相談を受けたことをきっかけとして、アソシエーション分析のアルゴリズムApriori (アプリオリ)がIBM研究所で開発されたそうです。
Aprioriアルゴリズムは、巨大データベースから相関ルールを抽出することを実現し、データマインニングの実用化に向けて大きく一歩前進しました。
その後、このアルゴリズムを改良した多くのアルゴリズムが登場しました。アソシエーション分析のアルゴリズムには、相関ルールを抽出するものと頻出アイテムセットを抽出するものがあります。
相関ルールとは
買い物をする際には、商品の何らかの組み合わせに関連性と規則性を持つケースが少なくありません。
トランザクションデータベースに頻出するアイテム間の何らかの組み合わせの規則を、アソシエーションルール(associations rules)と呼びます。
アソシエーションルールは、連関ルール、関連ルール、相関ルールなどと訳されていますが、より広く使われているのは相関ルールですので、相関ルールと呼ぶことにします。
相関ルールは、通常X⇒yの形式で表します。
ルールの「⇒」の左辺を条件部(antecedent: left-hand-sideまたはLHS)、右辺を結論部(consequent: right-hand-side またはRHS)と呼びます。
最も広く知られている相関ルールを抽出するアルゴリズムはAprioriです。
相関ルールの評価指標
データベースの中から相関ルールを抽出する際、何らかの評価指標が必要です。多く用いられている指標としては、支持度(support)、確信度(confidence)、リフト(lift)があります。
データベースは、トランザクションの集合であり、各々のトランザクションは、アイテム集合の部分集合により構成されています。
つまり、任意のトランザクションは、アイテムの集合を持ち、かつ、その部分集合は空集合ではない.データベースから抽出されるアイテムの相関ルールX⇒yは、Xよ⊆任意の数、かつin y = 0です。
アイテム集合Xを含むトランザクションの数をXの支持度数と呼びます。
Rのパッケージarulesには、 Aprioriアルゴリズムに基づいた相関ルールを抽出する関数があります。
パッケージarulesはCRANミラーサイトからダウンロードできます。
パッケージarulesで扱うデータの形式は、基本的には質的データのdata、 frame、 tidLists、 dgCMatrix、 itemMatrix、 transaction、 matrix形式を直接・間接に扱います。
関数read.transactionsを用いて直接transaction形式に読み込むこともできます。
もちろん、データをmatrix形式に読み込み、 transaction、 itemMatrix形式に変換して用いることも可能です。
データを扱う際には、まずデータの概観を把握することが重要です。
パッケージarulesには、トランザクションデータのアイテムの頻度の棒グラフを作成する関数itemFrequencyがあります。
引数typeで、絶対度数、相対度数を指定することができます。
デフォルトは相対度数type=”relative”になっています。絶対度数のグラフの作成はできますが、アイテム数が多い場合は、引数supporを用いて度数が低いアイテムを削除することができます。