Rは標準ではアソシエーション分析はできないので、アソシエーション分析用のライブラリ”arules”を用いる。
> install.packages("arules")
arulesライブラリを読み込む。
> library(arules)
arulesライブラリに付属している食品雑貨店の販売データ(Groceries)を利用する。
付属しているデータについては、data()コマンドで確認できる。
付属しているデータについては、data()コマンドで確認できる。
> data()
Groceriesデータを読み込む。
> data(Groceries)
Groceriesデータの属性(データ型、行数、列の名前)を確認する。
> class(Groceries)
[1] "transactions"
attr (, "package")
[1] "arules"
> nrow(Groceries)
[1] 9835
> colnames(Groceries)
[1] "transactions"
attr (, "package")
[1] "arules"
> nrow(Groceries)
[1] 9835
> colnames(Groceries)
colnames(Groceries)の結果は、品名の列になっている。購入した場合は”1”と入っている。
> inspect(Groceries)
ここから、アソシエーション分析を行う。
アソシエーション分析をおこなうためには、apriori関数を実行する。
apriori関数では、信頼度と支持度の下限値を設定し、前提部と帰結部のMAX LENGTHを、
パラメータに指定する。(例:信頼度0.5、支持度0.01、ルールの最大長4)
> res <- apriori(Groceries, parameter = list(confidence=0.5, support=0.01, maxlen=4))
confidence: 信頼度の下限値
support: 支持度の下限値
maxlen: ルールの長さ
(以下は全てmaxlen=4)
A,B,C→D
A→B,C,D
A,B→C,D
※普通は前提部が長い
抽出されたルールの情報を、SORT関数を利用して、信頼度の高い順番に表示して確認する。
> inspect(SORT(res, by="confidence"))
信頼度を降順に見て、リフトも3あれば、相関はあるといえそう。
支持度は0.01だが、たくさんのものが購入される食品店では全体の1%くらいは妥当であろう。
0 件のコメント:
コメントを投稿