Apa itu Support, Confidence dan Lift Rasio?

Di dalam aturan asosiasi terdapat 3 macam pengukuran penting, yakni Support, Confidence dan Lift Rasio. Teori dari ketiga macam pengukuran bisa kita lihat dari berbagai jurnal atau buku yang terkait dengan aturan asosiasi. Yang perlu dipertimbangkan adalah seberapa penting nilai-nilai tersebut untuk mengambil keputusan bagi tindakan manajemen pengelolaan toko/minimarket?

Sebuah item A terbeli dari puluhan, ratusan atau bahkan ribuan item yang dijual di sebuah toko merupakan sebuah kejadian yang menarik diperhatikan. Apalagi jika item A tersebut menjadi item yang paling sering terbeli di toko tersebut. Jika terdapat dua buah item (misal A dan B) yang terbeli di toko tersebut, maka kajian akan menjadi lebih menarik, seberapa sering A atau B terbeli, apakah jika seseroang membeli A maka akan membeli B? atau sebaliknya? atau apakah bisa dipastikan jika A dibeli, maka pasti B juga dibeli?

Berikut contoh pengukuran nilai Support, Confidence dan Lift Rasio melalui library(arules) dengan nilai minsupp=0.2 dan minconf=0.2

sebelumnya kita akan mengaktifkan dulu library yang diperlukan

library(Matrix)
library(arules)
## 
## Attaching package: 'arules'
## The following objects are masked from 'package:base':
## 
##     abbreviate, write
library(grid)
library(arulesViz)
## Warning: failed to assign NativeSymbolInfo for lhs since lhs is already
## defined in the 'lazyeval' namespace
## Warning: failed to assign NativeSymbolInfo for rhs since rhs is already
## defined in the 'lazyeval' namespace
## Warning: Installed Rcpp (0.12.8) different from Rcpp used to build dplyr (0.12.11).
## Please reinstall dplyr to avoid random crashes or undefined behavior.

contoh 1,

transaksi 1 membeli A

transaksi 2 membeli A dan B

contoh1<-list(c("A"),c("A","B"))
contoh1.tran<-as(contoh1,"transactions")
contoh1.ap<-apriori(contoh1.tran,parameter=list(supp=0.2,conf=0.2))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##         0.2    0.1    1 none FALSE            TRUE       5     0.2      1
##  maxlen target   ext
##      10  rules FALSE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 0 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[2 item(s), 2 transaction(s)] done [0.00s].
## sorting and recoding items ... [2 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 done [0.00s].
## writing ... [4 rule(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
as(contoh1.ap,"data.frame")
##        rules support confidence lift
## 1  {} => {B}     0.5        0.5    1
## 2  {} => {A}     1.0        1.0    1
## 3 {B} => {A}     0.5        1.0    1
## 4 {A} => {B}     0.5        0.5    1
plot(contoh1.ap,method="graph", shading=NA)

dari gambar diatas terlihat dua aturan yang terbentuk dan lingkaran yang menuju A menggambarkan nilai support A lebih besar dari nilai support B ke A ataupun A ke B.

contoh 2,

transaksi 1 membeli A dan B

transaksi 2 membeli A dan C

contoh2<-list(c("A","B"),c("A","C"))
contoh2.tran<-as(contoh2,"transactions")
contoh2.ap<-apriori(contoh2.tran, parameter=list(supp=0.2,conf=0.2))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##         0.2    0.1    1 none FALSE            TRUE       5     0.2      1
##  maxlen target   ext
##      10  rules FALSE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 0 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[3 item(s), 2 transaction(s)] done [0.00s].
## sorting and recoding items ... [3 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 done [0.00s].
## writing ... [7 rule(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
as(contoh2.ap,"data.frame")
##        rules support confidence lift
## 1  {} => {B}     0.5        0.5    1
## 2  {} => {C}     0.5        0.5    1
## 3  {} => {A}     1.0        1.0    1
## 4 {B} => {A}     0.5        1.0    1
## 5 {A} => {B}     0.5        0.5    1
## 6 {C} => {A}     0.5        1.0    1
## 7 {A} => {C}     0.5        0.5    1
plot(contoh2.ap,method="graph", shading=NA)

dari gambar terlihat nilai support dari B ke A ataupun A ke B dan juga dari C ke A ataupun A ke C mempunyai besar lingkaran yang sama.

contoh 3,

transaksi 1 membeli A dan B

transaksi 2 membeli A dan C

transaksi 3 membeli A dan C

contoh3<-list(c("A","B"), c("A","C"), c("A","C"))
contoh3.tran<-as(contoh3,"transactions")
contoh3.ap<-apriori(contoh3.tran,parameter=list(supp=0.2,conf=0.2))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##         0.2    0.1    1 none FALSE            TRUE       5     0.2      1
##  maxlen target   ext
##      10  rules FALSE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 0 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[3 item(s), 3 transaction(s)] done [0.00s].
## sorting and recoding items ... [3 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 done [0.00s].
## writing ... [7 rule(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
as(contoh3.ap,"data.frame")
##        rules   support confidence lift
## 1  {} => {B} 0.3333333  0.3333333    1
## 2  {} => {C} 0.6666667  0.6666667    1
## 3  {} => {A} 1.0000000  1.0000000    1
## 4 {B} => {A} 0.3333333  1.0000000    1
## 5 {A} => {B} 0.3333333  0.3333333    1
## 6 {C} => {A} 0.6666667  1.0000000    1
## 7 {A} => {C} 0.6666667  0.6666667    1
plot(contoh3.ap,method="graph", shading=NA)

dari gambar ini terlihat bahwa support dari C ke A ataupun A ke C lebih besar dari support B ke A ataupun B ke A.

sedangkan nilai confidence baik dari A ke B maupun B ke A berbeda, jika seseorang membeli B maka pasti membeli A (conf=1) namun jika membeli A maka belum tentu dia pasti membeli B karena bisa juga dia membeli C sehingga nilai conf=0.333.

begitu juga dengan nilai confidence A ke C ataupun C ke A yang berbeda.

contoh 4,

transaksi 1 membeli A dan B

transaksi 2 membeli A dan C

transaksi 3 membeli C

contoh4<-list(c("A","B"), c("A","C"), c("C"))
contoh4.tran<-as(contoh4,"transactions")
contoh4.ap<-apriori(contoh4.tran,parameter=list(supp=0.2,conf=0.2))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##         0.2    0.1    1 none FALSE            TRUE       5     0.2      1
##  maxlen target   ext
##      10  rules FALSE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 0 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[3 item(s), 3 transaction(s)] done [0.00s].
## sorting and recoding items ... [3 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 done [0.00s].
## writing ... [7 rule(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
as(contoh4.ap,"data.frame")
##        rules   support confidence lift
## 1  {} => {B} 0.3333333  0.3333333 1.00
## 2  {} => {C} 0.6666667  0.6666667 1.00
## 3  {} => {A} 0.6666667  0.6666667 1.00
## 4 {B} => {A} 0.3333333  1.0000000 1.50
## 5 {A} => {B} 0.3333333  0.5000000 1.50
## 6 {C} => {A} 0.3333333  0.5000000 0.75
## 7 {A} => {C} 0.3333333  0.5000000 0.75

dari aturan diatas terlihat perbedaan nilai lift rasio, nilai lift rasio dari A ke B ataupun B ke A sama yakni 1.5 meskipun nilai confidencenya berbeda. Namun nilai lift rasio C ke A ataupun A ke C ‘hanya’ 0.75. Sehingga dari sini kita bisa mengetahui makna nilai lift rasio, jika dalam suatu transaksi terjadi A ke B ataupun B ke A maka nilai lift rasionya lebih tinggi daripada transaksi A ke C ataupun C ke A terjadi namun transaksi tunggal C terjadi.

plot(contoh4.ap,method="graph", shading=NA)

Demikian gambaran mengenai ukuran support, confidence dan lift rasio.

Semoga Bermanfaat

Salam

RB Fajriya Hakim, email hakimf@uii.ac.id

Dept of Statistics, Universitas Islam Indonesia