Association rule (연관성 분석)
setwd("D:\\YC\\Research\\Association rule analysis")
data = read.table(file="survey.csv",sep=",",header=T);
attach(data);
names(data)
## [1] "설문대상자" "ques_1.1.1.1."
## [3] "ques_1.1.1.2." "ques_1.1.1.3."
## [5] "ques_1.1.1.4." "ques_1.1.1.5."
## [7] "ques_1.1.1.6." "ques_1.1.1.7."
## [9] "ques_1.1.1.8." "ques_1.1.1.9."
## [11] "ques_1.1.1.10." "ques_1.1.1.11."
## [13] "ques_1.1.1.12." "ques_1.1.1.13."
## [15] "ques_1.1.1.14." "ques_1.1.1.15."
## [17] "ques_1.1.1.16." "ques_1.1.1.17."
## [19] "ques_1.1.1.18." "ques_1.1.1.19."
## [21] "ques_1.1.1.20." "ques_1.1.1.21."
## [23] "ques_1.1.1.22." "ques_1.1.1.23."
## [25] "ques_1.1.1.24." "ques_1.1.1.25."
## [27] "ques_1.1.1.26." "ques_1.1.1.27."
## [29] "ques_1.1.1.28." "ques_1.1.1.29."
## [31] "ques_1.1.1.30." "ques_1.1.1.31."
## [33] "ques_1.1.1.32." "ques_1.1.1.33."
## [35] "ques_1.1.1.34." "ques_1.1.1.35."
## [37] "ques_1.1.1.36." "ques_1.1.1.37."
## [39] "ques_1.1.2.1." "ques_1.1.2.2."
## [41] "ques_1.1.2.3." "ques_1.1.2.4."
## [43] "ques_1.1.2.5." "ques_1.1.2.6."
## [45] "ques_1.1.2.7." "ques_1.1.2.8."
## [47] "ques_1.1.2.9." "ques_1.1.2.10."
## [49] "ques_1.1.2.11." "ques_1.1.2.12."
## [51] "ques_1.1.2.13." "ques_1.1.2.14."
## [53] "ques_1.1.2.15." "ques_1.1.2.16."
## [55] "ques_1.1.2.17." "ques_1.1.2.18."
## [57] "ques_1.1.2.19." "ques_1.1.2.20."
## [59] "ques_1.1.2.21." "ques_1.1.2.22."
## [61] "ques_1.1.2.23." "ques_1.1.2.24."
## [63] "ques_1.1.2.25." "ques_1.1.2.26."
## [65] "ques_1.1.2.27." "ques_1.1.2.28."
## [67] "ques_1.1.2.29." "ques_1.1.2.30."
## [69] "ques_1.1.2.31." "ques_1.1.2.32."
## [71] "ques_1.1.2.33." "ques_1.1.2.34."
## [73] "ques_1.1.2.35." "ques_1.1.2.36."
## [75] "ques_1.1.2.37." "ques_1.2.1.1."
## [77] "ques_1.2.1.2." "ques_1.2.1.3."
## [79] "ques_1.2.1.4." "ques_1.2.1.5."
## [81] "ques_1.2.1.6." "ques_1.2.1.7."
## [83] "ques_1.2.1.8." "ques_1.2.1.9."
## [85] "ques_1.2.1.10." "ques_1.2.1.11."
## [87] "ques_1.2.1.12." "ques_1.2.1.13."
## [89] "ques_1.2.1.14." "ques_1.2.1.15."
## [91] "ques_1.2.1.16." "ques_1.2.1.17."
## [93] "ques_1.2.1.18." "ques_1.2.1.19."
## [95] "ques_1.2.1.20." "ques_1.2.1.21."
## [97] "ques_1.2.1.22." "ques_1.2.1.23."
## [99] "ques_1.2.1.24." "ques_1.2.1.25."
## [101] "ques_1.2.1.26." "ques_1.2.1.27."
## [103] "ques_1.2.1.28." "ques_1.2.1.29."
## [105] "ques_1.2.1.30." "ques_1.2.1.31."
## [107] "ques_1.2.1.32." "ques_1.2.1.33."
## [109] "ques_1.2.1.34." "ques_1.2.1.35."
## [111] "ques_1.2.1.36." "ques_1.2.1.37."
## [113] "ques_1.2.2.1." "ques_1.2.2.2."
## [115] "ques_1.2.2.3." "ques_1.2.2.4."
## [117] "ques_1.2.2.5." "ques_1.2.2.6."
## [119] "ques_1.2.2.7." "ques_1.2.2.8."
## [121] "ques_1.2.2.9." "ques_1.2.2.10."
## [123] "ques_1.2.2.11." "ques_1.2.2.12."
## [125] "ques_1.2.2.13." "ques_1.2.2.14."
## [127] "ques_1.2.2.15." "ques_1.2.2.16."
## [129] "ques_1.2.2.17." "ques_1.2.2.18."
## [131] "ques_1.2.2.19." "ques_1.2.2.20."
## [133] "ques_1.2.2.21." "ques_1.2.2.22."
## [135] "ques_1.2.2.23." "ques_1.2.2.24."
## [137] "ques_1.2.2.25." "ques_1.2.2.26."
## [139] "ques_1.2.2.27." "ques_1.2.2.28."
## [141] "ques_1.2.2.29." "ques_1.2.2.30."
## [143] "ques_1.2.2.31." "ques_1.2.2.32."
## [145] "ques_1.2.2.33." "ques_1.2.2.34."
## [147] "ques_1.2.2.35." "ques_1.2.2.36."
## [149] "ques_1.2.2.37." "ques_2.1"
## [151] "ques_2.1.1.서술." "ques_2.2"
## [153] "ques_2.3" "ques_2.3.1"
## [155] "ques_2.3.2" "ques_2.4"
## [157] "ques_2.4.1" "ques_2.4.2"
## [159] "ques_2.5" "ques_2.5.1"
## [161] "ques_2.5.2" "ques_2.5.기타..서술."
## [163] "ques_2.6" "ques_2.6.기타..서술."
## [165] "ques_2.7" "ques_2.7.1"
## [167] "ques_2.7.2" "ques_2.7.기타.서술."
## [169] "ques_2.8" "ques_2.8.1"
## [171] "ques_2.8.1.1" "ques_2.8.2"
## [173] "ques_2.8.2.1" "ques_2.8.2.2"
## [175] "ques_2.8.2.기타..서술." "ques_2.8.3"
## [177] "ques_2.9" "ques_2.9.기타..서술."
## [179] "ques_2.10" "ques_2.10.1"
## [181] "ques_2.10.2" "ques_2.11"
## [183] "ques_2.11.1" "ques_2.11.1.기타..서술."
## [185] "ques_2.11.2" "ques_2.11.2.기타..서술."
## [187] "ques_3.1" "ques_3.1.1"
## [189] "ques_3.1.2" "ques_3.1.기타..서술."
## [191] "ques_3.2" "ques_3.2.1"
## [193] "ques_3.2.2" "ques_3.2.3"
## [195] "ques_3.2.3.기타..서술." "ques_3.2.4"
## [197] "ques_3.2.4.기타..서술." "ques_3.2.5"
## [199] "ques_3.3" "ques_3.4"
## [201] "ques_3.4.1" "ques_3.5"
## [203] "ques_3.6" "ques_3.6.1"
## [205] "ques_3.6.2" "ques_3.7"
## [207] "ques_3.7.1" "ques_3.7.2"
## [209] "ques_3.8" "ques_3.8.1"
## [211] "ques_3.8.1.기타..서술." "ques_3.8.2"
## [213] "ques_3.8.2.기타..서술." "ques_4.1"
## [215] "ques_4.2" "ques_4.3"
## [217] "ques_4.3.1" "ques_4.4"
## [219] "ques_4.4.1" "ques_4.5"
## [221] "ques_4.5.1" "ques_4.5.1.기타..서술."
## [223] "ques_4.5.2" "ques_4.5.2.기타..서술."
## [225] "ques_4.6" "ques_4.6.1.서술."
## [227] "ques_4.6.2.서술." "ques_4.7"
## [229] "ques_4.7.1" "ques_4.7.1.1"
## [231] "ques_4.7.1.2" "ques_4.8"
## [233] "ques_4.8.1" "ques_4.9"
## [235] "ques_4.9.1" "ques_4.10"
## [237] "ques_4.10.1" "ques_4.11"
## [239] "ques_4.11.1.서술." "ques_4.11.2.서술."
## [241] "ques_4.12" "ques_4.12.1"
## [243] "ques_4.12.2" "ques_4.12.2.1"
## [245] "ques_4.12.2.2" "ques_4.13"
## [247] "ques_4.13.1" "ques_4.13.1.기타..서술."
## [249] "ques_4.13.2" "ques_4.13.2.기타..서술."
## [251] "ques_4.14" "ques_4.15"
## [253] "ques_4.15.1" "ques_4.15.1.기타..서술."
## [255] "ques_4.16" "ques_4.16.1"
## [257] "ques_4.16.1.기타..서술." "ques_4.17"
## [259] "ques_4.18" "ques_4.18.1"
## [261] "ques_4.19" "ques_4.19.1"
## [263] "ques_4.19.2" "ques_4.20"
## [265] "ques_4.20.기타..서술." "ques_5.1"
## [267] "ques_5.2" "ques_5.3"
## [269] "ques_5.4" "ques_5.5"
## [271] "ques_5.5.그외..서술." "ques_5.6"
## [273] "ques_5.7" "ques_5.7.1.서술."
## [275] "ques_5.7.2.서술."
#install.packages("arules");
library(arules)
## Loading required package: Matrix
##
## Attaching package: 'arules'
##
## The following objects are masked from 'package:base':
##
## %in%, write
trans = data.frame(as.factor(ques_4.8),as.factor(ques_4.9))
test = as(trans, "transactions")
image(test)
rules = apriori(test, parameter= list(supp=0.5, conf=0.5, target="rules"))
##
## Parameter specification:
## confidence minval smax arem aval originalSupport support minlen maxlen
## 0.5 0.1 1 none FALSE TRUE 0.5 1 10
## target ext
## rules FALSE
##
## Algorithmic control:
## filter tree heap memopt load sort verbose
## 0.1 TRUE TRUE FALSE TRUE 2 TRUE
##
## apriori - find association rules with the apriori algorithm
## version 4.21 (2004.05.09) (c) 1996-2004 Christian Borgelt
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[9 item(s), 38 transaction(s)] done [0.00s].
## sorting and recoding items ... [0 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 done [0.00s].
## writing ... [0 rule(s)] done [0.00s].
## creating S4 object ... done [0.00s].
summary(rules)
## set of 0 rules
trans = data.frame(as.factor(ques_4.14),as.factor(ques_3.4))
test = as(trans, "transactions")
image(test)
rules = apriori(test, parameter= list(conf=0.5))
##
## Parameter specification:
## confidence minval smax arem aval originalSupport support minlen maxlen
## 0.5 0.1 1 none FALSE TRUE 0.1 1 10
## target ext
## rules FALSE
##
## Algorithmic control:
## filter tree heap memopt load sort verbose
## 0.1 TRUE TRUE FALSE TRUE 2 TRUE
##
## apriori - find association rules with the apriori algorithm
## version 4.21 (2004.05.09) (c) 1996-2004 Christian Borgelt
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[7 item(s), 38 transaction(s)] done [0.00s].
## sorting and recoding items ... [5 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].
summary(rules)
## set of 4 rules
##
## rule length distribution (lhs + rhs):sizes
## 2
## 4
##
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2 2 2 2 2 2
##
## summary of quality measures:
## support confidence lift
## Min. :0.1316 Min. :0.5000 Min. :1.188
## 1st Qu.:0.1513 1st Qu.:0.5000 1st Qu.:1.393
## Median :0.1842 Median :0.5000 Median :1.462
## Mean :0.1776 Mean :0.5288 Mean :1.393
## 3rd Qu.:0.2105 3rd Qu.:0.5288 3rd Qu.:1.462
## Max. :0.2105 Max. :0.6154 Max. :1.462
##
## mining info:
## data ntransactions support confidence
## test 38 0.1 0.5
inspect(rules)
## lhs rhs support confidence lift
## 1 {as.factor.ques_4.14.=5} => {as.factor.ques_3.4.=4} 0.1315789 0.5000000 1.461538
## 2 {as.factor.ques_3.4.=3} => {as.factor.ques_4.14.=4} 0.1578947 0.5000000 1.187500
## 3 {as.factor.ques_3.4.=4} => {as.factor.ques_4.14.=4} 0.2105263 0.6153846 1.461538
## 4 {as.factor.ques_4.14.=4} => {as.factor.ques_3.4.=4} 0.2105263 0.5000000 1.461538