GRANVALLEY
データであなたの「ミチ」をてらす

GRANVALLEY

ブログBlog

無料の統計ソフト『R』 ~ バスケット分析 ~

バスケット分析

今回は R を用いてバスケット分析を行ってみます。バスケット分析の有名な話としておむつとビールの話があります。この話は「子供のいる家庭では、母親はかさばる紙おむつを買うように父親に頼み、店に来た父親はついでに缶ビールを購入していた。そこでこの 2 つを並べて陳列したところ、売り上げが上昇した」ということが知られています。このように「ある商品を買ったひとはこんな商品も買っています。」といったある商品と一緒に売れる商品を分析し見つける手法をバスケット分析といいます。このバスケット分析をRで実装してみます。

R での実装

今回は以下のような一人目のお客はビールと一緒にハムを買い、二人目のお客はハムと一緒にビールを買ったという 11 レコードから成るデータでバスケット分析を行ってみたいと思います。

r_00301

まず、今回は arules というパッケージを使用します。
(パッケージについては前回の記事をご参照ください。)

r_00302

次に今回使用する csv ファイル「test.csv」を引数 x に取り込みます。

r_00303

取り込むデータの場所は特に指定がなければ「ファイル」⇒「ディレクトリの変更」に定義されている場所になります。

現在 x は data.frame 形式のデータになっているため、

r_00304

引数 y として transactions 形式に変換します。

r_00305

次に arules の中にある apriori 関数で相関ルールを抽出します。
※apriori 関数ではパラメータとして支持度、確信度、頻出アイテム最大数を指定することができます。
※デフォルト値では(支持度 0.1、確信度 0.8、頻出アイテム最大数 5)となっています。

r_00306

そして apriori(y) の結果を inspect 関数で表示します。

r_00307

r_00308

支持度 (support)

条件 lhs と結論 rhs を含むデータが、全データ中に占める割合

信頼度 (confidence)

条件 lhs と結論 rhs を含むデータが、条件 X を含むデータ中に占める割合

Lift

信頼度 / 支持度

※LIFT 値が 1 を超えると、通常よりも関連が強い
ただし、条件 X と結論 Y を含むデータ自体の規模が小さければ、あまり判断の材料にはならない。

以上の結果から今回のデータでは商品 1 で「ハム」か「おむつ」を買った人は商品 2 で「ビール」を一緒に買うことが多いことが分かりました。

しかしながら【商品 1「ハム」⇒商品 2「ビール」】と【商品 1「ビール」⇒商品 2「ハム」】は同等に扱うべきですが、このままでは扱うことができていません。

その場合 transactions 形式から matrix 形式に変換します。

以下のように read.transacyions ()関数で引数 a を csv ファイルをカンマ区切り、フォーマットを指定して、一行目を飛ばすと指定し、引数bを引数 a の matrix 形式とすると以下のように引数 b を取り込むことができます。

r_00309

そして apriori(b) の結果を inspect 関数で表示します。

r_00310

このことからハムとビールが一緒に買われることが多いことが分かりました。

今回、バスケット分析を R で行うにあたって、初めて行う人でも今回行うレベルのバスケット分析であれば1時間程度で行うことができるので、是非みなさんも一度お試しください。

※ Microsoft、MS、Windows、Windows Serverは、米国 Microsoft Corporationの米国およびその他の国における登録商標です。
※ Windows の正式名称は、Microsoft Windows Operating System です。
※ その他の会社名、製品名は各社の登録商標または商標です。
※ 記事の内容は記事公開時点での情報です。閲覧頂いた時点では異なる可能性がございます。