Research question: what are the key medication combinations frequently prescribed together?
data <- read.csv(file.choose())
library(tidyverse)
library(dplyr)
library(datasets)
library(tidyr)
library(arules)
dim(data)
## [1] 15002 20
# Remove blank rows
mdata <- data[!apply(data == "", 1, all), ]
dim(mdata)
## [1] 7501 20
# Add ID Column
mdata$id <- factor(seq.int(nrow(mdata)))
# Factorize
mdata <- as.data.frame(unclass(mdata), stringsAsFactors = TRUE)
# Pivot data frame
pivot <- pivot_longer(mdata, cols = 1:20, names_to = "Precription", values_to = "Medication")
head(pivot)
## # A tibble: 6 × 3
## id Precription Medication
## <fct> <chr> <fct>
## 1 1 Presc01 amlodipine
## 2 1 Presc02 albuterol aerosol
## 3 1 Presc03 allopurinol
## 4 1 Presc04 pantoprazole
## 5 1 Presc05 lorazepam
## 6 1 Presc06 omeprazole
# Keep only relevant variables
pivot <- pivot[,c(1,3)]
pivot <- pivot[!(pivot$Medication == ""), ]
# Create list and convert tibble to data frame
list_data <- as.data.frame(pivot)
# Split data frame
list_data <- split(list_data$Medication, list_data$id)
str(list_data)
## List of 7501
## $ 1 : Factor w/ 120 levels "abilify","acetaminophen",..: 10 4 7 83 69 81 79 50 56 87 ...
## $ 2 : Factor w/ 120 levels "abilify","acetaminophen",..: 30 19 14
## $ 3 : Factor w/ 120 levels "abilify","acetaminophen",..: 44
## $ 4 : Factor w/ 120 levels "abilify","acetaminophen",..: 84 7
## $ 5 : Factor w/ 120 levels "abilify","acetaminophen",..: 1 16 54 80 70
## $ 6 : Factor w/ 120 levels "abilify","acetaminophen",..: 28
## $ 7 : Factor w/ 120 levels "abilify","acetaminophen",..: 60 59
## $ 8 : Factor w/ 120 levels "abilify","acetaminophen",..: 73 95 96
## $ 9 : Factor w/ 120 levels "abilify","acetaminophen",..: 76 23 70
## $ 10 : Factor w/ 120 levels "abilify","acetaminophen",..: 59
## $ 11 : Factor w/ 120 levels "abilify","acetaminophen",..: 14 104
## $ 12 : Factor w/ 120 levels "abilify","acetaminophen",..: 47
## $ 13 : Factor w/ 120 levels "abilify","acetaminophen",..: 84 30 1 14 48
## $ 14 : Factor w/ 120 levels "abilify","acetaminophen",..: 23 90 47
## $ 15 : Factor w/ 120 levels "abilify","acetaminophen",..: 1 98
## $ 16 : Factor w/ 120 levels "abilify","acetaminophen",..: 1
## $ 17 : Factor w/ 120 levels "abilify","acetaminophen",..: 10 40 34 77 107 48 28
## $ 18 : Factor w/ 120 levels "abilify","acetaminophen",..: 84 14
## $ 19 : Factor w/ 120 levels "abilify","acetaminophen",..: 84 63 13 23 1 17 98 14 34 43
## $ 20 : Factor w/ 120 levels "abilify","acetaminophen",..: 19 16 77 59 102
## $ 21 : Factor w/ 120 levels "abilify","acetaminophen",..: 101 10 2 106 14 40 94
## $ 22 : Factor w/ 120 levels "abilify","acetaminophen",..: 108 92
## $ 23 : Factor w/ 120 levels "abilify","acetaminophen",..: 23 1 72 22 42 70
## $ 24 : Factor w/ 120 levels "abilify","acetaminophen",..: 30 55 10 2 7 77 82 85
## $ 25 : Factor w/ 120 levels "abilify","acetaminophen",..: 14
## $ 26 : Factor w/ 120 levels "abilify","acetaminophen",..: 105 23 73 7 16 65
## $ 27 : Factor w/ 120 levels "abilify","acetaminophen",..: 68 23 1 16 54 17 98 66 8
## $ 28 : Factor w/ 120 levels "abilify","acetaminophen",..: 92
## $ 29 : Factor w/ 120 levels "abilify","acetaminophen",..: 1 14 34 40 59
## $ 30 : Factor w/ 120 levels "abilify","acetaminophen",..: 76 23 79 1
## $ 31 : Factor w/ 120 levels "abilify","acetaminophen",..: 75 86 95 25
## $ 32 : Factor w/ 120 levels "abilify","acetaminophen",..: 1 40 7 14
## $ 33 : Factor w/ 120 levels "abilify","acetaminophen",..: 84 59 89
## $ 34 : Factor w/ 120 levels "abilify","acetaminophen",..: 76 88 40
## $ 35 : Factor w/ 120 levels "abilify","acetaminophen",..: 47
## $ 36 : Factor w/ 120 levels "abilify","acetaminophen",..: 103 23 98 8
## $ 37 : Factor w/ 120 levels "abilify","acetaminophen",..: 54 59
## $ 38 : Factor w/ 120 levels "abilify","acetaminophen",..: 101 68 1
## $ 39 : Factor w/ 120 levels "abilify","acetaminophen",..: 1 39 50
## $ 40 : Factor w/ 120 levels "abilify","acetaminophen",..: 103 90 70
## $ 41 : Factor w/ 120 levels "abilify","acetaminophen",..: 23
## $ 42 : Factor w/ 120 levels "abilify","acetaminophen",..: 63 76 23 1 77 80 66 8
## $ 43 : Factor w/ 120 levels "abilify","acetaminophen",..: 23
## $ 44 : Factor w/ 120 levels "abilify","acetaminophen",..: 73 19 78 92
## $ 45 : Factor w/ 120 levels "abilify","acetaminophen",..: 8
## $ 46 : Factor w/ 120 levels "abilify","acetaminophen",..: 73 7 59 78 26 22 42 70
## $ 47 : Factor w/ 120 levels "abilify","acetaminophen",..: 1 34 33 46
## $ 48 : Factor w/ 120 levels "abilify","acetaminophen",..: 1 27
## $ 49 : Factor w/ 120 levels "abilify","acetaminophen",..: 7 111
## $ 50 : Factor w/ 120 levels "abilify","acetaminophen",..: 30 17 70
## $ 51 : Factor w/ 120 levels "abilify","acetaminophen",..: 23 40 26 82 70
## $ 52 : Factor w/ 120 levels "abilify","acetaminophen",..: 63 1 14
## $ 53 : Factor w/ 120 levels "abilify","acetaminophen",..: 23 111
## $ 54 : Factor w/ 120 levels "abilify","acetaminophen",..: 23 40
## $ 55 : Factor w/ 120 levels "abilify","acetaminophen",..: 59 8 90
## $ 56 : Factor w/ 120 levels "abilify","acetaminophen",..: 86 35
## $ 57 : Factor w/ 120 levels "abilify","acetaminophen",..: 84 63 76 13 68 23 1 40 73 16 ...
## $ 58 : Factor w/ 120 levels "abilify","acetaminophen",..: 14 47
## $ 59 : Factor w/ 120 levels "abilify","acetaminophen",..: 73 34 71 93 22 56 70
## $ 60 : Factor w/ 120 levels "abilify","acetaminophen",..: 84 76 1 45 48 70
## $ 61 : Factor w/ 120 levels "abilify","acetaminophen",..: 23
## $ 62 : Factor w/ 120 levels "abilify","acetaminophen",..: 46
## $ 63 : Factor w/ 120 levels "abilify","acetaminophen",..: 56
## $ 64 : Factor w/ 120 levels "abilify","acetaminophen",..: 73 27 96 102 70
## $ 65 : Factor w/ 120 levels "abilify","acetaminophen",..: 84 14
## $ 66 : Factor w/ 120 levels "abilify","acetaminophen",..: 59
## $ 67 : Factor w/ 120 levels "abilify","acetaminophen",..: 40 16
## $ 68 : Factor w/ 120 levels "abilify","acetaminophen",..: 75 60 68 1 7 45 80
## $ 69 : Factor w/ 120 levels "abilify","acetaminophen",..: 47
## $ 70 : Factor w/ 120 levels "abilify","acetaminophen",..: 10 2
## $ 71 : Factor w/ 120 levels "abilify","acetaminophen",..: 55 75 13 86 49
## $ 72 : Factor w/ 120 levels "abilify","acetaminophen",..: 30 8 96
## $ 73 : Factor w/ 120 levels "abilify","acetaminophen",..: 47
## $ 74 : Factor w/ 120 levels "abilify","acetaminophen",..: 41
## $ 75 : Factor w/ 120 levels "abilify","acetaminophen",..: 73 14
## $ 76 : Factor w/ 120 levels "abilify","acetaminophen",..: 47
## $ 77 : Factor w/ 120 levels "abilify","acetaminophen",..: 1 40 28
## $ 78 : Factor w/ 120 levels "abilify","acetaminophen",..: 14 89
## $ 79 : Factor w/ 120 levels "abilify","acetaminophen",..: 55 68 23 1 82
## $ 80 : Factor w/ 120 levels "abilify","acetaminophen",..: 115
## $ 81 : Factor w/ 120 levels "abilify","acetaminophen",..: 14 39 59
## $ 82 : Factor w/ 120 levels "abilify","acetaminophen",..: 30 23 16 59 70
## $ 83 : Factor w/ 120 levels "abilify","acetaminophen",..: 1 54 12 59
## $ 84 : Factor w/ 120 levels "abilify","acetaminophen",..: 30 55 75 1 14 48
## $ 85 : Factor w/ 120 levels "abilify","acetaminophen",..: 54
## $ 86 : Factor w/ 120 levels "abilify","acetaminophen",..: 54 56
## $ 87 : Factor w/ 120 levels "abilify","acetaminophen",..: 40 66
## $ 88 : Factor w/ 120 levels "abilify","acetaminophen",..: 28
## $ 89 : Factor w/ 120 levels "abilify","acetaminophen",..: 6 99
## $ 90 : Factor w/ 120 levels "abilify","acetaminophen",..: 30 59 28 70
## $ 91 : Factor w/ 120 levels "abilify","acetaminophen",..: 28
## $ 92 : Factor w/ 120 levels "abilify","acetaminophen",..: 30 75 10 2 23 1 19 58 54 62 ...
## $ 93 : Factor w/ 120 levels "abilify","acetaminophen",..: 90 28
## $ 94 : Factor w/ 120 levels "abilify","acetaminophen",..: 90
## $ 95 : Factor w/ 120 levels "abilify","acetaminophen",..: 30 4 14 59 47 70
## $ 96 : Factor w/ 120 levels "abilify","acetaminophen",..: 72 73 8 22
## $ 97 : Factor w/ 120 levels "abilify","acetaminophen",..: 84 72 76 106 107 43 118 25
## $ 98 : Factor w/ 120 levels "abilify","acetaminophen",..: 111 14 47
## $ 99 : Factor w/ 120 levels "abilify","acetaminophen",..: 47
## [list output truncated]
# Transactionalized data set
basket <- as(list_data, "transactions")
## Warning in asMethod(object): removing duplicated items in transactions
# Convert basket to matrix
basket <- as(basket, "matrix")
str(basket)
## logi [1:7501, 1:119] TRUE FALSE FALSE FALSE TRUE FALSE ...
## - attr(*, "dimnames")=List of 2
## ..$ : chr [1:7501] "1" "2" "3" "4" ...
## ..$ : chr [1:119] "abilify" "acetaminophen" "actonel" "albuterol aerosol" ...
dim(basket)
## [1] 7501 119
head(basket)
## abilify acetaminophen actonel albuterol aerosol albuterol HFA alendronate
## 1 TRUE FALSE FALSE TRUE TRUE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE FALSE
## 5 TRUE FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE FALSE
## allopurinol alprazolam amitriptyline amlodipine amoxicillin amphetamine
## 1 TRUE FALSE FALSE TRUE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE
## 4 TRUE FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE FALSE
## amphetamine salt combo amphetamine salt combo xr atenolol atorvastatin
## 1 FALSE FALSE FALSE FALSE
## 2 FALSE TRUE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE TRUE
## 6 FALSE FALSE FALSE FALSE
## azithromycin benazepril benicar boniva bupropion sr carisoprodol carvedilol
## 1 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE TRUE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## cefdinir celebrex celecoxib cephalexin cialis ciprofloxacin citalopram
## 1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE TRUE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE TRUE FALSE FALSE
## clavulanate K+ clonazepam clonidine HCI clopidogrel clotrimazole codeine
## 1 FALSE FALSE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE FALSE
## crestor cyclobenzaprine dextroamphetamine XR diazepam diclofenac sodium
## 1 FALSE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE
## doxycycline hyclate Duloxetine enalapril escitalopram esomeprazole ezetimibe
## 1 FALSE FALSE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE TRUE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE FALSE
## fenofibrate fexofenadine fluconozole fluoxetine HCI fluticasone
## 1 FALSE FALSE TRUE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE
## fluticasone nasal spray folic acid furosemide gabapentin glimepiride
## 1 FALSE FALSE FALSE TRUE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE
## 5 FALSE TRUE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE
## glipizide glyburide hydrochlorothiazide hydrocodone ibuprophen
## 1 TRUE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE
## isosorbide mononitrate lansoprazole lantus levofloxacin levothyroxine sodium
## 1 FALSE FALSE FALSE TRUE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE
## lisinopril lorazepam losartan lovastatin meloxicam metformin metformin HCI
## 1 FALSE TRUE TRUE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE TRUE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## methylprednisone metoprolol metoprolol succinate XL metoprolol tartrate
## 1 FALSE FALSE TRUE FALSE
## 2 FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE
## mometasone naproxen omeprazole oxycodone pantoprazole paroxetine pioglitazone
## 1 TRUE FALSE TRUE FALSE TRUE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE TRUE FALSE
## 5 FALSE TRUE FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## potassium Chloride pravastatin prednisone pregabalin Premarin promethazine
## 1 FALSE TRUE FALSE FALSE FALSE TRUE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE FALSE
## quetiapine ranitidine rosuvastatin salmeterol inhaler sertraline HCI
## 1 FALSE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE
## simvastatin spironolactone sulfamethoxazole synthroid tamsulosin temezepam
## 1 FALSE TRUE TRUE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE FALSE
## topiramate tramadol trazodone HCI triamcinolone Ace topical triamterene
## 1 FALSE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE
## trimethoprim DS valaciclovir valsartan venlafaxine XR verapamil SR viagra
## 1 FALSE FALSE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE FALSE
## Yaz zolpidem cymbalta flovent hfa 110mcg inhaler hydrocortisone 2.5% cream
## 1 FALSE FALSE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE FALSE
## 3 FALSE FALSE FALSE FALSE FALSE
## 4 FALSE FALSE FALSE FALSE FALSE
## 5 FALSE FALSE FALSE FALSE FALSE
## 6 FALSE FALSE FALSE FALSE FALSE
## finasteride
## 1 FALSE
## 2 FALSE
## 3 FALSE
## 4 FALSE
## 5 FALSE
## 6 FALSE
# Run apriori function on transactions data set to get association rules
arules <- apriori(basket, control = list(verbose = F), parameter = list(supp = 0.01, conf = 0.4, minlen = 2))
# Identify redundant rules
redundant <- is.redundant(arules)
# Refined rules
refined_arules <- arules[!redundant]
summary(refined_arules)
## set of 18 rules
##
## rule length distribution (lhs + rhs):sizes
## 2 3
## 4 14
##
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2.000 3.000 3.000 2.778 3.000 3.000
##
## summary of quality measures:
## support confidence coverage lift
## Min. :0.01013 Min. :0.4013 Min. :0.02000 Min. :1.683
## 1st Qu.:0.01117 1st Qu.:0.4175 1st Qu.:0.02400 1st Qu.:1.763
## Median :0.01373 Median :0.4355 Median :0.03266 Median :1.844
## Mean :0.01621 Mean :0.4414 Mean :0.03737 Mean :1.888
## 3rd Qu.:0.01706 3rd Qu.:0.4561 3rd Qu.:0.04049 3rd Qu.:1.954
## Max. :0.04093 Max. :0.5067 Max. :0.09825 Max. :2.395
## count
## Min. : 76.00
## 1st Qu.: 83.75
## Median :103.00
## Mean :121.61
## 3rd Qu.:128.00
## Max. :307.00
##
## mining info:
## data ntransactions support confidence
## basket 7501 0.01 0.4
## call
## apriori(data = basket, parameter = list(supp = 0.01, conf = 0.4, minlen = 2), control = list(verbose = F))
# Association Rules Table
rules_data <- as.data.frame(inspect(refined_arules))
## lhs rhs support
## [1] {spironolactone} => {abilify} 0.01706439
## [2] {metformin} => {abilify} 0.02306359
## [3] {glipizide} => {abilify} 0.02759632
## [4] {lisinopril} => {abilify} 0.04092788
## [5] {carvedilol, glipizide} => {abilify} 0.01026530
## [6] {carvedilol, doxycycline hyclate} => {abilify} 0.01146514
## [7] {atorvastatin, metoprolol} => {abilify} 0.01106519
## [8] {carvedilol, metoprolol} => {abilify} 0.01199840
## [9] {atorvastatin, lisinopril} => {abilify} 0.01106519
## [10] {diazepam, lisinopril} => {abilify} 0.01093188
## [11] {amphetamine salt combo xr, lisinopril} => {abilify} 0.01013198
## [12] {carvedilol, lisinopril} => {abilify} 0.01706439
## [13] {abilify, lisinopril} => {carvedilol} 0.01706439
## [14] {atorvastatin, diazepam} => {abilify} 0.01399813
## [15] {amphetamine salt combo xr, atorvastatin} => {abilify} 0.01306492
## [16] {atorvastatin, carvedilol} => {abilify} 0.01573124
## [17] {amphetamine salt combo xr, diazepam} => {abilify} 0.01346487
## [18] {carvedilol, diazepam} => {abilify} 0.01586455
## confidence coverage lift count
## [1] 0.4012539 0.04252766 1.683336 128
## [2] 0.4564644 0.05052660 1.914955 173
## [3] 0.4190283 0.06585789 1.757904 207
## [4] 0.4165536 0.09825357 1.747522 307
## [5] 0.4476744 0.02293028 1.878079 77
## [6] 0.4550265 0.02519664 1.908923 86
## [7] 0.4689266 0.02359685 1.967236 83
## [8] 0.4306220 0.02786295 1.806541 90
## [9] 0.5030303 0.02199707 2.110308 83
## [10] 0.4739884 0.02306359 1.988472 82
## [11] 0.5066667 0.01999733 2.125563 76
## [12] 0.4353741 0.03919477 1.826477 128
## [13] 0.4169381 0.04092788 2.394681 128
## [14] 0.4356846 0.03212905 1.827780 105
## [15] 0.4242424 0.03079589 1.779778 98
## [16] 0.4436090 0.03546194 1.861024 118
## [17] 0.4056225 0.03319557 1.701663 101
## [18] 0.4047619 0.03919477 1.698053 119
The top three rules all have a lift of at least 2.1 and a confidence of at least 0.41. The results are interpreted by first looking at the item(s) in the left-hand side (lhs) column and right-hand side (rhs). It should be read, “it is suggested that if a patient is prescribed (lhs), then it is likely that the patient will also be prescribed (rhs)”. How much more likely and how confident we are in the relationship is reported by the confidence and lift values in that rule.
# Inspect top rules sorted by "lift" in descending order
inspect(head(sort(refined_arules, by = "lift", decreasing = TRUE), 3))
## lhs rhs support
## [1] {abilify, lisinopril} => {carvedilol} 0.01706439
## [2] {amphetamine salt combo xr, lisinopril} => {abilify} 0.01013198
## [3] {atorvastatin, lisinopril} => {abilify} 0.01106519
## confidence coverage lift count
## [1] 0.4169381 0.04092788 2.394681 128
## [2] 0.5066667 0.01999733 2.125563 76
## [3] 0.5030303 0.02199707 2.110308 83
# Check abilify
medication_frequencies <- table(pivot$Medication)
sorted_medication_frequencies <- sort(medication_frequencies, decreasing = TRUE)
print(sorted_medication_frequencies)
##
## abilify amphetamine salt combo xr
## 1788 1348
## carvedilol glyburide
## 1306 1282
## diazepam losartan
## 1230 991
## atorvastatin lisinopril
## 972 737
## metoprolol doxycycline hyclate
## 715 713
## citalopram dextroamphetamine XR
## 654 608
## ezetimibe alprazolam
## 603 595
## cialis amlodipine
## 574 536
## amphetamine salt combo glipizide
## 513 494
## levofloxacin paroxetine
## 475 469
## clopidogrel naproxen
## 450 439
## furosemide fenofibrate
## 393 383
## metformin methylprednisone
## 379 371
## metoprolol succinate XL Premarin
## 356 351
## lantus spironolactone
## 323 319
## celecoxib allopurinol
## 253 250
## metoprolol tartrate fluconozole
## 243 239
## pravastatin amphetamine
## 228 226
## hydrochlorothiazide tamsulosin
## 221 211
## diclofenac sodium clotrimazole
## 205 204
## folic acid meloxicam
## 203 203
## gabapentin triamcinolone Ace topical
## 200 199
## clonidine HCI pantoprazole
## 193 193
## venlafaxine XR triamterene
## 181 173
## ibuprophen isosorbide mononitrate
## 169 167
## pregabalin benicar
## 160 157
## albuterol aerosol trazodone HCI
## 153 149
## hydrocodone trimethoprim DS
## 143 141
## temezepam zolpidem
## 139 131
## oxycodone acetaminophen
## 124 118
## salmeterol inhaler codeine
## 117 115
## azithromycin potassium Chloride
## 107 106
## lansoprazole lovastatin
## 102 101
## fluticasone nasal spray actonel
## 99 90
## Duloxetine carisoprodol
## 90 86
## mometasone celebrex
## 86 82
## atenolol escitalopram
## 81 79
## valsartan clavulanate K+
## 78 73
## cymbalta omeprazole
## 71 70
## benazepril simvastatin
## 69 69
## glimepiride lorazepam
## 68 68
## albuterol HFA amoxicillin
## 67 65
## cephalexin synthroid
## 65 65
## esomeprazole pioglitazone
## 63 61
## prednisone sertraline HCI
## 58 58
## promethazine levothyroxine sodium
## 53 52
## tramadol quetiapine
## 49 47
## ranitidine boniva
## 47 46
## cyclobenzaprine topiramate
## 46 45
## ciprofloxacin verapamil SR
## 44 42
## metformin HCI rosuvastatin
## 39 37
## sulfamethoxazole alendronate
## 37 36
## clonazepam fexofenadine
## 36 36
## amitriptyline viagra
## 34 34
## crestor fluticasone
## 33 33
## valaciclovir Yaz
## 33 32
## bupropion sr enalapril
## 31 31
## flovent hfa 110mcg inhaler cefdinir
## 29 14
## fluoxetine HCI finasteride
## 7 5
## hydrocortisone 2.5% cream
## 3 0
The top rule reports that the likelihood of carvedilol is 2.3 times higher, as indicated by the lift, to be prescribed when both abilify and lisinopril are prescribed compared to when they are not prescribed together. The support reports that 1.71% of transactions in the dataset that contain abilify, lisinopril, and carvedilol. A confidence score of 0.41 indicates that we can be 41% confident that when abilify and lisinopril are prescribed, carvedilol will also be prescribed. The proportion of transactions that include both abilify and lisinopril is 4.09%, represented in the coverage. The count tells us that the combination of all three medicates occurring together happened 128 times.
Similarly, the second rule states that when amphetamine salt combo xr and lisinopril are prescribed, there is a 212% higher chance of abilify also being prescribed. This rule has the highest confidence score of 50.6% but is only represented in 1% of all transactions in the dataset.