1. Introduction

In this project, I explored the Calgary Citizen Satisfaction Survey using association rule mining. I got this dataset from here: https://data.calgary.ca/Help-and-Information/Citizen-Satisfaction-Survey-2018-2021-/btc8-9kef/about_data


The Calgary Citizen Satisfaction Survey is a city-run survey that collects residents’ opinions about municipal services and quality of life. The version used in this project includes responses from 2018 to 2021, where people rated services like roads, transit, parks, and social programs on a 1–5 scale from very dissatisfied to very satisfied. The goal is to understand whether satisfaction or dissatisfaction with certain city services tends to appear together.

Rather than predicting an outcome, this analysis focuses on discovering patterns in how citizens evaluate different services at the same time. I start by exploring the data and preparing it for analysis, then gradually move towards mining and interpreting association rules.

library(arules)
library(arulesViz)
library(tidyr)
library(dplyr)

set.seed(123)

2. Data Loading

The dataset contains respondents’ ratings for multiple municipal services measured on a Likert scale ranging from 1 (very dissatisfied) to 5 (very satisfied).

Before doing any analysis, I loaded the dataset and inspected its structure to understand what kind of variables are available and how responses are recorded.

calgary_raw <- read.csv("Citizen_Satisfaction_Survey.csv", stringsAsFactors = FALSE)

str(calgary_raw)
## 'data.frame':    10002 obs. of  139 variables:
##  $ Mweight0: num  0.51 0.6 0.7 0.49 0.77 0.67 0.77 0.41 1.19 1.03 ...
##  $ qwave   : chr  "Year-2021" "Year-2021" "Year-2021" "Year-2021" ...
##  $ s4qt    : int  4 1 2 3 1 1 1 2 1 1 ...
##  $ market2 : int  10 8 12 6 11 6 11 11 6 9 ...
##  $ q39     : int  4 1 7 9 4 1 4 7 9 2 ...
##  $ q34     : int  1 1 1 1 1 2 1 1 1 1 ...
##  $ q37     : int  9 9 8 8 10 1 11 8 3 7 ...
##  $ q38     : int  3 2 2 3 2 3 3 2 2 3 ...
##  $ q30     : int  6 6 6 6 5 6 6 5 4 6 ...
##  $ q32x    : int  2 2 2 2 2 2 2 2 1 2 ...
##  $ q40     : int  2 2 2 3 2 1 2 2 2 2 ...
##  $ sexfix  : int  2 1 2 2 2 1 2 2 2 2 ...
##  $ q29x    : int  1 2 1 1 1 2 1 1 1 1 ...
##  $ q2a     : int  6 6 8 7 8 7 7 10 8 5 ...
##  $ q3      : int  2 2 3 3 1 2 1 2 2 3 ...
##  $ q24bx_1 : int  5 6 5 6 7 6 10 8 7 4 ...
##  $ q24bx_2 : int  5 7 3 1 3 7 10 8 6 6 ...
##  $ q24bx_3 : int  7 7 5 10 7 8 10 10 8 7 ...
##  $ q24bx_4 : int  6 7 5 10 8 8 10 10 8 7 ...
##  $ q24bx_5 : int  1 6 1 1 7 6 4 10 6 2 ...
##  $ q24bx_6 : int  4 6 5 4 5 6 6 9 7 4 ...
##  $ q24bx_7 : int  3 6 8 9 8 7 8 10 7 6 ...
##  $ q24cx   : int  3 4 3 3 3 2 1 4 3 2 ...
##  $ q10     : int  2 2 4 1 4 2 3 4 3 2 ...
##  $ q19_1   : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ q19_2   : int  1 3 2 5 4 1 2 4 3 3 ...
##  $ q19_3   : int  4 4 3 5 4 3 1 4 3 4 ...
##  $ q19_4   : int  1 4 5 1 4 1 1 3 3 3 ...
##  $ q19_5   : int  1 4 3 3 2 3 3 3 3 3 ...
##  $ q19_6   : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ q19_7   : int  1 4 3 3 1 5 3 3 2 3 ...
##  $ q19_8   : int  1 4 3 2 1 3 2 4 3 3 ...
##  $ q11a    : int  5 7 7 8 8 6 8 8 5 7 ...
##  $ q12     : int  4 2 2 4 2 5 2 4 5 3 ...
##  $ q8_1    : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_2    : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_3    : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_4    : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_5    : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q8_6    : int  5 5 2 5 5 5 5 5 5 5 ...
##  $ q8_7    : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_8    : int  5 5 2 5 5 5 5 5 5 5 ...
##  $ q8_9    : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_10   : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_11   : int  5 5 2 5 5 5 5 5 5 5 ...
##  $ q8_12   : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_13   : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_14   : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_15   : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_16   : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q8_17   : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q8_18   : int  5 5 2 5 5 5 5 5 5 5 ...
##  $ q8_19   : int  2 4 5 4 4 4 4 4 3 4 ...
##  $ q8_20   : int  1 4 5 4 2 4 4 4 3 4 ...
##  $ q8_21   : int  4 4 5 4 4 4 4 4 3 4 ...
##  $ q8_22   : int  3 4 5 4 4 4 4 4 3 4 ...
##  $ q8_23   : int  4 3 5 4 4 4 4 4 4 4 ...
##  $ q8_24   : int  4 3 5 4 3 4 2 4 4 4 ...
##  $ q8_25   : int  1 2 5 4 4 4 3 4 3 4 ...
##  $ q8_26   : int  1 4 5 3 4 4 1 4 4 4 ...
##  $ q8_27   : int  1 3 5 4 4 4 4 4 3 4 ...
##  $ q8_28   : int  3 4 5 5 4 4 3 4 3 4 ...
##  $ q8_29   : int  4 4 5 4 4 4 3 4 3 4 ...
##  $ q8_30   : int  4 4 5 5 3 4 4 4 3 4 ...
##  $ q8_31   : int  3 4 5 4 4 4 3 4 3 4 ...
##  $ q8_32   : int  1 4 5 4 4 4 1 4 3 4 ...
##  $ q8_33   : int  4 4 5 4 3 4 4 4 4 4 ...
##  $ q8_34   : int  2 1 5 4 3 3 2 4 3 4 ...
##  $ q8_35   : int  4 4 5 4 2 3 3 4 3 4 ...
##  $ q9_1_1  : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q9_1_2  : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q9_1_3  : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_4  : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_5  : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_6  : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_7  : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q9_1_8  : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_9  : int  5 5 4 5 5 5 5 5 5 5 ...
##  $ q9_1_10 : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_11 : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_12 : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_13 : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_14 : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_15 : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_16 : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_17 : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_18 : int  5 5 3 5 5 5 5 5 5 5 ...
##  $ q9_1_19 : int  2 3 5 2 4 3 3 3 3 3 ...
##  $ q9_1_20 : int  2 4 5 4 3 3 3 3 3 3 ...
##  $ q9_1_21 : int  1 4 5 3 3 2 3 4 3 3 ...
##  $ q9_1_22 : int  3 3 5 3 2 2 2 4 3 2 ...
##  $ q9_1_23 : int  1 3 5 4 4 3 2 4 3 3 ...
##  $ q9_1_24 : int  3 3 5 4 3 3 3 4 3 3 ...
##  $ q9_1_25 : int  1 4 5 3 3 3 3 4 3 3 ...
##  $ q9_1_26 : int  1 4 5 3 2 2 3 4 3 2 ...
##  $ q9_1_27 : int  1 3 5 4 3 3 3 4 3 3 ...
##  $ q9_1_28 : int  3 3 5 5 2 2 2 4 3 3 ...
##  $ q9_1_29 : int  2 3 5 3 3 3 3 4 3 3 ...
##  $ q9_1_30 : int  5 3 5 5 3 3 2 4 3 3 ...
##   [list output truncated]
head(calgary_raw)

After loading the dataset, I inspected its structure and a few sample rows to understand what the data looked like. The survey contained around 10k responses and a large number of variables, most of which were coded as numeric values representing survey answers. I also noticed that some questions contained missing values. This showed that the dataset was large, contained many survey questions, and included missing values, so some preprocessing would be required before analysis.

3. Selecting Relevant Service Variables

The dataset contains many survey questions (139 columns), so I focused on the questions that talked about the satisfaction with municipal services. I selected services related to transportation, infrastructure, maintenance, parks, and social services.

calgary_sel <- calgary_raw %>%
  select(
    q9_1_10,  # Transportation planning
    q9_1_11,  # Calgary Transit
    q9_1_12,  # Roads & infrastructure
    q9_1_13,  # Road maintenance
    q9_1_14,  # Spring road cleaning
    q9_1_15,  # Snow removal
    q9_1_19,  # Parks & open spaces
    q9_1_21,  # Social services
    q9_1_24,  # Recreation facilities
    q9_1_28,  # City land use planning
    q9_1_35   # 311 service
  )

4. Handling Missing Values

Association rule mining treats each row as a complete transaction, so missing values can distort results. To avoid this, I removed rows with missing service ratings. I also changed the column names from a format like q1_1_10 to a more understandable format like TransitPlanning.

calgary_sel <- calgary_sel %>%
  filter(if_all(everything(), ~ !is.na(.)))

colnames(calgary_sel ) <- c(
  "TransitPlanning",
  "TransitService",
  "RoadInfrastructure",
  "RoadMaintenance",
  "SpringCleaning",
  "SnowRemoval",
  "Parks",
  "SocialServices",
  "RecreationFacilities",
  "LandUsePlanning",
  "Service311"
)

head(calgary_sel)

5. Initial EDA: Rating Distributions

Before transforming the data, I checked how often each rating appears. This helped confirm that the Likert scale (1–5) is used consistently and gives an early sense of whether responses are skewed toward high, neutral, or low satisfaction.

summary(calgary_sel)
##  TransitPlanning TransitService RoadInfrastructure RoadMaintenance
##  Min.   :1.000   Min.   :1.00   Min.   :1.000      Min.   :1.000  
##  1st Qu.:3.000   1st Qu.:3.00   1st Qu.:3.000      1st Qu.:3.000  
##  Median :4.000   Median :4.00   Median :4.000      Median :3.000  
##  Mean   :3.737   Mean   :3.85   Mean   :3.765      Mean   :3.582  
##  3rd Qu.:5.000   3rd Qu.:5.00   3rd Qu.:5.000      3rd Qu.:5.000  
##  Max.   :5.000   Max.   :5.00   Max.   :5.000      Max.   :5.000  
##  SpringCleaning  SnowRemoval        Parks       SocialServices 
##  Min.   :1.00   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:3.00   1st Qu.:3.000   1st Qu.:3.000   1st Qu.:3.000  
##  Median :4.00   Median :4.000   Median :4.000   Median :4.000  
##  Mean   :3.95   Mean   :3.641   Mean   :4.015   Mean   :3.792  
##  3rd Qu.:5.00   3rd Qu.:5.000   3rd Qu.:5.000   3rd Qu.:5.000  
##  Max.   :5.00   Max.   :5.000   Max.   :5.000   Max.   :5.000  
##  RecreationFacilities LandUsePlanning   Service311  
##  Min.   :1.000        Min.   :1.000   Min.   :1.00  
##  1st Qu.:3.000        1st Qu.:3.000   1st Qu.:3.00  
##  Median :4.000        Median :3.000   Median :4.00  
##  Mean   :3.894        Mean   :3.721   Mean   :4.05  
##  3rd Qu.:5.000        3rd Qu.:5.000   3rd Qu.:5.00  
##  Max.   :5.000        Max.   :5.000   Max.   :5.00

The selected service variables all followed the same 1–5 Likert rating scale, which made them directly comparable across services. Ratings were generally skewed toward higher values, particularly for transportation, infrastructure, and maintenance-related services. In contrast, services such as social services and 311 displayed slightly more spread across the scale.

6. Recoding Ratings into Low, Neutral, and High

To make the results easier to interpret and suitable for association rule mining, I converted the 1–5 ratings into three categories:

  • Low (1–2)

  • Neutral (3)

  • High (4–5)

This also reduces noise while keeping the overall sentiment of each response.

calgary_labeled <- calgary_sel %>%
  mutate(across(
    everything(),
    ~ case_when(
      . %in% c(1, 2) ~ paste0(cur_column(), "_low"),
      . == 3         ~ paste0(cur_column(), "_neutral"),
      . %in% c(4, 5) ~ paste0(cur_column(), "_high"),
      TRUE           ~ NA_character_
    )
  ))

calgary_labeled <- calgary_labeled %>%
  filter(if_all(everything(), ~ !is.na(.)))

unique(unlist(calgary_labeled))
##  [1] "TransitPlanning_high"         "TransitPlanning_neutral"     
##  [3] "TransitPlanning_low"          "TransitService_high"         
##  [5] "TransitService_neutral"       "TransitService_low"          
##  [7] "RoadInfrastructure_high"      "RoadInfrastructure_neutral"  
##  [9] "RoadInfrastructure_low"       "RoadMaintenance_high"        
## [11] "RoadMaintenance_neutral"      "RoadMaintenance_low"         
## [13] "SpringCleaning_high"          "SpringCleaning_neutral"      
## [15] "SpringCleaning_low"           "SnowRemoval_high"            
## [17] "SnowRemoval_neutral"          "SnowRemoval_low"             
## [19] "Parks_low"                    "Parks_neutral"               
## [21] "Parks_high"                   "SocialServices_low"          
## [23] "SocialServices_high"          "SocialServices_neutral"      
## [25] "RecreationFacilities_neutral" "RecreationFacilities_high"   
## [27] "RecreationFacilities_low"     "LandUsePlanning_neutral"     
## [29] "LandUsePlanning_high"         "LandUsePlanning_low"         
## [31] "Service311_low"               "Service311_high"             
## [33] "Service311_neutral"
table(unlist(calgary_labeled), useNA = "ifany")
## 
##         LandUsePlanning_high          LandUsePlanning_low 
##                         4922                         1335 
##      LandUsePlanning_neutral                   Parks_high 
##                         3745                         6839 
##                    Parks_low                Parks_neutral 
##                          376                         2787 
##    RecreationFacilities_high     RecreationFacilities_low 
##                         5872                          616 
## RecreationFacilities_neutral      RoadInfrastructure_high 
##                         3514                         5212 
##       RoadInfrastructure_low   RoadInfrastructure_neutral 
##                         1085                         3705 
##         RoadMaintenance_high          RoadMaintenance_low 
##                         4811                         2084 
##      RoadMaintenance_neutral              Service311_high 
##                         3107                         7055 
##               Service311_low           Service311_neutral 
##                          460                         2487 
##             SnowRemoval_high              SnowRemoval_low 
##                         5175                         1892 
##          SnowRemoval_neutral          SocialServices_high 
##                         2935                         5095 
##           SocialServices_low       SocialServices_neutral 
##                          909                         3998 
##          SpringCleaning_high           SpringCleaning_low 
##                         6473                          567 
##       SpringCleaning_neutral         TransitPlanning_high 
##                         2962                         5104 
##          TransitPlanning_low      TransitPlanning_neutral 
##                         1287                         3611 
##          TransitService_high           TransitService_low 
##                         5830                          976 
##       TransitService_neutral 
##                         3196

High satisfaction appeared most frequently across services such as Parks, Service311, and SpringCleaning, while low satisfaction was less common overall. Neutral responses remained present for several services, which meant that there were a lot of mixed opinions.

7. Removing Neutral Responses

At this stage, I removed neutral responses from the data. Neutral ratings were very common in the survey, but they do not clearly indicate either satisfaction or dissatisfaction. Since association rule mining works best when items represent clear signals, I decided to keep only low and high ratings.

After this, each respondent was represented by a set of satisfaction or dissatisfaction items that could be used directly for association rule mining.

calgary_long <- calgary_labeled %>%
  mutate(respondent_id = row_number()) %>%
  pivot_longer(
    cols = -respondent_id,
    names_to = "service",
    values_to = "level"
  ) %>%
  filter(!grepl("_neutral$", level)) %>%
  select(respondent_id, level)

head(calgary_long)

8. Creating Transactions

After restructuring the data, I converted each respondent’s set of satisfaction and dissatisfaction items into a transaction format.

write.table(
  calgary_long,
  file = "calgary_baskets.csv",
  sep = ",",
  row.names = FALSE,
  col.names = FALSE,
  quote = FALSE
)

calgary_trans <- read.transactions(
  "calgary_baskets.csv",
  format = "single",
  cols = c(1, 2),
  sep = ","
)

summary(calgary_trans)
## transactions as itemMatrix in sparse format with
##  9948 rows (elements/itemsets/transactions) and
##  22 columns (items) and a density of 0.3380076 
## 
## most frequent items:
##           Service311_high                Parks_high       SpringCleaning_high 
##                      7055                      6839                      6473 
## RecreationFacilities_high       TransitService_high                   (Other) 
##                      5872                      5830                     41906 
## 
## element (itemset/transaction) length distribution:
## sizes
##    1    2    3    4    5    6    7    8    9   10   11 
##  122  207  261  362  641 1225 1815 2020 1695 1067  533 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   6.000   8.000   7.436   9.000  11.000 
## 
## includes extended item information - examples:
##                 labels
## 1 LandUsePlanning_high
## 2  LandUsePlanning_low
## 3           Parks_high
## 
## includes extended transaction information - examples:
##   transactionID
## 1             1
## 2            10
## 3           100
inspect(calgary_trans[1:10])
##      items                        transactionID
## [1]  {Parks_low,                               
##       RoadInfrastructure_high,                 
##       RoadMaintenance_high,                    
##       Service311_low,                          
##       SnowRemoval_high,                        
##       SocialServices_low,                      
##       SpringCleaning_high,                     
##       TransitPlanning_high,                    
##       TransitService_high}                1    
## [2]  {RoadInfrastructure_high,                 
##       RoadMaintenance_high,                    
##       SnowRemoval_high,                        
##       SpringCleaning_high,                     
##       TransitPlanning_high,                    
##       TransitService_high}                10   
## [3]  {LandUsePlanning_high,                    
##       Parks_high,                              
##       RecreationFacilities_high,               
##       RoadInfrastructure_high,                 
##       RoadMaintenance_high,                    
##       Service311_high,                         
##       SnowRemoval_high,                        
##       SocialServices_high,                     
##       SpringCleaning_high,                     
##       TransitPlanning_high,                    
##       TransitService_high}                100  
## [4]  {LandUsePlanning_high,                    
##       Parks_high,                              
##       RecreationFacilities_high,               
##       Service311_high,                         
##       SocialServices_high}                1000 
## [5]  {LandUsePlanning_low,                     
##       Parks_low,                               
##       Service311_high,                         
##       SnowRemoval_low,                         
##       TransitPlanning_low,                     
##       TransitService_high}                10000
## [6]  {LandUsePlanning_high,                    
##       Parks_high,                              
##       RecreationFacilities_high,               
##       RoadMaintenance_low,                     
##       Service311_high,                         
##       SpringCleaning_high,                     
##       TransitPlanning_high,                    
##       TransitService_high}                10001
## [7]  {RoadMaintenance_low}                10002
## [8]  {LandUsePlanning_high,                    
##       Parks_high,                              
##       RecreationFacilities_high,               
##       RoadInfrastructure_low,                  
##       RoadMaintenance_low,                     
##       Service311_high,                         
##       SocialServices_high}                1001 
## [9]  {LandUsePlanning_high,                    
##       Parks_high,                              
##       RecreationFacilities_high,               
##       RoadInfrastructure_high,                 
##       Service311_high,                         
##       SnowRemoval_low,                         
##       SocialServices_high,                     
##       TransitPlanning_low}                1002 
## [10] {LandUsePlanning_low,                     
##       RoadInfrastructure_high,                 
##       RoadMaintenance_high,                    
##       Service311_low,                          
##       SnowRemoval_high,                        
##       SocialServices_low,                      
##       SpringCleaning_high,                     
##       TransitPlanning_high,                    
##       TransitService_high}                1003
size(calgary_trans)
##    [1]  9  6 11  5  6  8  1  7  8  9  8  9  9  7 10  8  6  6  8 10 10 11  7  8
##   [25]  6  8  7 10  8  6  5  6  9  6  6  6  8  7  9  5  9  7  9  9 11  8  8 11
##   [49]  8  9  8  9  6  9  9  7  7  6  9  7  9  6  7  7  6  6  5  9  9 10  7 10
##   [73] 10  7  8 10  8  8  7  6  6  7  7  6  6  9 10  8  6  8  9  8 10  8 10  6
##   [97]  8  7 10  7  7  7  8  8  9  9  9  6  8  7  9 11 11  9 10  6  9  6  5 10
##  [121]  8  8  8  6 10 10  6  6 10  8  9  9  7  7  8  8  6  8  8  7  7  9  9  8
##  [145]  8  8  8  9  7  8  6  9 11 11  7  8  8  7 10  8  7 10  8  9 10 10  8  5
##  [169]  9 11  7  6  8  9  5  8  9 10 10  8  9  8  9  7 11  8  6  6 11  6  6  7
##  [193]  9  9  7 11  5  5  6  6 11  8 10 11  7  7  7  7  9  7  8  8 11  9  9  7
##  [217]  6 10  8  9 11 10 10  7  6  8  7  6  5  8  9  7  8  6  7  9  7  8 11  8
##  [241]  9  7 10  9 11  9  9 10  9  9  9  7  6 10  7  8  8 11  8  8 11  9  8  9
##  [265] 11  8  8  9  9  9  8 10  8  7  8  7 10  6  9  8  8  6 10 10 11  9  7  9
##  [289]  8  9  9 10  8  7 10  8  9  9 10  6  6  8  8  6  8  8  8 10  8  9 10  9
##  [313]  8  9 11  6 11  8  9  8  8  9  8 10  9  9 10  7  7  8 10  8 11  6  7 10
##  [337]  9  9  7  7  8  7  6 10  7  6  9 10  5  9  8  5  9  8 10  8  9  8  8 10
##  [361]  8  7 10  9 10  8  7  8  8  7  9  6  8  7  9 10 10  9 10  6 11 11  8  9
##  [385]  8  6  6 11  6  9 10  5  7  7  7  9  6  8 10  8  8  9  8  8  8  7  8 10
##  [409]  9  6  7  8 10  8 10 10  9  8  7  7  8  9 11  8  8  9  8  8 10 10 10  7
##  [433]  8  7  9  7  7  8  9  9  9  9  9  9  7  9  7  8  6  8  7  8  8  6  9 10
##  [457]  8  9  9 10  7 10  6  7  7  8  7 10  7  8  8 11  9  7  8  9 10 10  9  8
##  [481]  8  9  9 10  9  7  8  9  8  7  8  8 10  9 10 10  7 11  8  6  9  7  6  8
##  [505] 11  9  7  6  7 10  6  9  7  8  7  7  7  7 10  9  9  6  8 10 10  8  6  8
##  [529]  7  7 11  8 10 11 10 10  6  7 10 10  6  7  7  7  8  5  8 10  8  9  8  6
##  [553]  8  6  6  7  5  8  9  9  6  9  9  8  8  8 11  7  8  8  9  6  9  8  5  5
##  [577]  8  9 10  7  6  9  7  9  9  9 10 11  7  7 10  9  9 10  7  9  8  5  5  8
##  [601]  8 10  8  7 11 10  8  7 10  9  7 11  8  6  8  8  7  6  8  9  9  9  6 11
##  [625]  9  6  7 10  9  6  8  8  6  7  5  8  5  8  6  7  9  7  7  8  6  8  8  7
##  [649]  9  7  8  9 11 10  9  6  9  7 10  7  7  6  6  8  9  7 10  7  9  9  5  5
##  [673]  7  7  5 10  6  7 10  8  9  6  5  8  7  8  9  9  7  6  6  9  8  9  8  6
##  [697]  7  8  9 10  5  5  7  6  8  7  7  7 10  9  7  7  8  6  6  7  8  6  7 10
##  [721]  5  8  6  9  8  7  8  8  8  8  8  9  6 10  9  9  6  9 11  6 10  6  7 10
##  [745]  7  8 10  7  9  8  7  7  9  9  7  6  8 10  8  8  6  9  8 10  7 10  7 10
##  [769]  8  6  8 10  7  5  7  6  6  8  8  9  7  6  8  8  9 11  7  7  8  6  8  9
##  [793]  7  8  6  6  6  9  8 11  7  9  6  9  7  9  8  9  8 11  7  8  7 10  7  8
##  [817]  9  9 11  5  7  6  8  9  7 10  9  8  8  7 10  9  8  8 11  7 10  8 10  7
##  [841]  6  9  9 11  5  7  7 10  9  8  8  6  9  7  6  9  7  8  9 10 10  7 10 10
##  [865]  7  6  7  9  8  9  7  8  5  8 11 10  7  9  9  7  8 11 11  5  8  9  9  7
##  [889]  9  9 10 10  7  7  8  8  9  8  8  9 10  9  7  9  7  8 11  8  8  7 10  8
##  [913]  9  9  8  9  8  7  5  8  8  7  7  9 11 10  7  9  9  6  9  8  8  7 10 10
##  [937]  5  8 10  7  9  9  7  7  8 10  8  7  9  9  8  8  8  7 11  7  7  6 10  8
##  [961] 10  7 10  7  5  9  5  9  7  7  7  9  9 10  7  9 10  8 10  8  6  8  7  7
##  [985] 10  9  8  9 10  7  8 10  8  8  6  6  7  8  9 10 10  9  7  7 10  8  7  7
## [1009]  8  7 11 10  8  9  7  8  9  9  9 10  5  8  6  6  8  5  7  9 10 11  8  9
## [1033]  8  7 10 11 10  5  8  8 11  9  7  7  9  6  8  8  9  8  8  9  6  8  7  6
## [1057] 11 10  8  6 10 11 10  8  7  7  9  8  8  9  8  7  9  8 10 10  9  8  5 11
## [1081]  9  7  9 10 11 11  9  9  9  7  9 10  8  6  8 10  8  9  6  9  8  8  9  5
## [1105]  6  8  6  8  9  7  7  7  7  9  8  7  8  8 10  6 10  8  9  7  6  7  5 10
## [1129] 11  9  7  7  7 10 10 10  8  7  7  8  8  7  9  6 11 11 10  7  7  6  7 10
## [1153]  7  8 11 11  5  7  9  6  6 11 10  7  8 11  8 10  6  5 11 10  7  9  6 10
## [1177] 10 11  8  9  8  7 11 11 11  6  7  9 11  8  9  5  6  6 11  8  8  6  6 10
## [1201]  6  9  8  8  8  6 10  8  9  9  9  5  7  8  8  8  7  7  9  8  6  8  6  7
## [1225]  8  6  8  9  7  8  6 10  9  7  9 10  6  8  7  7  8  9  9  5  8  9  7  7
## [1249]  6  8  9  8  8  6  9  9  6 10  6  7  9 10  9  8  9  8 11  8  8 10  5 10
## [1273]  7  6  8  5  9  8  7  8 10  8  8  8  8 10  8  7 11  6  7  7  9  8  6  8
## [1297]  9  9  9 10  6  9  6  7  9  8  7  9  9  6  8 10  9  5  8  7 10  7  7  6
## [1321]  8  6  7  7  9  9  9  9  9  8 10  7  8  7  9  7  7  8  6  9  6  9  9  6
## [1345]  6  9  7  7  9  7  7 11  8  7  7  9  7 10  8  7  7  8  9  6  6  7  8  5
## [1369]  7 10  7  8  7  7  8 10 11  8  6  7  6  7  8  9  7  6  7  7 10  8  8  7
## [1393]  5  7  9  7  8  7  8 10  6  9 11 10  5 10  7  5 11  8 10 10  9  7  9  7
## [1417]  9  7  9 10  6  8  8  8 10  6  7 10  8  8  6  9  6  6  8  7  7 10  8  8
## [1441]  9  6 11 10 10 11  6  7  8  7 11  9  6 10  8  7  6  7  8  8  9  8  9  8
## [1465]  7  8  6  7  7  8  8  9  8  8  7  9  6  7 10  6  7  7  9  8 11  8 10  7
## [1489] 11  9 11  5  8  8 10  8 11  8  7  6  8 11 11  8  9  8  7 11  9  8  7  9
## [1513]  8  8  6  8  8  7  7  7  9  6  7  5  9  8  7 10  8 11  7  6  8  5  7  7
## [1537]  8  9  7  6  8  8  8  7  7  9 11  8  8  7  8  8  8  8  7 10  6  7  8  9
## [1561]  7  8 10  8  8  8  9  7  8  8  9  8  8  9 11  9  7  7  7  9  9  6 11 10
## [1585]  6  9  9  5  8  9  6  8  7 11  9  6  8  6  7  9 10  6  7  9  6 11  7  6
## [1609]  8 10  9  8  8  6 10  6  5  9  7 10  9  8  9  7  6  9 10  9  7  7 11  8
## [1633]  9  8 10  5  7 10 10  7 11  8  7  7  9  8  8  8  9  9 10  7  6  8  9 10
## [1657]  8  6  7  7  8  7  9  6 10  8 10  8  9 10  7 11 10  9  7  9  8  9  9  6
## [1681]  9  7  7  8 11  6 10 10  7  7  7  9  7  9  9  8 10  7 10  8  8  8  6  5
## [1705]  7  5  7  9 10  7  9  7  6  9  9 10  6  7  8 10 10  9  8  6  9  9  7  7
## [1729]  8 11  7  7  9  9 10 10  7  6  7  8  7  7  9 10  6  7  9  9  8  8  8  6
## [1753]  6  7  9  7  7  9 10 11  7 10 10  9  6 11  7 10 10  5  9  7  7  6  7  8
## [1777]  8  6 11 10  7  6  8  9 10  7  9 11  6  8  8  8  6  5  7  8  8  7  9 10
## [1801] 11  9 11 11 10  6 10  7  8 11  8  8  7  7 10  9 10 10  8  8 10  8  6  8
## [1825]  6  6  7  8  6 10  8  9  7  6  8  8  6  9  8 10 10 10  6  7  9  7 10  5
## [1849] 10  8  8 10  7  8 10  8  8  8  8 10  8 10 10 10  7  8 10  7  9  7  7  8
## [1873]  6  7  9  9  7  9  7  8  8  9  9 10  8  7 10 10  9  7  8 10 10 10  9  9
## [1897] 10 10  9  7 10  7  8  7  9  9  7  7  8  8  8  9 10  8 10  9 10  7  8  7
## [1921] 10 10  9  9  9  9 10  8  8  7  8  7 11 10  8  8  8 11  8  6  9  6  8  6
## [1945]  8 10  7  8  9  9  6  7  6  8 10  9  5  6  6  7  8 10  9  5  8  9  9  9
## [1969]  7  8 10 10 10  9  8 10  6  7  9 10 11  9  7  8  9  9  9  8  8  9 11  8
## [1993]  7 10  8  8 10  9  9  9  7  7  9 10  8  6 11  8  7  9 10  8 10  8  8  9
## [2017]  8 10  7  7 10  8 10  9  7 10 10  9  7 10  9  7  7  9 11  8  6  7  7  9
## [2041]  6  6  8  8  9 10  7  7 11  8  6  6 11  6  7  6  8  9  8 10 10  9 10  8
## [2065] 10  7  6  8 10  7  9  8  9  8  8  6 10  9 11  9  6 10  9  8  9  9 10  9
## [2089]  8  8  7 11  7  9  9  6 11  9  7  8  8  7  8  9  9  8  9  8  9  8 10  7
## [2113]  7  9 11 11  9  8  8  8  6 10  7  6  9  7  6 11  7  7  8 10 10  7  8  9
## [2137]  8 11  8  8  6  8  7  6  8  8  7  7 10  9  8  9  9  6  9 10  8 10  7  9
## [2161]  9  8  8  6 10  9  8  7  6  6  7  9 10  9  5  8  8  8  8  6 10  6  6  8
## [2185]  7 11  8  6  8  7  5  8  8  7  5  9  7  8  8  7  8  6  7 10 10  8  9  5
## [2209]  5  5  6  9  9  9 10  8 10  7  9  8  9  7  8  8  8  5  8  8  8  9  8  9
## [2233]  6  8  7  7  8  9  9  8  9  9  8  5 11  7  7 10  7  9  7  6  7  9  9  7
## [2257] 10 10  9  6  7  7  6  8  8  8  7  5  7  7 10  9  7  7  6 10  8  6  9  5
## [2281]  6  7 11 10  7  8 10  7  7  8 10  5  8  5  6  5  6  9  8  9  7  6  7 10
## [2305]  9  9  8  9  8  5  9  7  9  6  9 11  6  6  8 11  8  9  9  8  9  8  6 11
## [2329]  8  7 11  9  8  9  9  7  8  7  7  9  9  8  7  9  7 10 11 10  9  7  7  9
## [2353]  5  8  6 10  7  7 10  9 10  8 10  9  8  7  6 10  6  8  7  9  9  9  9  9
## [2377] 10  9 10 11  9  8  7  9  6  9 10 11  8  9  7  8  9  5  7  7  6  6  7 11
## [2401]  8  7  6  6  9  8  8  5  9  7  9 10  7  8  8 10  8 10  6 11  9  8  7  8
## [2425]  7  9  8  8 10 11  5 10  7  9  9  7  9  8  9  7  9  9  9  7  7  7  9  7
## [2449]  8  7  7  8  7  7  6  8  9  8  6 10  8  7  6 11 10  6  9  8  9  7  7  8
## [2473]  8  7  6 10  6  8 10  7  9  9  9 11  8  9  7  5 10 11  8  8 10 10  6  9
## [2497]  8  8  7  8  8  9 10  5 10 11 11 10 11  8  6  7  7  9  8  8  9 10  8  7
## [2521]  8  8 10  8  8  9  8  8  8  9  8 11  8 10  7  5  9  9  6  8  9  8 11  9
## [2545]  8  8  7  6  6  9  6  9 10  6 10  8  9  9 10 10  7  8  7 11  7  7  7 11
## [2569] 10 10  8  8 10  8  8  8  9  6  7  7  9  7 10  7  9  7  8 10  9  9  9  9
## [2593]  7  9  8  6  8  9 10  8  8  8  9 10  9 11  7  8  5  9  8  9  9  8  7  7
## [2617]  8 10  7  9  8  7  8  7  6  8  8  7  8  9  7  5  7 10 10  7  7  6  8  9
## [2641]  7  9 11  8  5  9  6  6  8  9  8  8  5  8  9  7  7  5  8  7  9  7 11  7
## [2665]  7  6  7 10 10  7  8  9  5 11  9  7  6  6  9  9  9  9  8 10  5  8  8  8
## [2689]  9 10  8  9  6  8  6 11  9  9  7  9  9  9  7  7  8  7  6  7  5  9  9  8
## [2713]  8  7  7 10  6  8  8 10  9  8  9  8  8  7  7  8  9 10  5  9 10 11  8  8
## [2737]  8  9  7  8  5  6 10 11  7  7  7  8  7  7  7  9 10 10  8  7  8  9 11  9
## [2761]  6  6 10  8  9  9  8 10 10  7  6  9  7  9  8  9  8 10  7  9  6 10 10  8
## [2785]  8  8  9  7  7  9  7  6  7  7  7  8 10  6  7  9  8  9 10  6  9  7 10  9
## [2809]  7  9  9  9  9  7  6 10  7  7 11  9  7  7 11  8  5  9 10  7 10  7  6  8
## [2833]  7  7  8  9  8 11 11  7  9 10 11  6 10  7  7  8  9 10  8  8  8  8  8  9
## [2857]  8  9  7  8  7  9 10 10  8 10 10 10  8  8  8  8 11  9  8  6  6  9  8  7
## [2881]  7  8  8  8  9 10  9  8  6  9  9  9 10  6  8  9  7 10  8 11  7 10  6  7
## [2905]  8  5  9  8  8  9  7  7 11  6  8  7  6  9  8  7  9  8  7 10  7  8 10  5
## [2929]  9  9 11  7 10  9  8  5 10  9  7  9 10 11  5  7 10 10  7 10  9  9 10  8
## [2953]  6  8  8  9 11 10  7  8  7  8  9  8  9  8  8  6  9  8  8  7  8 11  8  6
## [2977]  6  9 10  6  8  8  7  8  9  7  8  8  8 10  7  5  8  9  9  8  7  7  9  6
## [3001]  9  8  9  9  7 10  9  8  7  7  9 11  8 10 11  7  8  9 11  9 11  6 11  7
## [3025]  9 10  6  8  6  9  5  9  9  7  9  9  8 10  9 10  7 10  8 10  9  9  9  8
## [3049]  6  8  6  6  9  8  9  7 10  6  9  7 11  7  8  9  9  7  7 10  7  6  5  7
## [3073] 10 10  8 10  9 10  8  7 10  9  7  9  8  8  9  9  9  8  7  8 11  9 11 11
## [3097]  9  7  9 10  8  9  8  8  9  6  9 10 10  8 11  7  7  9 10 10  9  9 10  9
## [3121] 10  7  7  7  8  7 10  6 10  6  7 11  9 11  7  8  8  8  8  8  8  6  8  7
## [3145]  7  7 10 10  6  7  8  6  8  8  9 10  7 10  7  9  6  8  8  9  7  7 10 11
## [3169] 10 11  9  9  9  9 10  9  7  6  9  8 11  7 11  9  9  8  8  6  6 10  7  7
## [3193]  6  7  9  5  7  8  6  8  7  7 10  8 10  9  6  7  7 10 10  6  9  9  6  9
## [3217]  7  8  9  7  9  5 11 10  5 10  9  9  9 10  6  8  9  9 10  5  6  8  9  6
## [3241]  9  7  6  8  9  8  7  7  6  9  9  7  9  7  7  9  7  7  7  6  5  7  8  8
## [3265] 10 10  7  7 11  6  7 10  9  7  9  9  7 11  6  8  7  7  8 10  7  7  9  8
## [3289]  6  7  8  9  8  6 10 10 10  8 11  7  9  6  6  9  7 11 11  5 10  5  8  7
## [3313]  7 11  6  9 11  9  8  7  8 10  7  8  7  6  8 11  8  8  6  8  9  6 11  8
## [3337] 10 10  8  8  9  8 10  7 10  6 11  9  6  6  7  6 11  7  9 10  8  6  8  8
## [3361]  8  9  9  6  8  8  9  9  9  8  7  9 11  7  9  7  9  6  8 10  7  9 11  9
## [3385]  7  7  9  8 11  9  5  8 11  7  8  7 10 10 10  8  8  9  6  9  9  8  8 11
## [3409]  9 11  8  8  9  9  7  9  9  7  8 10  7  8 11  9  8  8  8  9 10  7  8  8
## [3433]  7  8 10  7  9  7 10  7  9  7 10  6 10  9  9  9  7  5 10  6  9 10 10  9
## [3457]  8  7  9  5  8  7  8  8  8 10  6  6  7  9  5  8  9  8  8  8  9  9  9  5
## [3481] 10 10  9  6  6  8  9 11  8  9  9  7  8  5 10  6  9 10  9  8  7  7  8 11
## [3505] 10 10  9  9  7  6  9 10  7  6  9  7 11 11  8  7  9  6  8  9  8 10  6  7
## [3529]  9  6  8  9  8  9  8 10  7  8  7 10  9 10  7  8 10  5  8  7 10  7  7  7
## [3553]  7  8  7 10  8  5  8 11  8  8  9  7  8  6  8  9  7  7  6  9  9  6  8  8
## [3577]  9 10  9  9  6  9 10  8  6 11  6  7 10  9  8  6  8  5  9 10  7  7  6  8
## [3601]  9  8  9  8  7 10  8  7  8  8  7  8  8 11  8 11 11  9  8  6  9  8  6  9
## [3625]  7 10  9  9  9  9  5  7  9  9 10 11  9  8 10  5  9  9 10  7  7 10 10 10
## [3649]  7  8  8 10  5  7 10 10  7  8  7  8 10  6  7  8  9 11  7 10  9 10  8  8
## [3673]  8  8  7  7 11 10  9  9  7  9  9  9 10  7 10  7  8  7  8  5  8  6  8  7
## [3697] 10  8 10  9  8  9  6  9  8  7  6  6 10  9  7  9  9  6  8 11  8  8  8  7
## [3721] 11  8  8 10 10  6  7  9 10  8  9  9  6  6 10  7  8  5  7  8 11  8  9  8
## [3745]  9  8  8  6  7  9  8 10  7  8  8  9  9 10  8  9 10  9 10  6  8  9  8 10
## [3769]  7  7  7  7  5  7  9  8  9 10  8 10  6 10  9  9  9  6  6  9  8  8  7 10
## [3793] 10  6  7  7 11  5  6  6  7  7  9 10  9  6  6  8 11  9 10  7  7  8  8  7
## [3817]  7  7  6  8  9  9 10  6 10  8  7 10  8  8  6  8  8  9  7  9  8  7  9  9
## [3841]  7  9  6 10  9  9 11  9  8  5  7  8  9  8  8  9  7  8  9  7  6 10  8  9
## [3865]  5 11 10 11  7  7 11 10 11 11  9 10  7  6 10  7  7  8 10  7 11 11  5  8
## [3889]  8  7  7  9  7  6  7  9  8  9  6  9  8  9  8  8  6  7  9  9  9  9 10  8
## [3913]  7  7  7  8  9  7  9 11 10 10  7  8  7  7  6  9  6  8  8 10 10  9  9  7
## [3937] 11 11  8  7  5  7  7 10  7  7 10  7  8  8  8 10  9  8  6  8  6  8 10  9
## [3961]  7  5  5  8  8  7 10  8 11  8  6  8  9  6 10  8  8  9  9  7  8  8 11  7
## [3985]  5  7  9 10 11 10 10  5  6  9  6  9  7  8  8  8  6  7 11  8  9  8  6  7
## [4009]  7  9  7 10  7  5  7 10 10  8  6 11 11  7 10  6 11  9 10  7  9  6  8  8
## [4033] 10  5  9  7  8  7  7  9  6  7  7  9  7 10  7  8  9  9  7  9  8  8  8  9
## [4057]  7  8  8  8  7  7  6  8  8  7  6  8  8 10  6  8 11  6  9  5  7  7 10 10
## [4081]  9  8  6  5  9  7  7  9 10  8  7  7 10  7  8  8  6 11  7 10  8  9  9 10
## [4105]  8  9 11  6 10  6  7  5  9  7  9  7  9  8  7  9  8  8 10  7  7 10  5  8
## [4129]  6  7  6  7  8  6  8  8 11 10 10 10 10  6  7  8  6 10 10 10  9  8 10  8
## [4153]  9  9  8  9 10 10  7  6  8  8  6 10  8  9  9  7  9  7  9  6  8  8  8  8
## [4177]  8 10  8 10  9  8  7  7  7 10  6  6  8  5  8  5 10  8  8  7  8 11  6 10
## [4201]  8 10 11  5  7  8  9  6  8  9  8 10  8 10  7 11  9  8  5 10  9  8 10 11
## [4225]  9  8 10  6  9  9  8  9  7  7  6  7  8  7  8 11  8 10  6  7  8  7 10 10
## [4249] 10  6  9  5 10  9  7  5  8  6  8  9 10 10  9  9  6  6 11  9  8  7  7  8
## [4273]  8  5  9  8  9  7  9  7  9  7  6  7  6  7  9  8  5 10  6 11  7 10  5  7
## [4297]  8  6  6  9  9 10 11  8 11  7 10  8 10 11  8  9  8 11 10  6  9  7  6  9
## [4321]  8  8  7  9  7  8  6  5  6  6  8 10  7  8  8  9 10  8  6  8 10  8  8  8
## [4345] 11  8 11  9  8 10  7  7 10  7  7  9  8  6 10 10  8 10  7 11  7  7  8  7
## [4369]  7  8  7  7  8  7 10  7 11  8  6  9  8  6  9  9 10  7  8  6  7 11  6  6
## [4393]  8  8  8  8 10  8  6  8  8 10 10  6  7  8  6  7  7  7  8  7  7  7  9 11
## [4417]  8  9  7  6  7  7  5  8 10 10  9  8  6  7  8  6  7  8 11  9  7  8  9  6
## [4441]  8  7  8  7  8  8 10  8  7  9  8  9  6 11  7  8  6 10  6  6  9  7  8  7
## [4465]  6  6  9  9  9 10 11 10 10  7  6 11  7  8 11  8  7  8 10  8  7 10  9  8
## [4489]  7  7  9  8 10  9  8  7 11  6  9  6  6  6  9  8  8  9  6 11  6  8  8 10
## [4513]  8  9  7  7  8  7  9  9  8  8  7  7  9  7  8  8  8  9  8  8  9  9  9 10
## [4537] 11  7 10  9  8 10 10  8  9  9  7  9  9  8  6  7  8 10  9  5  9 10  8  7
## [4561]  8 11  8  6 10  9 11  9 11  7  9  8  9  9 10  7  7  8  9  6  9 11  8  6
## [4585]  8  8  7  9  5  7  7  6  7 10 11  9  6  9  6  8  6 10 11  6  8  8  8 11
## [4609] 10 10  6  9  7  5  8  6  6  6  8 10  9  9  8  9  8 11  9  8  8  9  8  8
## [4633]  6  9  9  9  9  7  9  7  9  7  6  9 11  5  6  9  7  7  6  7  8  8  7  6
## [4657]  8 11  7  5  6  7  9  9 11  9 11  6  6  6  9  8  8 11  7  8  7 10  8  8
## [4681]  9  9  7  8  8 10  7  7 11 10  8  9  8  6  5  9 10 10  6 11  7 11  7  5
## [4705]  8  8  8 11  7  9  6  8 10  9  6  7 11  8  6  7  6 10 10  8  8  9  8  8
## [4729]  7 10 10  7  9  8  8  9  9  9 11  8  8  8  7  8  7  5  7  9  5  9 10  8
## [4753]  6  8 10  7  7  8  7  7  5 10  8  9  9  6 10  7  9  6  8  9  9  8  9  9
## [4777]  9  7 10  9 11  6  9  8  6  7  9  8  7  7  5  7 10  7  9 10  9  5  8  6
## [4801]  6 10  8  7  9  8  9  8  9  5  7 10  9 10  8  9  7  6  9  7  9  8  9  7
## [4825]  8  5 10  9  8  8  9  9  8 11 11  7 10  6  6  8  8  7  9  7  8  6  5 11
## [4849]  6  9  7  8  9 10 10  7  9  8  8  9  6  8  8 10  7  6  6  6 10  6  9 11
## [4873]  8  6  5  8  7  8  6  7  8  6 11 11  7  7  7  8  9 11 11  5  5  8  8 10
## [4897] 10 11 10  9  8  8 10 11  7 10  6  7  8  5  8  8  7  9  5 10  8  9  9  6
## [4921]  8  5  9  8  9  7  7  8  6  8  7  7  9  7  9  7  9  7  7  9  8  8  7 10
## [4945] 11  9  9  7 11  9  9 11  9  8  7  6  6  7  7  7  9  8  8  9  7  7  8 10
## [4969] 11  7  9  8  7  9  7  8  7  8  9  7  7  9  8  9  6 10  6  8  8  7  7  8
## [4993]  8 10  7  9  8 11  9 10 10 10  8 11  7  6 10  8  8  6 10 11  6  8  6  6
## [5017]  8  8  9  5  9 10 10  8  8  8  8  7 10  9 10  6 11 10  8  9 10  7  8  8
## [5041]  6 10  9  8  9 10  6 10  7  7 11  7  8  8  8 10  7  8 11  6  6  7  8  8
## [5065] 10  9  7  7  7 11  6  8  8 11  8  8  9  9  9  7  8  9  5  8  8  6  8  8
## [5089] 11 11  9  8  8  8  7  7  9  6  6  9  9 10  7  8  9  7  9  9  9  8  6  6
## [5113]  6  9  8  9  7  8  8  9  7  8  9  6  6  7  9  8  7  6  8  9 10  7  9  9
## [5137] 10  9 10  9  9  9  9  8 11  6  9  8  6 11  9  9  7  7 10  8  8  9 11  8
## [5161]  7 10  8  6  5  5 10  8  5  7 10  6  8  8  6  9  7  9  9  6  6  7  7 10
## [5185]  6  6  8  8 10  9  6  9  7 10  7  9  9 10  6  8  7  6  9  8  7  9  6  9
## [5209]  9  7 11 10  5  5  7  8  8  7  9 10  6  7  8  7  9  9  6  8 10  8  6  8
## [5233] 11  8  7  9  6  6  8  9  5  8  6  8  9  6  7  7  8 11  7  8 11  8  9  6
## [5257]  8  8 11  8  6  7  7 11 11  9  7  9  8  5  6  5  6  8  8  9 10  9  9  6
## [5281] 11  9  9  6  8 10 11  6  7  9  8  7  8  9  7  8 10  9  8  9  7 10  9 10
## [5305]  7  7 11  7 10  7 11  9  8  6  7  6  6  9  7  7 10  5  7  8  6  9 11  8
## [5329] 10 10  7  9  9  8  7  7  7  9  6  7  8  7  7  8  8  8  9  8  8 10  8 11
## [5353]  8  7  9 11  8  7  7  8  8  7 10  9  6  8  8  8  7  9  7  8  8  8  8  7
## [5377]  8  6  8  8  8 10  7  9  8  8 10  6  7  8  7 10 11  8 10 10  7 10 11 11
## [5401] 10  9  8  8 10  6 10  6  7  6  8  6  6  9  7  7  7  8 11  9  9  7  9 10
## [5425]  7  6  8  7  9  7  8  7  9  9  6  9  7  8 10  6  6  7  8  8  5  9  8  9
## [5449]  7  8  8  9  7 10  6  9  9  7  7  9  9  9 11  9  7 10  5  9  8  8  7 10
## [5473]  7  7  6  7  6 10  9  8  8  9  7  6  9  9  8  8  7  8  6  8  6  9  8  9
## [5497] 10 10  8  7 11  5  9  8  9  7  7  7  7  6  7  9 10  9 11  9  9 10  9  9
## [5521]  6  7  6  7  8 10  8  5 10  6 10  7  9 10 11  8  7 10  8  9  5  8  8  8
## [5545]  9  9  9  5  6  7  6  9 11  5  6  6  7 11  9  6  8  9  8  7  5  8  9 11
## [5569]  6  9  9  8  9  7  8  8  8  8 11  5  9  7 11  7  7 10  6  8  6  6  7 10
## [5593]  7  7  9  9  8  6  7 11  6 11  7 11  9  6 10 11  9 11  5  8 11  9 11  8
## [5617]  5  9 11  8  5  8  7  9 11  6  7 10 11  8  5  9  7  6  9 10  5  5  7  9
## [5641]  9 10  9 11  9 11 10 10  9  8  9  8  6 10  9  8  7  7 10  9  6  9  6  8
## [5665] 10  8  9  9  6  7  7  7  8  6  9 10  6  9  8 11  7  6 10  6 11 10  8 11
## [5689]  7 11  9  6 11  8  8 10  7  9 10  7 11  8  8  7  7  9  7 10  7  7  9  6
## [5713]  8 10 10 11 10  6 11  5 10  7  9 10 11  8  5  8 11  6  8  7  7  8 11  7
## [5737]  9  8  7 10  8  6  6  7  8  8 11  6  7  7 10  8  8  8 10 10 11 10  5  9
## [5761] 10  9  8  7 10  9  8  7 10 10  7  7  8  7  7  7  7 10  6 11  8  8  8 10
## [5785]  7 11  7 11 11  7  6  8 10  8 10  6  9  9  6 10  8  7  9  6  6  7  7 10
## [5809]  7  6  7  6  7  9  9  6  8 11  8 10  7  8  7  9  6  7  6  9  7  8  8  6
## [5833] 10  9 10  8 11  8  7  9 10 10 10  7  8  7  8  7  8  6  9  6  7  9  7 10
## [5857]  7  6  7  8  9  7  7  9  8  7  8  9  6  9  9  8  6  8 11  7  9 11  8  8
## [5881]  9  7  5  8  9  9 10 10 10  7  7  9 10  6 10  9 10  8  8  9  7  7  8  9
## [5905]  8 11  9 11  8  6  9  7  8  7  7 10 11  6  6  6  9  9  9  8  9  8 11  7
## [5929]  9  9  7  8  8  7  8  9  9  7  5  8 10  7  8  9  9  7  9 10  7  8  9  8
## [5953]  9  8  7  6  9  7  5  7  8  9  8  7  8  7  8  6  8  8  9  8  9  8  8 10
## [5977]  8  5  9  9  8  9  8  9  9  9  8  7  7  9  5  8  9  7  7  6  7  8  8  8
## [6001]  6  6  8  7  9  7  9  8  9  8  9  8 11  9  7 10  9  9  9  8  8  9  8 11
## [6025]  8  7  9  7  9  6  7 10  6 10  8 10 10 10  8  8  9  8  7  7  8 10 10  7
## [6049]  9 10  8  6  9 11  7  5  5  8  9  7  9  8  5  9  6  8  9  9  8  8  8  8
## [6073]  6  7  8  7  8  9  9  8  5  8  8  7  8 11 11  8 10  9  9  5 10 10  7  6
## [6097] 10  8  8  7  9  8  9  8  9  6  6 10  9 11  8  8  7  6  7  8  6  8 11  8
## [6121]  9  8  6  5  7  6 10  8  9 10  6  8  8  9  8  6 10  9  7  7  6  9  6  9
## [6145] 11  7  7  8  9  9  6  6  7  9 10  9  9 11  8  8  7  6  6 11 10  9  9  7
## [6169]  7  7  8 10  7  8  6  8  8 10  8  8  7  9 10  8  9 10  9  9 11  7  8 10
## [6193]  7  7  9 10  9 11  9  6  6  7  8  8 11  8  9  9  8  6  7  9  7  6  6  5
## [6217]  6  6  8  8  8  7 10 10  9  8  9  9  9  6 11  9  6  8  7  6  9  6  8  6
## [6241]  8  8  8  9  8  7  6  9  7  6  9  7 11  6 10  8  9  9 10  7  7  7  9  8
## [6265]  6  9  8  7  8  9  6  9 10  6 10  8 10  5  8  9  8  9  7  6  9  8 11 11
## [6289]  9  7 10  5  7 10 10  8  9 10  9  8  7  6 10  9  6  7  6  8  9 11  8 10
## [6313] 10  8  8  9  6 10  9  7  6  6  8  8 10 10 11  6 11  7  5  6  8  9 10  6
## [6337] 10  8  7  7 11 10  7  8  8  8  8  6  6  8  8  7  7  6  9  7  9  9  7  8
## [6361]  7 10  6  8  9 10  7  9  8  8 10 10  7 11  9  7  7  7  7  7  9  9  9  9
## [6385]  9  7  8  8 10  9  6 10  8  8  6  8  8 10  7  8  9  7  8  7  8  6  8 10
## [6409]  6 10  6  7  8 11  9 10  8 11  6  9  9  7  7  6  6  6 10 11 10  7  7  7
## [6433]  9  8  6  9  9  9  7  9  9  7  9  5  9  9  7  7  5  7  8  8  8  7  9  7
## [6457]  8  8 11  6  8  6  8  8 11  8  9  6  9  8  8  6  7  6  9  9  7 10  9  7
## [6481] 10  7  7  6  5  8  7  7  8  8  8 10  7 11  7 10 11  9  6  9  9  8  8  6
## [6505]  7  6  6  8  7  6  5  8  8  8  7  5  6 10  7  9  7  7  7  6  7 10  6  7
## [6529]  8  7  7 10  9  7  9 10  7  9 11 11  8  9  7  8 10  9  6 11  5  8 10  7
## [6553]  8  8  8  9  9  8  8  9 10  7 10  7  6  9  7  7  9  8 11  8  6  9  8  8
## [6577]  6  9 10  6 11 10  7  8 10 10  8  5  9  8 10 10  8  7 11  9  6  8 11  8
## [6601]  8  8  7  9  8  8  8  7  6 10 11 11  7  7  6  8  8 10  8  7  9  7 10  7
## [6625]  8  9 11  7  9  8  8  7  7  8  9  7  9  6  7  6  7  8  7  6 10  9  8  7
## [6649]  7  6 10  9  8  8 10 10  6 10  9  8  8  8  6  7 10 10 10  9  9  8  7  8
## [6673]  9  9 10  8  8 11  6 10  7 11  7  7  7  9  6  8  8  7  6 11  7  7  9 11
## [6697]  7  8  6  8  8  6  7  5 10  8  9  8  8  6  9  8  7  8  6  9  8  9  6  6
## [6721]  9 10  9  8  7  7  8  8  7  7  7  7 10  7  7  6  7  6  8  6 10  8  9  9
## [6745]  8  6  5  6  7  6  6 11 11 10  7  9  8  7  9  8 10  7  8  9  7  7 11  8
## [6769]  9  8  8  9  6  8  8  7 10  8  7  9  6  7  6 11  6  6  9  6  8  7 10  7
## [6793] 10 10  9  8  7  8 10  9  9  9  8  6  6  7 10  7  7  8  8  9  7  6 10  7
## [6817]  5 10  6  7  6  8 11  7 11  8  7  7  6  8  9  9  6  7  8  7  8  8  8  6
## [6841] 10  7  6  8 10  8  9  8  7  7  9  7  9  8  9  8  8  9  7  8  9 11  6  9
## [6865] 11  9  7  7  5  8 11  7 10  9  6  9 10  7  6  7 11  6  8  8  9  8  9  8
## [6889]  8  7 10  7  8  7  8  7  8  9  7  7  8  8 10  9  7 10  9 10  6  7  7  8
## [6913]  6 10  9  6  9  8 10 10  8  6  6  8 11  8  6  8  8  8  8  6  5  8  7  8
## [6937]  8  8  6  6  9  8  7  8  8  5 10 11  9  9  8  8 10 11  5  6  9 11 10 10
## [6961]  9  9  9  9  8  6  9  6  7  8 10 10  5  7 10  6  7  8  7  8  8 10 10 10
## [6985] 11  5  9 10  8 10  7 10  8  6  6 11  8  5  8  7  6 10  6  8  9  7  6  5
## [7009]  6  5  7  6  6  9  6  5  8  8 10  7  8  8  8  7 11  8  9  8  9 10 10  8
## [7033]  9  8  7 10  8  8  8  8  7  8  7  8  9  8  7  9 10 11  7  8  5 10  7  7
## [7057] 11  8  7  9  9 11  8  9  9 10 10 11  8  9  7  7  9  7  7 10  5  9 10  9
## [7081]  7  9 11  6  8  9  6  7 10  6  7  7  7  8 10 10  6  7  7  9  9  7  8 10
## [7105]  8  8  9 11 11  9  8  7  9  6  8  6  8  8  9 10  8  7  8  8  8  9  8  5
## [7129]  5 10  7  8  6  9  8  7  8  9  6  8  6  9 10 10  8  9  5  9  8  9  7  8
## [7153] 10  5  8  9  8  7  7 11  7  9  6  8  9  9  9 10 11 11  9 10  6  9  8 11
## [7177]  8 10 10 11 10  7  7  8  9  5 11  9  6  5  9  8  5  9 11  9  8  8  9  9
## [7201]  6 10 11 10 10  8  8  5  8  9  6  7  9  7  8  8  9  8  8  9  8  8  9  8
## [7225]  9  8 10  7 10  9  7  2  6 10  5  6  4  6  2  1  2  6  3  7  7  4  9  4
## [7249]  8  2  2  9  3  5  7  9  8  2  4  7  5  9  4  8  8  7  8  4  7  8  9  7
## [7273]  7  4  4  3  5  4  3  1  6  7  8  3  7  4  6  4  5  6  3  8 10  6  8  5
## [7297]  6  4  7  3  7  7  2  7  7  6  4  8  7  5  4  6  5  4  9  3  5  5  9 11
## [7321] 10  6  4  5  6  9  5  5  1  1  4  4  8  2  3  4  9  8  3  6  5  4  2  4
## [7345] 10  7  4  8  8  3  9  2  5  5  3  5  4  1  5  9  3  3  2  5  4  8  2  6
## [7369]  8 10  7  6  3  3  5  4  7  5  7 10  2 10  9  3  1  6  5 10  7  3  9  6
## [7393]  5  9 10  5  6  2  7  9  8  5  8  7  7  3  7  7  4  2  5  6  8  8  6  2
## [7417]  4 10  9  6  4  4  2  8  7 10  3  7  4  4  5  8  3  8  5 10  2  4  7  7
## [7441]  2  7 10  4  5  9 10  9  8 10  6  4  4  9  5  4  7  9  2  2  4  5  5  7
## [7465]  3  7  7  5  8  6  7  4  2 10  4 10  2  9  3  5  1  5  5  4  6  6  4  2
## [7489]  7  6  7  2  4  5  5  9  8  6  2  5  3  7  4  2  4  5  3  5  3  4  8  3
## [7513]  5 10  4  3  7  5  8  6  5  9  7  2  3  8  4  8  4  2  8  3  6  6  3  2
## [7537]  1  6  3  8  5  4  7  8  9  5 11  5  4  4  3  3  2  8  8  7 10  1  7  4
## [7561]  4  4  4 11  7  8  6  4  3  7  6  4  7  8  7  3  8  5  6  9  2  7  6  4
## [7585]  7  4  7  7  5  4  7  6  7  7  7  6  3  7 11  8  7  8  6  5  9  7  3  4
## [7609]  5  3  6  7  5 10  3 11  6  8  2  7  5 10  4 11  2  6  5  8  8  5  8  6
## [7633]  5  2 10  3 11  7  6  5  8 11  5  5  7  1  8  3  5 10  5  5  4  3  5  3
## [7657] 10  8  6 11 10  9  6  7  3  5  4  8  4  3  7  4 11  4  5  4  4  8  5  6
## [7681]  4  5  5 11  3  4  8  6  4  7  5  8  4  4  8  1  5  4  5  5  5  6  3  9
## [7705]  7  8  1  9  4  4  7  7 10  7  4  6  6  5  7  6  3  8  4  5  6  7  5  6
## [7729]  7  6  4  3  4  3  5  7  5  4  4  4  9  5  6  8  5  3  7  6  4  7  2 10
## [7753]  3 11 10  8  5  8  3  6  2  5  1  5  4  4 11  2 10  8  5  9  4  1  5  3
## [7777]  9  4  5  8  3  9  7  9  4  4  7  4  5 10  1  5  9  3  7  5 11  7  7  4
## [7801]  7  5  7  6  3  5  2  6  2  6  4  7  8  5 11  7 10  5  3  2  1  6  2  9
## [7825]  8  7  5  9  4  6  4  4  6  6  6  9  7  2  7  1  6  5  6  6  3  3  8  4
## [7849]  7  8  9  7  7  9  8  8  4  9  4  9  4  9  5  5 11  5  5 10  6  9  6  7
## [7873]  4  3  9  3  4  4  9  7  7  9  8  4 10  2  3  4  4  2  8  4  8  5  6  5
## [7897]  2  5  7  5  2  8  5  9  3  5  8  3  5  5  5  4 10  4  4  4  4  5  5  1
## [7921] 10  2  4  6  7  6  4  2  5  2 11  5  5  4  9  4  3  9 10  6  2  5  6  2
## [7945]  7  6  1  2  4  3  7 11  4  8  6  5 11  3  5  5  4  6  7  4  9  3  3  3
## [7969]  4  8  8  6  4  7 10  7  6  8  9  7  7  3  9  2  6  5  8  7  5  5  8 10
## [7993]  9  3  4  7  5  7  9  4  3  4  7  7  6 10  2  6  6  7  7  8  1  5  6  8
## [8017]  9  8  3  4  5  6  7  9  3  4  2  2  2  4  6  6  5  9  3  9  8  5  9  7
## [8041]  5  9 11  9  5  6  2  4  2  9  6  6  9  8  1  3  9  6  7  5  7  8  3 11
## [8065]  8  3  2  1  2  4  1  3  7 10  3  6  8  1  6  9  7  7 10  4  7  2  8  7
## [8089]  1  5  6  6  8  5  4  4  4 10  9  5  2  7 11 11  1  7  2  3  6  8  4  7
## [8113]  6  9  5  5 10  3  9  3 10 10  5  5 11  7  4  5  9  7  4  6  8  7  3  4
## [8137]  6  5  2  7  1  3  9  1  5  8  1  1  6  7  7  5  9  4  2  8  6  6  5 10
## [8161]  6 11  6  9  1  8  5 11  8  2  9  9  6 10  5  2  8  3  2  7  6  4  1  7
## [8185]  4  8  7  2  4  1  1  4  8  8 11  8  4  7  5  4 11  5  7 11  8  7  5  6
## [8209]  6  2  3  7  6  7  8  9  1  6  7  9  6  3  7  7  5  7  4  3  5  7  9  8
## [8233]  5  6  5  4  9 10  9  5  1  1  8  7  4  5  6  8  9  5  4  5  5  7  8  6
## [8257]  7  7  3  4  5  3  9  4  6  2  1  8  8  4  7  5  6  7  7  8  4  6  8  3
## [8281]  7  4  6  3  7  1  7  4  6 11  3  5  8  6  1  5  9  7  8  4  6 11  6  4
## [8305]  9  4  8  6  1  7 10  7  9  6  2  7  6  1  2  4  2  6  3  8  4  7  1  6
## [8329]  3  5  8  6  6  8  6  5  6  8  5  8  1  8  6  6  9  7  6  9  5  2  5  6
## [8353]  8  5  9  8  6  6  6  9  6  7  4  7  7  8  7  3  9  4  6  1  6  8  6  9
## [8377]  8  4  5  4  8  1  5  5  2  7  9 11  2  7  9  6  4  7  7  2  4  1  6  9
## [8401]  4  6  6  8  5  5  5  7  9  5  2  5  4  5  6  1  5  5  7  8  5  3  5  6
## [8425]  6  6  2  5  7  1 10  6  1  8  7  8  8  5  1  4  5 10  5  6  3 10  5  8
## [8449]  7  6  1  8  9  9 10  2  5  6 10  6  3  5  6  8  6  8  7  3  2  6  1  4
## [8473]  9 11  6  2  2  9  2  5  1  3  4  3 10  4  7  9  4  1  4  6  1  2  3  8
## [8497] 10  4  4  3  5  5  8  7  6  1  9  3 10  5  3  5  4  6  4 10  9 11  7  6
## [8521] 10  5  5  4  5  4  8  8  4  4  4  6  5  5  1  3  9 10  2  6  4  3  6  1
## [8545]  6  3  2  3  8  9  7  9  6  7  7  3  5  1  9  9  8  6  7  6  4  2  5  5
## [8569]  5  6  6  6  4  5  7  5  4  2 10  4  9  3  7  4  6  6  6  3  8  9  2 10
## [8593]  8  5  5  4  6  3  3  5  5  6  6  1  5  4  2  7 10  6  4  5  7  3  2  2
## [8617]  3  2  5  7  1  2  6  9  6  6  5  6  4  1  3  6  4  7  6  7  6  9  3  2
## [8641]  5 11  6  1 10  8 10  5  6  4  7  4  3  9  5  3  5  9  3  7  5  4  9  3
## [8665]  6 10  1  7  9  7  4  6  3  8  3  5  6  8  7  4  6 10  4  4 11  2  4  7
## [8689]  6  8  8  5  2  2  4  4  9  8  8  2  6  5  7  5  3  6  3  3  2  2  1  9
## [8713]  7  6 11  5  8  6 10  6  9  9  1  7  9  8  5  7 11  4  6  2  7  4  3  4
## [8737]  2  9  9  6  2  9  6 10  4  9  3  5  3  1  3  1 11  9 10  8  7  8  6  3
## [8761]  3  1  4  5  9  6  2  4  2  2  9  7  3  4  6  3  8  9  5  3 10  7  6  6
## [8785]  4  6  5  7  4  6  6  7 11  9  2  5  4  5  9  4  8  5  4  7  2  4  7  2
## [8809]  4  7  6  9  2  1  3  8  3  6  7  4  8  2  7 11  7  6 11  4  5  5  5  7
## [8833]  2  7  5  1  6  5  8  4  4  1 10  6  5  7  9 11  2  4  8  2  4  6 11  9
## [8857]  3  5  4  7  5  3  9  6  5  8  8  3  6  9  3 10  6  4  3  8  6 10  6  6
## [8881]  6  3  2  6  5  7  8  5  7  2  4  4  5  6  6  5  5  4  8  9  5 11  5  4
## [8905]  9  4  4  3  4  6  8  6  2  8  9  4  6  7  7  5  5  8  7  7  8 10  8  2
## [8929]  2  9  1  8  3  4  7  5  8  7 10  6  1  7  9  9  6  8 11  2  5  7 11  6
## [8953]  4 10  6 10  9  4  7  5 11  5  4 11  9  4  3  5  7  5  3  1  3  2  6  7
## [8977]  6  5  7  5  4  3  7  5  5  9  7  5  8  8  3  6  4  8  4  3  7  8  7  7
## [9001]  3  4  7  4  9  7  1  1  7  1  5  4  4  7  5  4 11  5  1  8  1  3  4  5
## [9025]  5  6 10  2  7  2  7  7  5  5  3  5  5  5 11  4  3 11  9  3  3  5  5  8
## [9049]  7  5  7  9  9  8  9  2  4  5  5  7 11  5 11 11  4 11  5  3  9  7 11  4
## [9073]  8  6  6  8  3  5  3  6  4  8  3  3  2  2  6  8  8  2  5  6  3 10  8  4
## [9097]  3  7  7  4  4  7  6  5  4  2  7  3  8  3  5  3  7  9  1  4  5  8  5  9
## [9121]  6  4  3  2  6  3  6  6  2 10  7  1  8  6  2  3  4  9  4 10  7  5  5  5
## [9145]  6  7  8  6  2  4  6  4  2  3  7  5  6 10  6  9  6  7  5  6  6  3  5  1
## [9169]  4  8  7  5  9  7  2  3  5  4  4  2  4  4  6  6  9 11  5  6  1  6  6  4
## [9193]  6  5  8 10  8  4  9  2 11  5  5  9  2  9  5  3  7  2  4  7  2  7  9  9
## [9217]  7  8  7  2  6  5  5  7  8  4  5  4  9  6  4  7  6  3  3 11  6  8  6  5
## [9241]  9  3  5  8  3  4  4  3  9  3  6  2  5  8  3  6  4  6  7  7 11  8  6  8
## [9265]  3  6 11  7  4 11  7  7  4  5  4  1  6  4  2  4  8 11  1  4  6  2  3  9
## [9289]  6  4  3  7  6 10  7  9  5  2  5  4  4  4 10  3  6  8  2  4  2  6  6  8
## [9313]  2 10  4  6  9  1  3 10  8  5  8  7  8  4  5  7 10  9  7  4  1  7  8  5
## [9337]  5  4  7  3  1  3  6  5  5  9  7  6  3  2  6  2  8  7  9  5  7  4  5  3
## [9361]  4  8  4  6  4  6  3  8  4  5  5  9  6  5  9  6  2  6  7  9  6  8  5  3
## [9385]  3  4  6  5  1  8  1  5  5  5  5  6  7  6  6  9  9  5  3  2  5  2  5  4
## [9409]  3  5  7  3  6  6  1  7 10  7  6  5  4  9  3  7  9  1  6  6  5  3  6  4
## [9433]  8  5  5  2  6  7  1  4  3  6  2 10  7  9 10  1  5  8  4 10  5  2  7  5
## [9457]  7  6  2  5  5  5  1  6  4  8  6  5  3  2  4  6  1  8  5  2 11 10  7  2
## [9481]  4  7  5  7  2  9  2 11  5  3  7  8  1  6  4  6  6 11  7  6  8  6  5  4
## [9505]  7  5  4  8  1  7  9  9 10  1  3  7  7  1 11  7  7  9  7  5  1  3  5  1
## [9529]  1  4  5  3  7  9  7  3  4  4  6  3  6  3  3  8  7  2  9  1  6  2  9  6
## [9553]  5  7  7  2  9  9  3  8  4  4  7  6  4  7 10  9  3  8  5  1  9  4  2  3
## [9577]  6  9  6  7 10  6  4  2  9  5  3  7  5  8  5  5  6  4  7  1  5  6  9  7
## [9601]  7  2  7  6  1  1  1  5  7  9  5  8  3  6  7  9  9  6  4  5  6 10  4  5
## [9625]  3  3  7  5  2  4  2  4  8  3  1  5  7  2  5  4  2  3  5  8  8  8  2  3
## [9649]  3  2  9  7  8  6 11  3  9  5  4  2  5 11  2  2  6  8  5  8  6  2  8  4
## [9673]  7  2  2  4 10  2  2  9  7  4  5  9  5  6  7  6  3  3 11  5  6  8  5  3
## [9697]  4  8  2  5  7  3  6  6  9  9  4  6  7  4  3  5  5  4  7 10  4  8  3  7
## [9721]  9  7  8  9  6  6  3  6  4 11  8  4  2  8  2  2  6  3  3  3  8  8  4  6
## [9745] 11  5  8  3  7  4  4  9  3  5  9  5  7  7  6 10  7  4  9  1  7  3  1  3
## [9769]  7  9  2 10  9  3  9 10  5  6  4  3  3  2  4  7  8  6  5  6  8  2  8  8
## [9793]  9  8  6  2  4  7  7  2  6  5  6  3  6 10  2  3  6  8  7  6  7  3  5  8
## [9817]  5  4  6  6  8  1  3  1  4  1  3  7  7  5 10  6  3  3  7  5  3  4 10  8
## [9841]  2  4  3  8  1  7  7  9  3  4 10  7 10  6  4  7  3  5  6  4  7  7 11  4
## [9865]  3  2  2  7  8  7  4  7  6  7  5  2  6  3  7  2  5  4  6  3  5  2  4  4
## [9889]  6  5 10  2  8  5  5  4  5  4  7  6  3 11  2  5 11  4  6  5  2  1  3 10
## [9913]  6  6  6  9  2 11  6  4  7  5  1  8  5 11 11  6  4  4  4  5  8  3  5  2
## [9937]  3  8  9  5  4  8  5  8  1 10  8 10
length(calgary_trans)
## [1] 9948

High satisfaction with services such as Service311, Parks, and Spring Cleaning appeared most frequently, indicating that positive ratings dominated the transactions.

9. EDA on Transactions

Before mining rules, I examined item frequencies to understand which satisfaction levels appear most often. This also helps guide the choice of support thresholds.

itemFrequency(calgary_trans, type = "relative")
##      LandUsePlanning_high       LandUsePlanning_low                Parks_high 
##                0.49477282                0.13419783                0.68747487 
##                 Parks_low RecreationFacilities_high  RecreationFacilities_low 
##                0.03779654                0.59026940                0.06192199 
##   RoadInfrastructure_high    RoadInfrastructure_low      RoadMaintenance_high 
##                0.52392441                0.10906715                0.48361480 
##       RoadMaintenance_low           Service311_high            Service311_low 
##                0.20948934                0.70918778                0.04624045 
##          SnowRemoval_high           SnowRemoval_low       SocialServices_high 
##                0.52020507                0.19018898                0.51216325 
##        SocialServices_low       SpringCleaning_high        SpringCleaning_low 
##                0.09137515                0.65068355                0.05699638 
##      TransitPlanning_high       TransitPlanning_low       TransitService_high 
##                0.51306795                0.12937274                0.58604745 
##        TransitService_low 
##                0.09811017
itemFrequencyPlot(
  calgary_trans,
  topN = 20,
  type = "relative"
)

itemFrequencyPlot(
  calgary_trans,
  topN = 20,
  type = "absolute"
)

After identifying the most frequent satisfaction items, I focused on these items to see how they appeared together within the same responses. I then used cross tables to examine co-occurrence in terms of counts, support, and lift. Since some items appear far more often than others, I limited the next step to the ten most frequent items.

top_items <- names(sort(itemFrequency(calgary_trans), decreasing = TRUE)[1:10])
calgary_top <- calgary_trans[, top_items]

crossTable(calgary_top, measure = "count")
##                           Service311_high Parks_high SpringCleaning_high
## Service311_high                      7055       5724                4358
## Parks_high                           5724       6839                4178
## SpringCleaning_high                  4358       4178                6473
## RecreationFacilities_high            5168       5244                3411
## TransitService_high                  3804       3590                4952
## RoadInfrastructure_high              3288       3113                4733
## SnowRemoval_high                     3239       3074                4727
## TransitPlanning_high                 3195       3006                4610
## SocialServices_high                  4727       4723                2783
## LandUsePlanning_high                 4614       4580                2662
##                           RecreationFacilities_high TransitService_high
## Service311_high                                5168                3804
## Parks_high                                     5244                3590
## SpringCleaning_high                            3411                4952
## RecreationFacilities_high                      5872                2895
## TransitService_high                            2895                5830
## RoadInfrastructure_high                        2438                4519
## SnowRemoval_high                               2415                4459
## TransitPlanning_high                           2336                4617
## SocialServices_high                            4501                2322
## LandUsePlanning_high                           4412                2191
##                           RoadInfrastructure_high SnowRemoval_high
## Service311_high                              3288             3239
## Parks_high                                   3113             3074
## SpringCleaning_high                          4733             4727
## RecreationFacilities_high                    2438             2415
## TransitService_high                          4519             4459
## RoadInfrastructure_high                      5212             4356
## SnowRemoval_high                             4356             5175
## TransitPlanning_high                         4398             4238
## SocialServices_high                          1926             1875
## LandUsePlanning_high                         1804             1743
##                           TransitPlanning_high SocialServices_high
## Service311_high                           3195                4727
## Parks_high                                3006                4723
## SpringCleaning_high                       4610                2783
## RecreationFacilities_high                 2336                4501
## TransitService_high                       4617                2322
## RoadInfrastructure_high                   4398                1926
## SnowRemoval_high                          4238                1875
## TransitPlanning_high                      5104                1830
## SocialServices_high                       1830                5095
## LandUsePlanning_high                      1722                4279
##                           LandUsePlanning_high
## Service311_high                           4614
## Parks_high                                4580
## SpringCleaning_high                       2662
## RecreationFacilities_high                 4412
## TransitService_high                       2191
## RoadInfrastructure_high                   1804
## SnowRemoval_high                          1743
## TransitPlanning_high                      1722
## SocialServices_high                       4279
## LandUsePlanning_high                      4922
crossTable(calgary_top, measure = "support")
##                           Service311_high Parks_high SpringCleaning_high
## Service311_high                 0.7091878  0.5753920           0.4380780
## Parks_high                      0.5753920  0.6874749           0.4199839
## SpringCleaning_high             0.4380780  0.4199839           0.6506836
## RecreationFacilities_high       0.5195014  0.5271411           0.3428830
## TransitService_high             0.3823884  0.3608766           0.4977885
## RoadInfrastructure_high         0.3305187  0.3129272           0.4757740
## SnowRemoval_high                0.3255931  0.3090068           0.4751709
## TransitPlanning_high            0.3211701  0.3021713           0.4634097
## SocialServices_high             0.4751709  0.4747688           0.2797547
## LandUsePlanning_high            0.4638118  0.4603940           0.2675915
##                           RecreationFacilities_high TransitService_high
## Service311_high                           0.5195014           0.3823884
## Parks_high                                0.5271411           0.3608766
## SpringCleaning_high                       0.3428830           0.4977885
## RecreationFacilities_high                 0.5902694           0.2910133
## TransitService_high                       0.2910133           0.5860474
## RoadInfrastructure_high                   0.2450744           0.4542622
## SnowRemoval_high                          0.2427624           0.4482308
## TransitPlanning_high                      0.2348211           0.4641134
## SocialServices_high                       0.4524528           0.2334138
## LandUsePlanning_high                      0.4435062           0.2202453
##                           RoadInfrastructure_high SnowRemoval_high
## Service311_high                         0.3305187        0.3255931
## Parks_high                              0.3129272        0.3090068
## SpringCleaning_high                     0.4757740        0.4751709
## RecreationFacilities_high               0.2450744        0.2427624
## TransitService_high                     0.4542622        0.4482308
## RoadInfrastructure_high                 0.5239244        0.4378770
## SnowRemoval_high                        0.4378770        0.5202051
## TransitPlanning_high                    0.4420989        0.4260153
## SocialServices_high                     0.1936068        0.1884801
## LandUsePlanning_high                    0.1813430        0.1752111
##                           TransitPlanning_high SocialServices_high
## Service311_high                      0.3211701           0.4751709
## Parks_high                           0.3021713           0.4747688
## SpringCleaning_high                  0.4634097           0.2797547
## RecreationFacilities_high            0.2348211           0.4524528
## TransitService_high                  0.4641134           0.2334138
## RoadInfrastructure_high              0.4420989           0.1936068
## SnowRemoval_high                     0.4260153           0.1884801
## TransitPlanning_high                 0.5130680           0.1839566
## SocialServices_high                  0.1839566           0.5121632
## LandUsePlanning_high                 0.1731001           0.4301367
##                           LandUsePlanning_high
## Service311_high                      0.4638118
## Parks_high                           0.4603940
## SpringCleaning_high                  0.2675915
## RecreationFacilities_high            0.4435062
## TransitService_high                  0.2202453
## RoadInfrastructure_high              0.1813430
## SnowRemoval_high                     0.1752111
## TransitPlanning_high                 0.1731001
## SocialServices_high                  0.4301367
## LandUsePlanning_high                 0.4947728
crossTable(calgary_top, measure = "lift")
##                           Service311_high Parks_high SpringCleaning_high
## Service311_high                        NA  1.1801733           0.9493369
## Parks_high                      1.1801733         NA           0.9388712
## SpringCleaning_high             0.9493369  0.9388712                  NA
## RecreationFacilities_high       1.2410098  1.2990319           0.8927417
## TransitService_high             0.9200485  0.8957134           1.3053959
## RoadInfrastructure_high         0.8895414  0.8687961           1.3956042
## SnowRemoval_high                0.8825501  0.8640456           1.4038006
## TransitPlanning_high            0.8826712  0.8566856           1.3880990
## SocialServices_high             1.3082182  1.3483944           0.8394584
## LandUsePlanning_high            1.3218274  1.3535274           0.8311829
##                           RecreationFacilities_high TransitService_high
## Service311_high                           1.2410098           0.9200485
## Parks_high                                1.2990319           0.8957134
## SpringCleaning_high                       0.8927417           1.3053959
## RecreationFacilities_high                        NA           0.8412590
## TransitService_high                       0.8412590                  NA
## RoadInfrastructure_high                   0.7924631           1.4794666
## SnowRemoval_high                          0.7905995           1.4702607
## TransitPlanning_high                      0.7753752           1.5435348
## SocialServices_high                       1.4966304           0.7776519
## LandUsePlanning_high                      1.5186008           0.7595703
##                           RoadInfrastructure_high SnowRemoval_high
## Service311_high                         0.8895414        0.8825501
## Parks_high                              0.8687961        0.8640456
## SpringCleaning_high                     1.3956042        1.4038006
## RecreationFacilities_high               0.7924631        0.7905995
## TransitService_high                     1.4794666        1.4702607
## RoadInfrastructure_high                        NA        1.6066042
## SnowRemoval_high                        1.6066042               NA
## TransitPlanning_high                    1.6446592        1.5961574
## SocialServices_high                     0.7215118        0.7074284
## LandUsePlanning_high                    0.6995621        0.6807399
##                           TransitPlanning_high SocialServices_high
## Service311_high                      0.8826712           1.3082182
## Parks_high                           0.8566856           1.3483944
## SpringCleaning_high                  1.3880990           0.8394584
## RecreationFacilities_high            0.7753752           1.4966304
## TransitService_high                  1.5435348           0.7776519
## RoadInfrastructure_high              1.6446592           0.7215118
## SnowRemoval_high                     1.5961574           0.7074284
## TransitPlanning_high                        NA           0.7000548
## SocialServices_high                  0.7000548                  NA
## LandUsePlanning_high                 0.6818937           1.6974315
##                           LandUsePlanning_high
## Service311_high                      1.3218274
## Parks_high                           1.3535274
## SpringCleaning_high                  0.8311829
## RecreationFacilities_high            1.5186008
## TransitService_high                  0.7595703
## RoadInfrastructure_high              0.6995621
## SnowRemoval_high                     0.6807399
## TransitPlanning_high                 0.6818937
## SocialServices_high                  1.6974315
## LandUsePlanning_high                        NA

Looking at the cross tables, many city services related to everyday operations tend to appear together. For example, road infrastructure, snow removal, spring cleaning, and transit-related services often co-occur within the same responses. The lift values for several of these pairs are above 1, which suggests that these combinations are not random and that people often evaluate these services as a group.

On the other hand, services such as social services and land use planning show weaker links with operational services. This suggests that respondents may be thinking about these areas separately rather than as part of the same overall experience.

10. Mining Frequent Itemsets

I then used the Eclat algorithm to find frequent itemsets in the data. This step helped me see which service satisfaction levels tended to appear together across respondents before moving on to association rules.

freq_itemsets <- eclat(
  calgary_trans,
  parameter = list(supp = 0.05, maxlen = 3)
)
## Eclat
## 
## parameter specification:
##  tidLists support minlen maxlen            target  ext
##     FALSE    0.05      1      3 frequent itemsets TRUE
## 
## algorithmic control:
##  sparse sort verbose
##       7   -2    TRUE
## 
## Absolute minimum support count: 497 
## 
## create itemset ... 
## set transactions ...[22 item(s), 9948 transaction(s)] done [0.00s].
## sorting and recoding items ... [20 item(s)] done [0.00s].
## creating bit matrix ... [20 row(s), 9948 column(s)] done [0.00s].
## writing  ... [379 set(s)] done [0.00s].
## Creating S4 object  ... done [0.00s].
summary(freq_itemsets)
## set of 379 itemsets
## 
## most frequent items:
##                Parks_high           Service311_high RecreationFacilities_high 
##                        85                        85                        83 
##      LandUsePlanning_high       SocialServices_high                   (Other) 
##                        82                        82                       576 
## 
## element (itemset/transaction) length distribution:sizes
##   1   2   3 
##  20 104 255 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    2.00    3.00    2.62    3.00    3.00 
## 
## summary of quality measures:
##     support            count     
##  Min.   :0.05016   Min.   : 499  
##  1st Qu.:0.09278   1st Qu.: 923  
##  Median :0.15149   Median :1507  
##  Mean   :0.20311   Mean   :2021  
##  3rd Qu.:0.26830   3rd Qu.:2669  
##  Max.   :0.70919   Max.   :7055  
## 
## includes transaction ID lists: FALSE 
## 
## mining info:
##           data ntransactions support
##  calgary_trans          9948    0.05
##                                                                    call
##  eclat(data = calgary_trans, parameter = list(supp = 0.05, maxlen = 3))
inspect(sort(freq_itemsets, by = "support")[1:15])
##      items                          support count
## [1]  {Service311_high}            0.7091878  7055
## [2]  {Parks_high}                 0.6874749  6839
## [3]  {SpringCleaning_high}        0.6506836  6473
## [4]  {RecreationFacilities_high}  0.5902694  5872
## [5]  {TransitService_high}        0.5860474  5830
## [6]  {Parks_high,                                
##       Service311_high}            0.5753920  5724
## [7]  {Parks_high,                                
##       RecreationFacilities_high}  0.5271411  5244
## [8]  {RoadInfrastructure_high}    0.5239244  5212
## [9]  {SnowRemoval_high}           0.5202051  5175
## [10] {RecreationFacilities_high,                 
##       Service311_high}            0.5195014  5168
## [11] {TransitPlanning_high}       0.5130680  5104
## [12] {SocialServices_high}        0.5121632  5095
## [13] {SpringCleaning_high,                       
##       TransitService_high}        0.4977885  4952
## [14] {LandUsePlanning_high}       0.4947728  4922
## [15] {Parks_high,                                
##       RecreationFacilities_high,                 
##       Service311_high}            0.4839164  4814

The results are dominated by high satisfaction items. Services like 311, parks, spring cleaning, recreation facilities, and transit services appear very frequently on their own, which suggests that positive evaluations are common across the dataset. This is also reflected in the high support values for single-item itemsets.

When looking at combinations, many frequent itemsets involve everyday city services appearing together. For example, parks, recreation facilities, and 311 services often co-occur, both as pairs and as three-item combinations. This suggests that respondents who rate one of these services highly often rate the others highly as well.

At this stage, the analysis was still exploratory, since frequent itemsets only show co-occurrence and do not indicate direction. To understand which service ratings tend to lead to others, I moved on to association rule mining using Apriori.

11. Generating Association Rules

I applied the Apriori algorithm to generate association rules using relatively loose thresholds for support and confidence. I did this on purpose to avoid being too restrictive at the start and to see a wider range of possible patterns in the data.

rules <- apriori(
  calgary_trans,
  parameter = list(support = 0.04, confidence = 0.6, minlen = 2, maxlen = 3))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##         0.6    0.1    1 none FALSE            TRUE       5    0.04      2
##  maxlen target  ext
##       3  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 397 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[22 item(s), 9948 transaction(s)] done [0.00s].
## sorting and recoding items ... [21 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 3
##  done [0.00s].
## writing ... [649 rule(s)] done [0.00s].
## creating S4 object  ... done [0.00s].

With a minimum support of 4% and confidence of 60%, the algorithm produced 649 rules involving combinations of two or three items. This indicates that there are many recurring co-evaluation patterns across services once direction is taken into account.

I inspected the rules sorted by support, confidence, and lift to see how different types of patterns emerge.

inspect(sort(rules, by = "support")[1:10])
##      lhs                             rhs                           support confidence  coverage     lift count
## [1]  {Parks_high}                 => {Service311_high}           0.5753920  0.8369645 0.6874749 1.180173  5724
## [2]  {Service311_high}            => {Parks_high}                0.5753920  0.8113395 0.7091878 1.180173  5724
## [3]  {RecreationFacilities_high}  => {Parks_high}                0.5271411  0.8930518 0.5902694 1.299032  5244
## [4]  {Parks_high}                 => {RecreationFacilities_high} 0.5271411  0.7667788 0.6874749 1.299032  5244
## [5]  {RecreationFacilities_high}  => {Service311_high}           0.5195014  0.8801090 0.5902694 1.241010  5168
## [6]  {Service311_high}            => {RecreationFacilities_high} 0.5195014  0.7325301 0.7091878 1.241010  5168
## [7]  {TransitService_high}        => {SpringCleaning_high}       0.4977885  0.8493997 0.5860474 1.305396  4952
## [8]  {SpringCleaning_high}        => {TransitService_high}       0.4977885  0.7650239 0.6506836 1.305396  4952
## [9]  {Parks_high,                                                                                             
##       RecreationFacilities_high}  => {Service311_high}           0.4839164  0.9180015 0.5271411 1.294441  4814
## [10] {RecreationFacilities_high,                                                                              
##       Service311_high}            => {Parks_high}                0.4839164  0.9315015 0.5195014 1.354961  4814
inspect(sort(rules, by = "confidence")[1:10])
##      lhs                            rhs                       support confidence   coverage     lift count
## [1]  {RoadMaintenance_high,                                                                               
##       SocialServices_low}        => {SpringCleaning_high}  0.06272618  0.9826772 0.06383193 1.510223   624
## [2]  {RecreationFacilities_low,                                                                           
##       SnowRemoval_high}          => {SpringCleaning_high}  0.04232006  0.9813520 0.04312425 1.508186   421
## [3]  {RoadInfrastructure_high,                                                                            
##       SocialServices_low}        => {TransitPlanning_high} 0.06292722  0.9811912 0.06413349 1.912400   626
## [4]  {RoadInfrastructure_high,                                                                            
##       SocialServices_low}        => {SpringCleaning_high}  0.06292722  0.9811912 0.06413349 1.507939   626
## [5]  {RoadMaintenance_high,                                                                               
##       SnowRemoval_high}          => {SpringCleaning_high}  0.41495778  0.9809886 0.42299960 1.507628  4128
## [6]  {LandUsePlanning_high,                                                                               
##       SocialServices_high}       => {Service311_high}      0.42108967  0.9789670 0.43013671 1.380406  4189
## [7]  {SnowRemoval_high,                                                                                   
##       SocialServices_low}        => {SpringCleaning_high}  0.06312827  0.9781931 0.06453559 1.503332   628
## [8]  {LandUsePlanning_low,                                                                                
##       SnowRemoval_high}          => {SpringCleaning_high}  0.09509449  0.9772727 0.09730599 1.501917   946
## [9]  {LandUsePlanning_high,                                                                               
##       TransitPlanning_low}       => {Parks_high}           0.08082027  0.9769137 0.08273020 1.421017   804
## [10] {RoadMaintenance_high,                                                                               
##       SocialServices_low}        => {TransitService_high}  0.06232409  0.9763780 0.06383193 1.666039   620
inspect(sort(rules, by = "lift")[1:10])
##      lhs                             rhs                       support confidence   coverage     lift count
## [1]  {RoadInfrastructure_low,                                                                              
##       SnowRemoval_low}            => {RoadMaintenance_low}  0.04111379  0.7687970 0.05347809 3.669862   409
## [2]  {LandUsePlanning_high,                                                                                
##       RoadInfrastructure_low}     => {RoadMaintenance_low}  0.04694411  0.6908284 0.06795336 3.297678   467
## [3]  {RoadInfrastructure_low}     => {RoadMaintenance_low}  0.07529152  0.6903226 0.10906715 3.295263   749
## [4]  {RoadInfrastructure_low,                                                                              
##       SocialServices_high}        => {RoadMaintenance_low}  0.04704463  0.6892489 0.06825493 3.290138   468
## [5]  {RoadInfrastructure_low,                                                                              
##       Service311_high}            => {RoadMaintenance_low}  0.05579011  0.6843403 0.08152392 3.266707   555
## [6]  {Parks_high,                                                                                          
##       RoadInfrastructure_low}     => {RoadMaintenance_low}  0.05518697  0.6836862 0.08071974 3.263584   549
## [7]  {RecreationFacilities_high,                                                                           
##       RoadInfrastructure_low}     => {RoadMaintenance_low}  0.05076397  0.6833559 0.07428629 3.262008   505
## [8]  {RoadInfrastructure_high,                                                                             
##       SocialServices_low}         => {RoadMaintenance_high} 0.06222356  0.9702194 0.06413349 2.006182   619
## [9]  {LandUsePlanning_low,                                                                                 
##       TransitPlanning_high}       => {RoadMaintenance_high} 0.09207881  0.9631966 0.09559710 1.991661   916
## [10] {LandUsePlanning_low,                                                                                 
##       RoadInfrastructure_high}    => {RoadMaintenance_high} 0.09278247  0.9614583 0.09650181 1.988066   923

Rules with the highest support mainly involve highly rated services such as parks, 311 services, recreation facilities, and transit. These combinations appear very often and reflect common positive evaluations across respondents.

When sorting by confidence, the strongest rules show cases where certain service ratings almost always lead to another. Many of these involve road maintenance, snow removal, and spring cleaning, with confidence values close to 1.

Rules ranked by lift highlight more specific relationships, especially around low ratings. In particular, low satisfaction with road infrastructure is strongly linked to low road maintenance, standing out as a non-random association.

12. Refining and Interpreting Association Rules

After generating the full set of rules, I removed redundant ones to avoid repeating the same information in different forms. This made the rule set easier to work with and interpret.

rules_nr <- rules[!is.redundant(rules)]

is.maximal(rules_nr)
##                                         {Parks_high,SpringCleaning_low} 
##                                                                    TRUE 
##                                    {Service311_high,SpringCleaning_low} 
##                                                                    TRUE 
##                         {RecreationFacilities_low,RoadMaintenance_high} 
##                                                                   FALSE 
##                         {RecreationFacilities_low,TransitPlanning_high} 
##                                                                   FALSE 
##                             {RecreationFacilities_low,SnowRemoval_high} 
##                                                                   FALSE 
##                      {RecreationFacilities_low,RoadInfrastructure_high} 
##                                                                   FALSE 
##                          {RecreationFacilities_low,TransitService_high} 
##                                                                   FALSE 
##                          {RecreationFacilities_low,SpringCleaning_high} 
##                                                                   FALSE 
##                               {RoadMaintenance_high,SocialServices_low} 
##                                                                   FALSE 
##                               {SocialServices_low,TransitPlanning_high} 
##                                                                   FALSE 
##                                   {SnowRemoval_high,SocialServices_low} 
##                                                                   FALSE 
##                            {RoadInfrastructure_high,SocialServices_low} 
##                                                                   FALSE 
##                                {SocialServices_low,TransitService_high} 
##                                                                   FALSE 
##                                {SocialServices_low,SpringCleaning_high} 
##                                                                   FALSE 
##                               {LandUsePlanning_high,TransitService_low} 
##                                                                   FALSE 
##                                {SocialServices_high,TransitService_low} 
##                                                                   FALSE 
##                          {RecreationFacilities_high,TransitService_low} 
##                                                                   FALSE 
##                                         {Parks_high,TransitService_low} 
##                                                                   FALSE 
##                                    {Service311_high,TransitService_low} 
##                                                                   FALSE 
##                            {RoadInfrastructure_low,RoadMaintenance_low} 
##                                                                   FALSE 
##                           {LandUsePlanning_high,RoadInfrastructure_low} 
##                                                                   FALSE 
##                            {RoadInfrastructure_low,SocialServices_high} 
##                                                                   FALSE 
##                      {RecreationFacilities_high,RoadInfrastructure_low} 
##                                                                   FALSE 
##                                     {Parks_high,RoadInfrastructure_low} 
##                                                                   FALSE 
##                                {RoadInfrastructure_low,Service311_high} 
##                                                                   FALSE 
##                              {LandUsePlanning_high,TransitPlanning_low} 
##                                                                   FALSE 
##                               {SocialServices_high,TransitPlanning_low} 
##                                                                   FALSE 
##                         {RecreationFacilities_high,TransitPlanning_low} 
##                                                                   FALSE 
##                                        {Parks_high,TransitPlanning_low} 
##                                                                   FALSE 
##                                   {Service311_high,TransitPlanning_low} 
##                                                                   FALSE 
##                              {LandUsePlanning_low,RoadMaintenance_high} 
##                                                                   FALSE 
##                              {LandUsePlanning_low,TransitPlanning_high} 
##                                                                   FALSE 
##                                  {LandUsePlanning_low,SnowRemoval_high} 
##                                                                   FALSE 
##                           {LandUsePlanning_low,RoadInfrastructure_high} 
##                                                                   FALSE 
##                               {LandUsePlanning_low,TransitService_high} 
##                                                                   FALSE 
##                               {LandUsePlanning_low,SpringCleaning_high} 
##                                                                   FALSE 
##                                  {LandUsePlanning_high,SnowRemoval_low} 
##                                                                   FALSE 
##                                   {SnowRemoval_low,SocialServices_high} 
##                                                                   FALSE 
##                             {RecreationFacilities_high,SnowRemoval_low} 
##                                                                   FALSE 
##                                            {Parks_high,SnowRemoval_low} 
##                                                                   FALSE 
##                                       {Service311_high,SnowRemoval_low} 
##                                                                   FALSE 
##                              {LandUsePlanning_high,RoadMaintenance_low} 
##                                                                   FALSE 
##                               {RoadMaintenance_low,SocialServices_high} 
##                                                                   FALSE 
##                         {RecreationFacilities_high,RoadMaintenance_low} 
##                                                                   FALSE 
##                                        {Parks_high,RoadMaintenance_low} 
##                                                                   FALSE 
##                                   {RoadMaintenance_low,Service311_high} 
##                                                                   FALSE 
##                              {LandUsePlanning_high,SocialServices_high} 
##                                                                   FALSE 
##                              {LandUsePlanning_high,SocialServices_high} 
##                                                                   FALSE 
##                        {LandUsePlanning_high,RecreationFacilities_high} 
##                                                                   FALSE 
##                        {LandUsePlanning_high,RecreationFacilities_high} 
##                                                                   FALSE 
##                                       {LandUsePlanning_high,Parks_high} 
##                                                                   FALSE 
##                                       {LandUsePlanning_high,Parks_high} 
##                                                                   FALSE 
##                                  {LandUsePlanning_high,Service311_high} 
##                                                                   FALSE 
##                                  {LandUsePlanning_high,Service311_high} 
##                                                                   FALSE 
##                             {RoadMaintenance_high,TransitPlanning_high} 
##                                                                   FALSE 
##                             {RoadMaintenance_high,TransitPlanning_high} 
##                                                                   FALSE 
##                                 {RoadMaintenance_high,SnowRemoval_high} 
##                                                                   FALSE 
##                                 {RoadMaintenance_high,SnowRemoval_high} 
##                                                                   FALSE 
##                          {RoadInfrastructure_high,RoadMaintenance_high} 
##                                                                   FALSE 
##                          {RoadInfrastructure_high,RoadMaintenance_high} 
##                                                                   FALSE 
##                              {RoadMaintenance_high,TransitService_high} 
##                                                                   FALSE 
##                              {RoadMaintenance_high,TransitService_high} 
##                                                                   FALSE 
##                              {RoadMaintenance_high,SpringCleaning_high} 
##                                                                   FALSE 
##                              {RoadMaintenance_high,SpringCleaning_high} 
##                                                                   FALSE 
##                                  {RoadMaintenance_high,Service311_high} 
##                                                                   FALSE 
##                         {RecreationFacilities_high,SocialServices_high} 
##                                                                   FALSE 
##                         {RecreationFacilities_high,SocialServices_high} 
##                                                                   FALSE 
##                                        {Parks_high,SocialServices_high} 
##                                                                   FALSE 
##                                        {Parks_high,SocialServices_high} 
##                                                                   FALSE 
##                                   {Service311_high,SocialServices_high} 
##                                                                   FALSE 
##                                   {Service311_high,SocialServices_high} 
##                                                                   FALSE 
##                                 {SnowRemoval_high,TransitPlanning_high} 
##                                                                   FALSE 
##                                 {SnowRemoval_high,TransitPlanning_high} 
##                                                                   FALSE 
##                          {RoadInfrastructure_high,TransitPlanning_high} 
##                                                                   FALSE 
##                          {RoadInfrastructure_high,TransitPlanning_high} 
##                                                                   FALSE 
##                              {TransitPlanning_high,TransitService_high} 
##                                                                   FALSE 
##                              {TransitPlanning_high,TransitService_high} 
##                                                                   FALSE 
##                              {SpringCleaning_high,TransitPlanning_high} 
##                                                                   FALSE 
##                              {SpringCleaning_high,TransitPlanning_high} 
##                                                                   FALSE 
##                                  {Service311_high,TransitPlanning_high} 
##                                                                   FALSE 
##                              {RoadInfrastructure_high,SnowRemoval_high} 
##                                                                   FALSE 
##                              {RoadInfrastructure_high,SnowRemoval_high} 
##                                                                   FALSE 
##                                  {SnowRemoval_high,TransitService_high} 
##                                                                   FALSE 
##                                  {SnowRemoval_high,TransitService_high} 
##                                                                   FALSE 
##                                  {SnowRemoval_high,SpringCleaning_high} 
##                                                                   FALSE 
##                                  {SnowRemoval_high,SpringCleaning_high} 
##                                                                   FALSE 
##                                      {Service311_high,SnowRemoval_high} 
##                                                                   FALSE 
##                           {RoadInfrastructure_high,TransitService_high} 
##                                                                   FALSE 
##                           {RoadInfrastructure_high,TransitService_high} 
##                                                                   FALSE 
##                           {RoadInfrastructure_high,SpringCleaning_high} 
##                                                                   FALSE 
##                           {RoadInfrastructure_high,SpringCleaning_high} 
##                                                                   FALSE 
##                               {RoadInfrastructure_high,Service311_high} 
##                                                                   FALSE 
##                                  {Parks_high,RecreationFacilities_high} 
##                                                                   FALSE 
##                                  {Parks_high,RecreationFacilities_high} 
##                                                                   FALSE 
##                             {RecreationFacilities_high,Service311_high} 
##                                                                   FALSE 
##                             {RecreationFacilities_high,Service311_high} 
##                                                                   FALSE 
##                               {SpringCleaning_high,TransitService_high} 
##                                                                   FALSE 
##                               {SpringCleaning_high,TransitService_high} 
##                                                                   FALSE 
##                                        {Parks_high,TransitService_high} 
##                                                                   FALSE 
##                                   {Service311_high,TransitService_high} 
##                                                                   FALSE 
##                                        {Parks_high,SpringCleaning_high} 
##                                                                   FALSE 
##                                        {Parks_high,SpringCleaning_high} 
##                                                                   FALSE 
##                                   {Service311_high,SpringCleaning_high} 
##                                                                   FALSE 
##                                   {Service311_high,SpringCleaning_high} 
##                                                                   FALSE 
##                                            {Parks_high,Service311_high} 
##                                                                   FALSE 
##                                            {Parks_high,Service311_high} 
##                                                                   FALSE 
##    {RecreationFacilities_low,RoadMaintenance_high,TransitPlanning_high} 
##                                                                    TRUE 
##    {RecreationFacilities_low,RoadMaintenance_high,TransitPlanning_high} 
##                                                                    TRUE 
##        {RecreationFacilities_low,RoadMaintenance_high,SnowRemoval_high} 
##                                                                    TRUE 
##        {RecreationFacilities_low,RoadMaintenance_high,SnowRemoval_high} 
##                                                                    TRUE 
## {RecreationFacilities_low,RoadInfrastructure_high,RoadMaintenance_high} 
##                                                                    TRUE 
## {RecreationFacilities_low,RoadInfrastructure_high,RoadMaintenance_high} 
##                                                                    TRUE 
##     {RecreationFacilities_low,RoadMaintenance_high,TransitService_high} 
##                                                                    TRUE 
##     {RecreationFacilities_low,RoadMaintenance_high,TransitService_high} 
##                                                                    TRUE 
##     {RecreationFacilities_low,RoadMaintenance_high,SpringCleaning_high} 
##                                                                    TRUE 
##     {RecreationFacilities_low,RoadMaintenance_high,SpringCleaning_high} 
##                                                                    TRUE 
##        {RecreationFacilities_low,SnowRemoval_high,TransitPlanning_high} 
##                                                                    TRUE 
##        {RecreationFacilities_low,SnowRemoval_high,TransitPlanning_high} 
##                                                                    TRUE 
## {RecreationFacilities_low,RoadInfrastructure_high,TransitPlanning_high} 
##                                                                    TRUE 
## {RecreationFacilities_low,RoadInfrastructure_high,TransitPlanning_high} 
##                                                                    TRUE 
##     {RecreationFacilities_low,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##     {RecreationFacilities_low,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##     {RecreationFacilities_low,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##     {RecreationFacilities_low,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##     {RecreationFacilities_low,RoadInfrastructure_high,SnowRemoval_high} 
##                                                                    TRUE 
##     {RecreationFacilities_low,RoadInfrastructure_high,SnowRemoval_high} 
##                                                                    TRUE 
##         {RecreationFacilities_low,SnowRemoval_high,TransitService_high} 
##                                                                    TRUE 
##         {RecreationFacilities_low,SnowRemoval_high,TransitService_high} 
##                                                                    TRUE 
##         {RecreationFacilities_low,SnowRemoval_high,SpringCleaning_high} 
##                                                                    TRUE 
##         {RecreationFacilities_low,SnowRemoval_high,SpringCleaning_high} 
##                                                                    TRUE 
##  {RecreationFacilities_low,RoadInfrastructure_high,TransitService_high} 
##                                                                    TRUE 
##  {RecreationFacilities_low,RoadInfrastructure_high,TransitService_high} 
##                                                                    TRUE 
##  {RecreationFacilities_low,RoadInfrastructure_high,SpringCleaning_high} 
##                                                                    TRUE 
##  {RecreationFacilities_low,RoadInfrastructure_high,SpringCleaning_high} 
##                                                                    TRUE 
##      {RecreationFacilities_low,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##      {RecreationFacilities_low,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##          {RoadMaintenance_high,SocialServices_low,TransitPlanning_high} 
##                                                                    TRUE 
##          {RoadMaintenance_high,SocialServices_low,TransitPlanning_high} 
##                                                                    TRUE 
##              {RoadMaintenance_high,SnowRemoval_high,SocialServices_low} 
##                                                                    TRUE 
##              {RoadMaintenance_high,SnowRemoval_high,SocialServices_low} 
##                                                                    TRUE 
##       {RoadInfrastructure_high,RoadMaintenance_high,SocialServices_low} 
##                                                                    TRUE 
##       {RoadInfrastructure_high,RoadMaintenance_high,SocialServices_low} 
##                                                                    TRUE 
##           {RoadMaintenance_high,SocialServices_low,TransitService_high} 
##                                                                    TRUE 
##           {RoadMaintenance_high,SocialServices_low,TransitService_high} 
##                                                                    TRUE 
##           {RoadMaintenance_high,SocialServices_low,SpringCleaning_high} 
##                                                                    TRUE 
##           {RoadMaintenance_high,SocialServices_low,SpringCleaning_high} 
##                                                                    TRUE 
##              {SnowRemoval_high,SocialServices_low,TransitPlanning_high} 
##                                                                    TRUE 
##              {SnowRemoval_high,SocialServices_low,TransitPlanning_high} 
##                                                                    TRUE 
##       {RoadInfrastructure_high,SocialServices_low,TransitPlanning_high} 
##                                                                    TRUE 
##       {RoadInfrastructure_high,SocialServices_low,TransitPlanning_high} 
##                                                                    TRUE 
##           {SocialServices_low,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##           {SocialServices_low,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##           {SocialServices_low,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##           {SocialServices_low,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##           {RoadInfrastructure_high,SnowRemoval_high,SocialServices_low} 
##                                                                    TRUE 
##           {RoadInfrastructure_high,SnowRemoval_high,SocialServices_low} 
##                                                                    TRUE 
##               {SnowRemoval_high,SocialServices_low,TransitService_high} 
##                                                                    TRUE 
##               {SnowRemoval_high,SocialServices_low,TransitService_high} 
##                                                                    TRUE 
##               {SnowRemoval_high,SocialServices_low,SpringCleaning_high} 
##                                                                    TRUE 
##               {SnowRemoval_high,SocialServices_low,SpringCleaning_high} 
##                                                                    TRUE 
##        {RoadInfrastructure_high,SocialServices_low,TransitService_high} 
##                                                                    TRUE 
##        {RoadInfrastructure_high,SocialServices_low,TransitService_high} 
##                                                                    TRUE 
##        {RoadInfrastructure_high,SocialServices_low,SpringCleaning_high} 
##                                                                    TRUE 
##        {RoadInfrastructure_high,SocialServices_low,SpringCleaning_high} 
##                                                                    TRUE 
##            {SocialServices_low,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##            {SocialServices_low,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##           {LandUsePlanning_high,SocialServices_high,TransitService_low} 
##                                                                    TRUE 
##           {LandUsePlanning_high,SocialServices_high,TransitService_low} 
##                                                                    TRUE 
##     {LandUsePlanning_high,RecreationFacilities_high,TransitService_low} 
##                                                                    TRUE 
##     {LandUsePlanning_high,RecreationFacilities_high,TransitService_low} 
##                                                                    TRUE 
##                    {LandUsePlanning_high,Parks_high,TransitService_low} 
##                                                                    TRUE 
##                    {LandUsePlanning_high,Parks_high,TransitService_low} 
##                                                                    TRUE 
##               {LandUsePlanning_high,Service311_high,TransitService_low} 
##                                                                    TRUE 
##               {LandUsePlanning_high,Service311_high,TransitService_low} 
##                                                                    TRUE 
##      {RecreationFacilities_high,SocialServices_high,TransitService_low} 
##                                                                    TRUE 
##      {RecreationFacilities_high,SocialServices_high,TransitService_low} 
##                                                                    TRUE 
##                     {Parks_high,SocialServices_high,TransitService_low} 
##                                                                    TRUE 
##                     {Parks_high,SocialServices_high,TransitService_low} 
##                                                                    TRUE 
##                {Service311_high,SocialServices_high,TransitService_low} 
##                                                                    TRUE 
##                {Service311_high,SocialServices_high,TransitService_low} 
##                                                                    TRUE 
##               {Parks_high,RecreationFacilities_high,TransitService_low} 
##                                                                    TRUE 
##               {Parks_high,RecreationFacilities_high,TransitService_low} 
##                                                                    TRUE 
##          {RecreationFacilities_high,Service311_high,TransitService_low} 
##                                                                    TRUE 
##          {RecreationFacilities_high,Service311_high,TransitService_low} 
##                                                                    TRUE 
##                         {Parks_high,Service311_high,TransitService_low} 
##                                                                    TRUE 
##                         {Parks_high,Service311_high,TransitService_low} 
##                                                                    TRUE 
##            {RoadInfrastructure_low,RoadMaintenance_low,SnowRemoval_low} 
##                                                                    TRUE 
##       {LandUsePlanning_high,RoadInfrastructure_low,RoadMaintenance_low} 
##                                                                    TRUE 
##       {LandUsePlanning_high,RoadInfrastructure_low,SocialServices_high} 
##                                                                    TRUE 
##       {LandUsePlanning_high,RoadInfrastructure_low,SocialServices_high} 
##                                                                    TRUE 
## {LandUsePlanning_high,RecreationFacilities_high,RoadInfrastructure_low} 
##                                                                    TRUE 
## {LandUsePlanning_high,RecreationFacilities_high,RoadInfrastructure_low} 
##                                                                    TRUE 
##                {LandUsePlanning_high,Parks_high,RoadInfrastructure_low} 
##                                                                    TRUE 
##                {LandUsePlanning_high,Parks_high,RoadInfrastructure_low} 
##                                                                    TRUE 
##           {LandUsePlanning_high,RoadInfrastructure_low,Service311_high} 
##                                                                    TRUE 
##           {LandUsePlanning_high,RoadInfrastructure_low,Service311_high} 
##                                                                    TRUE 
##  {RecreationFacilities_high,RoadInfrastructure_low,SocialServices_high} 
##                                                                    TRUE 
##  {RecreationFacilities_high,RoadInfrastructure_low,SocialServices_high} 
##                                                                    TRUE 
##                 {Parks_high,RoadInfrastructure_low,SocialServices_high} 
##                                                                    TRUE 
##                 {Parks_high,RoadInfrastructure_low,SocialServices_high} 
##                                                                    TRUE 
##            {RoadInfrastructure_low,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##            {RoadInfrastructure_low,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##           {Parks_high,RecreationFacilities_high,RoadInfrastructure_low} 
##                                                                    TRUE 
##           {Parks_high,RecreationFacilities_high,RoadInfrastructure_low} 
##                                                                    TRUE 
##      {RecreationFacilities_high,RoadInfrastructure_low,Service311_high} 
##                                                                    TRUE 
##      {RecreationFacilities_high,RoadInfrastructure_low,Service311_high} 
##                                                                    TRUE 
##                     {Parks_high,RoadInfrastructure_low,Service311_high} 
##                                                                    TRUE 
##                     {Parks_high,RoadInfrastructure_low,Service311_high} 
##                                                                    TRUE 
##          {LandUsePlanning_high,SocialServices_high,TransitPlanning_low} 
##                                                                    TRUE 
##          {LandUsePlanning_high,SocialServices_high,TransitPlanning_low} 
##                                                                    TRUE 
##    {LandUsePlanning_high,RecreationFacilities_high,TransitPlanning_low} 
##                                                                    TRUE 
##    {LandUsePlanning_high,RecreationFacilities_high,TransitPlanning_low} 
##                                                                    TRUE 
##                   {LandUsePlanning_high,Parks_high,TransitPlanning_low} 
##                                                                    TRUE 
##                   {LandUsePlanning_high,Parks_high,TransitPlanning_low} 
##                                                                    TRUE 
##              {LandUsePlanning_high,Service311_high,TransitPlanning_low} 
##                                                                    TRUE 
##              {LandUsePlanning_high,Service311_high,TransitPlanning_low} 
##                                                                    TRUE 
##     {RecreationFacilities_high,SocialServices_high,TransitPlanning_low} 
##                                                                    TRUE 
##     {RecreationFacilities_high,SocialServices_high,TransitPlanning_low} 
##                                                                    TRUE 
##                    {Parks_high,SocialServices_high,TransitPlanning_low} 
##                                                                    TRUE 
##                    {Parks_high,SocialServices_high,TransitPlanning_low} 
##                                                                    TRUE 
##               {Service311_high,SocialServices_high,TransitPlanning_low} 
##                                                                    TRUE 
##               {Service311_high,SocialServices_high,TransitPlanning_low} 
##                                                                    TRUE 
##              {Parks_high,RecreationFacilities_high,TransitPlanning_low} 
##                                                                    TRUE 
##              {Parks_high,RecreationFacilities_high,TransitPlanning_low} 
##                                                                    TRUE 
##         {RecreationFacilities_high,Service311_high,TransitPlanning_low} 
##                                                                    TRUE 
##         {RecreationFacilities_high,Service311_high,TransitPlanning_low} 
##                                                                    TRUE 
##                        {Parks_high,Service311_high,TransitPlanning_low} 
##                                                                    TRUE 
##                        {Parks_high,Service311_high,TransitPlanning_low} 
##                                                                    TRUE 
##         {LandUsePlanning_low,RoadMaintenance_high,TransitPlanning_high} 
##                                                                    TRUE 
##         {LandUsePlanning_low,RoadMaintenance_high,TransitPlanning_high} 
##                                                                    TRUE 
##             {LandUsePlanning_low,RoadMaintenance_high,SnowRemoval_high} 
##                                                                    TRUE 
##             {LandUsePlanning_low,RoadMaintenance_high,SnowRemoval_high} 
##                                                                    TRUE 
##      {LandUsePlanning_low,RoadInfrastructure_high,RoadMaintenance_high} 
##                                                                    TRUE 
##      {LandUsePlanning_low,RoadInfrastructure_high,RoadMaintenance_high} 
##                                                                    TRUE 
##          {LandUsePlanning_low,RoadMaintenance_high,TransitService_high} 
##                                                                    TRUE 
##          {LandUsePlanning_low,RoadMaintenance_high,TransitService_high} 
##                                                                    TRUE 
##          {LandUsePlanning_low,RoadMaintenance_high,SpringCleaning_high} 
##                                                                    TRUE 
##          {LandUsePlanning_low,RoadMaintenance_high,SpringCleaning_high} 
##                                                                    TRUE 
##              {LandUsePlanning_low,RoadMaintenance_high,Service311_high} 
##                                                                    TRUE 
##             {LandUsePlanning_low,SnowRemoval_high,TransitPlanning_high} 
##                                                                    TRUE 
##             {LandUsePlanning_low,SnowRemoval_high,TransitPlanning_high} 
##                                                                    TRUE 
##      {LandUsePlanning_low,RoadInfrastructure_high,TransitPlanning_high} 
##                                                                    TRUE 
##      {LandUsePlanning_low,RoadInfrastructure_high,TransitPlanning_high} 
##                                                                    TRUE 
##          {LandUsePlanning_low,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##          {LandUsePlanning_low,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##          {LandUsePlanning_low,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##          {LandUsePlanning_low,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##              {LandUsePlanning_low,Service311_high,TransitPlanning_high} 
##                                                                    TRUE 
##          {LandUsePlanning_low,RoadInfrastructure_high,SnowRemoval_high} 
##                                                                    TRUE 
##          {LandUsePlanning_low,RoadInfrastructure_high,SnowRemoval_high} 
##                                                                    TRUE 
##              {LandUsePlanning_low,SnowRemoval_high,TransitService_high} 
##                                                                    TRUE 
##              {LandUsePlanning_low,SnowRemoval_high,TransitService_high} 
##                                                                    TRUE 
##              {LandUsePlanning_low,SnowRemoval_high,SpringCleaning_high} 
##                                                                    TRUE 
##              {LandUsePlanning_low,SnowRemoval_high,SpringCleaning_high} 
##                                                                    TRUE 
##                  {LandUsePlanning_low,Service311_high,SnowRemoval_high} 
##                                                                    TRUE 
##       {LandUsePlanning_low,RoadInfrastructure_high,TransitService_high} 
##                                                                    TRUE 
##       {LandUsePlanning_low,RoadInfrastructure_high,TransitService_high} 
##                                                                    TRUE 
##       {LandUsePlanning_low,RoadInfrastructure_high,SpringCleaning_high} 
##                                                                    TRUE 
##       {LandUsePlanning_low,RoadInfrastructure_high,SpringCleaning_high} 
##                                                                    TRUE 
##           {LandUsePlanning_low,RoadInfrastructure_high,Service311_high} 
##                                                                    TRUE 
##           {LandUsePlanning_low,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##           {LandUsePlanning_low,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##               {LandUsePlanning_low,Service311_high,TransitService_high} 
##                                                                    TRUE 
##                    {LandUsePlanning_low,Parks_high,SpringCleaning_high} 
##                                                                    TRUE 
##               {LandUsePlanning_low,Service311_high,SpringCleaning_high} 
##                                                                    TRUE 
##              {LandUsePlanning_high,SnowRemoval_low,SocialServices_high} 
##                                                                    TRUE 
##              {LandUsePlanning_high,SnowRemoval_low,SocialServices_high} 
##                                                                    TRUE 
##        {LandUsePlanning_high,RecreationFacilities_high,SnowRemoval_low} 
##                                                                    TRUE 
##        {LandUsePlanning_high,RecreationFacilities_high,SnowRemoval_low} 
##                                                                    TRUE 
##                       {LandUsePlanning_high,Parks_high,SnowRemoval_low} 
##                                                                    TRUE 
##                       {LandUsePlanning_high,Parks_high,SnowRemoval_low} 
##                                                                    TRUE 
##                  {LandUsePlanning_high,Service311_high,SnowRemoval_low} 
##                                                                    TRUE 
##                  {LandUsePlanning_high,Service311_high,SnowRemoval_low} 
##                                                                    TRUE 
##         {RecreationFacilities_high,SnowRemoval_low,SocialServices_high} 
##                                                                    TRUE 
##         {RecreationFacilities_high,SnowRemoval_low,SocialServices_high} 
##                                                                    TRUE 
##                        {Parks_high,SnowRemoval_low,SocialServices_high} 
##                                                                    TRUE 
##                        {Parks_high,SnowRemoval_low,SocialServices_high} 
##                                                                    TRUE 
##                   {Service311_high,SnowRemoval_low,SocialServices_high} 
##                                                                    TRUE 
##                   {Service311_high,SnowRemoval_low,SocialServices_high} 
##                                                                    TRUE 
##         {RecreationFacilities_high,SnowRemoval_low,SpringCleaning_high} 
##                                                                    TRUE 
##                  {Parks_high,RecreationFacilities_high,SnowRemoval_low} 
##                                                                    TRUE 
##                  {Parks_high,RecreationFacilities_high,SnowRemoval_low} 
##                                                                    TRUE 
##             {RecreationFacilities_high,Service311_high,SnowRemoval_low} 
##                                                                    TRUE 
##             {RecreationFacilities_high,Service311_high,SnowRemoval_low} 
##                                                                    TRUE 
##                        {Parks_high,SnowRemoval_low,TransitService_high} 
##                                                                    TRUE 
##                   {Service311_high,SnowRemoval_low,TransitService_high} 
##                                                                    TRUE 
##                        {Parks_high,SnowRemoval_low,SpringCleaning_high} 
##                                                                    TRUE 
##                   {Service311_high,SnowRemoval_low,SpringCleaning_high} 
##                                                                    TRUE 
##                            {Parks_high,Service311_high,SnowRemoval_low} 
##                                                                    TRUE 
##                            {Parks_high,Service311_high,SnowRemoval_low} 
##                                                                    TRUE 
##          {LandUsePlanning_high,RoadMaintenance_low,SocialServices_high} 
##                                                                    TRUE 
##          {LandUsePlanning_high,RoadMaintenance_low,SocialServices_high} 
##                                                                    TRUE 
##    {LandUsePlanning_high,RecreationFacilities_high,RoadMaintenance_low} 
##                                                                    TRUE 
##    {LandUsePlanning_high,RecreationFacilities_high,RoadMaintenance_low} 
##                                                                    TRUE 
##          {LandUsePlanning_high,RoadMaintenance_low,SpringCleaning_high} 
##                                                                    TRUE 
##                   {LandUsePlanning_high,Parks_high,RoadMaintenance_low} 
##                                                                    TRUE 
##                   {LandUsePlanning_high,Parks_high,RoadMaintenance_low} 
##                                                                    TRUE 
##              {LandUsePlanning_high,RoadMaintenance_low,Service311_high} 
##                                                                    TRUE 
##              {LandUsePlanning_high,RoadMaintenance_low,Service311_high} 
##                                                                    TRUE 
##     {RecreationFacilities_high,RoadMaintenance_low,SocialServices_high} 
##                                                                    TRUE 
##     {RecreationFacilities_high,RoadMaintenance_low,SocialServices_high} 
##                                                                    TRUE 
##           {RoadMaintenance_low,SocialServices_high,SpringCleaning_high} 
##                                                                    TRUE 
##                    {Parks_high,RoadMaintenance_low,SocialServices_high} 
##                                                                    TRUE 
##                    {Parks_high,RoadMaintenance_low,SocialServices_high} 
##                                                                    TRUE 
##               {RoadMaintenance_low,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##               {RoadMaintenance_low,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##     {RecreationFacilities_high,RoadMaintenance_low,TransitService_high} 
##                                                                    TRUE 
##     {RecreationFacilities_high,RoadMaintenance_low,SpringCleaning_high} 
##                                                                    TRUE 
##              {Parks_high,RecreationFacilities_high,RoadMaintenance_low} 
##                                                                    TRUE 
##              {Parks_high,RecreationFacilities_high,RoadMaintenance_low} 
##                                                                    TRUE 
##         {RecreationFacilities_high,RoadMaintenance_low,Service311_high} 
##                                                                    TRUE 
##         {RecreationFacilities_high,RoadMaintenance_low,Service311_high} 
##                                                                    TRUE 
##                    {Parks_high,RoadMaintenance_low,TransitService_high} 
##                                                                    TRUE 
##               {RoadMaintenance_low,Service311_high,TransitService_high} 
##                                                                    TRUE 
##                    {Parks_high,RoadMaintenance_low,SpringCleaning_high} 
##                                                                    TRUE 
##               {RoadMaintenance_low,Service311_high,SpringCleaning_high} 
##                                                                    TRUE 
##                        {Parks_high,RoadMaintenance_low,Service311_high} 
##                                                                    TRUE 
##                        {Parks_high,RoadMaintenance_low,Service311_high} 
##                                                                    TRUE 
##    {LandUsePlanning_high,RecreationFacilities_high,SocialServices_high} 
##                                                                    TRUE 
##    {LandUsePlanning_high,RecreationFacilities_high,SocialServices_high} 
##                                                                    TRUE 
##    {LandUsePlanning_high,RecreationFacilities_high,SocialServices_high} 
##                                                                    TRUE 
##                   {LandUsePlanning_high,Parks_high,SocialServices_high} 
##                                                                    TRUE 
##                   {LandUsePlanning_high,Parks_high,SocialServices_high} 
##                                                                    TRUE 
##                   {LandUsePlanning_high,Parks_high,SocialServices_high} 
##                                                                    TRUE 
##              {LandUsePlanning_high,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##              {LandUsePlanning_high,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##              {LandUsePlanning_high,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##             {LandUsePlanning_high,Parks_high,RecreationFacilities_high} 
##                                                                    TRUE 
##             {LandUsePlanning_high,Parks_high,RecreationFacilities_high} 
##                                                                    TRUE 
##             {LandUsePlanning_high,Parks_high,RecreationFacilities_high} 
##                                                                    TRUE 
##        {LandUsePlanning_high,RecreationFacilities_high,Service311_high} 
##                                                                    TRUE 
##        {LandUsePlanning_high,RecreationFacilities_high,Service311_high} 
##                                                                    TRUE 
##        {LandUsePlanning_high,RecreationFacilities_high,Service311_high} 
##                                                                    TRUE 
##                       {LandUsePlanning_high,Parks_high,Service311_high} 
##                                                                    TRUE 
##                       {LandUsePlanning_high,Parks_high,Service311_high} 
##                                                                    TRUE 
##                       {LandUsePlanning_high,Parks_high,Service311_high} 
##                                                                    TRUE 
##            {RoadMaintenance_high,SnowRemoval_high,TransitPlanning_high} 
##                                                                    TRUE 
##            {RoadMaintenance_high,SnowRemoval_high,TransitPlanning_high} 
##                                                                    TRUE 
##            {RoadMaintenance_high,SnowRemoval_high,TransitPlanning_high} 
##                                                                    TRUE 
##     {RoadInfrastructure_high,RoadMaintenance_high,TransitPlanning_high} 
##                                                                    TRUE 
##     {RoadInfrastructure_high,RoadMaintenance_high,TransitPlanning_high} 
##                                                                    TRUE 
##     {RoadInfrastructure_high,RoadMaintenance_high,TransitPlanning_high} 
##                                                                    TRUE 
##         {RoadMaintenance_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##         {RoadMaintenance_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##         {RoadMaintenance_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##         {RoadMaintenance_high,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##         {RoadMaintenance_high,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##         {RoadMaintenance_high,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##         {RoadInfrastructure_high,RoadMaintenance_high,SnowRemoval_high} 
##                                                                    TRUE 
##         {RoadInfrastructure_high,RoadMaintenance_high,SnowRemoval_high} 
##                                                                    TRUE 
##         {RoadInfrastructure_high,RoadMaintenance_high,SnowRemoval_high} 
##                                                                    TRUE 
##             {RoadMaintenance_high,SnowRemoval_high,TransitService_high} 
##                                                                    TRUE 
##             {RoadMaintenance_high,SnowRemoval_high,TransitService_high} 
##                                                                    TRUE 
##             {RoadMaintenance_high,SnowRemoval_high,TransitService_high} 
##                                                                    TRUE 
##             {RoadMaintenance_high,SnowRemoval_high,SpringCleaning_high} 
##                                                                    TRUE 
##             {RoadMaintenance_high,SnowRemoval_high,SpringCleaning_high} 
##                                                                    TRUE 
##             {RoadMaintenance_high,SnowRemoval_high,SpringCleaning_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,RoadMaintenance_high,TransitService_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,RoadMaintenance_high,TransitService_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,RoadMaintenance_high,TransitService_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,RoadMaintenance_high,SpringCleaning_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,RoadMaintenance_high,SpringCleaning_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,RoadMaintenance_high,SpringCleaning_high} 
##                                                                    TRUE 
##          {RoadMaintenance_high,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##          {RoadMaintenance_high,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##          {RoadMaintenance_high,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##              {Parks_high,RecreationFacilities_high,SocialServices_high} 
##                                                                    TRUE 
##              {Parks_high,RecreationFacilities_high,SocialServices_high} 
##                                                                    TRUE 
##              {Parks_high,RecreationFacilities_high,SocialServices_high} 
##                                                                    TRUE 
##         {RecreationFacilities_high,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##         {RecreationFacilities_high,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##         {RecreationFacilities_high,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##                        {Parks_high,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##                        {Parks_high,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##                        {Parks_high,Service311_high,SocialServices_high} 
##                                                                    TRUE 
##         {RoadInfrastructure_high,SnowRemoval_high,TransitPlanning_high} 
##                                                                    TRUE 
##         {RoadInfrastructure_high,SnowRemoval_high,TransitPlanning_high} 
##                                                                    TRUE 
##         {RoadInfrastructure_high,SnowRemoval_high,TransitPlanning_high} 
##                                                                    TRUE 
##             {SnowRemoval_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##             {SnowRemoval_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##             {SnowRemoval_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##             {SnowRemoval_high,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##             {SnowRemoval_high,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##             {SnowRemoval_high,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##      {RoadInfrastructure_high,SpringCleaning_high,TransitPlanning_high} 
##                                                                    TRUE 
##          {SpringCleaning_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##          {SpringCleaning_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##          {SpringCleaning_high,TransitPlanning_high,TransitService_high} 
##                                                                    TRUE 
##          {RoadInfrastructure_high,SnowRemoval_high,TransitService_high} 
##                                                                    TRUE 
##          {RoadInfrastructure_high,SnowRemoval_high,TransitService_high} 
##                                                                    TRUE 
##          {RoadInfrastructure_high,SnowRemoval_high,TransitService_high} 
##                                                                    TRUE 
##          {RoadInfrastructure_high,SnowRemoval_high,SpringCleaning_high} 
##                                                                    TRUE 
##          {RoadInfrastructure_high,SnowRemoval_high,SpringCleaning_high} 
##                                                                    TRUE 
##          {RoadInfrastructure_high,SnowRemoval_high,SpringCleaning_high} 
##                                                                    TRUE 
##              {SnowRemoval_high,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##              {SnowRemoval_high,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##              {SnowRemoval_high,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##       {RoadInfrastructure_high,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##       {RoadInfrastructure_high,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##       {RoadInfrastructure_high,SpringCleaning_high,TransitService_high} 
##                                                                    TRUE 
##                  {Parks_high,RecreationFacilities_high,Service311_high} 
##                                                                    TRUE 
##                  {Parks_high,RecreationFacilities_high,Service311_high} 
##                                                                    TRUE 
##                  {Parks_high,RecreationFacilities_high,Service311_high} 
##                                                                    TRUE
is.significant(rules_nr, calgary_trans)
##   [1] FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [13]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [25]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [37]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [49]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [61]  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [73]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE
##  [85]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE
##  [97]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
## [109]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [121]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [133]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [145]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [157]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [169]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [181]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [193]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [205]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [217]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [229]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [241]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [253]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [265]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [277]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [289]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [301]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [313]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [325]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [337]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [349]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [361]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [373]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [385]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [397]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
inspect(head(sort(rules_nr, by = "lift"), 10))
##      lhs                            rhs                       support confidence   coverage     lift count
## [1]  {RoadInfrastructure_low,                                                                             
##       SnowRemoval_low}           => {RoadMaintenance_low}  0.04111379  0.7687970 0.05347809 3.669862   409
## [2]  {LandUsePlanning_high,                                                                               
##       RoadInfrastructure_low}    => {RoadMaintenance_low}  0.04694411  0.6908284 0.06795336 3.297678   467
## [3]  {RoadInfrastructure_low}    => {RoadMaintenance_low}  0.07529152  0.6903226 0.10906715 3.295263   749
## [4]  {RoadInfrastructure_high,                                                                            
##       SocialServices_low}        => {RoadMaintenance_high} 0.06222356  0.9702194 0.06413349 2.006182   619
## [5]  {LandUsePlanning_low,                                                                                
##       TransitPlanning_high}      => {RoadMaintenance_high} 0.09207881  0.9631966 0.09559710 1.991661   916
## [6]  {LandUsePlanning_low,                                                                                
##       RoadInfrastructure_high}   => {RoadMaintenance_high} 0.09278247  0.9614583 0.09650181 1.988066   923
## [7]  {SnowRemoval_high,                                                                                   
##       SocialServices_low}        => {RoadMaintenance_high} 0.06202252  0.9610592 0.06453559 1.987241   617
## [8]  {RecreationFacilities_low,                                                                           
##       RoadInfrastructure_high}   => {RoadMaintenance_high} 0.04141536  0.9537037 0.04342581 1.972032   412
## [9]  {SocialServices_low,                                                                                 
##       TransitPlanning_high}      => {RoadMaintenance_high} 0.06212304  0.9537037 0.06513872 1.972032   618
## [10] {LandUsePlanning_low,                                                                                
##       SnowRemoval_high}          => {RoadMaintenance_high} 0.09217933  0.9473140 0.09730599 1.958819   917

When ranking the remaining rules by lift, the strongest associations mainly involve low ratings related to road infrastructure, road maintenance, and snow removal. In particular, low satisfaction with road infrastructure is strongly linked to low road maintenance.

Compared to the earlier high-support rules, these patterns occur less often but are more informative, since they point to specific problem areas rather than overall positive sentiment.

13. Visualisations

After cleaning the rule set, I used several visualisations to better understand how the remaining rules compare in terms of support, confidence, and lift

plot(rules_nr, method = "grouped")

plot(rules_nr, method = "paracoord", control = list(reorder = TRUE))

plot(rules_nr, measure = c("support", "lift"), shading = "confidence")

plot(rules_nr, method = "matrix", measure = "lift")
## Itemsets in Antecedent (LHS)
##  [1] "{RoadInfrastructure_low,SnowRemoval_low}"          
##  [2] "{LandUsePlanning_high,RoadInfrastructure_low}"     
##  [3] "{RoadInfrastructure_high,SocialServices_low}"      
##  [4] "{SnowRemoval_high,SocialServices_low}"             
##  [5] "{LandUsePlanning_low,RoadInfrastructure_high}"     
##  [6] "{LandUsePlanning_low,TransitPlanning_high}"        
##  [7] "{RoadMaintenance_high,SocialServices_low}"         
##  [8] "{SocialServices_low,TransitPlanning_high}"         
##  [9] "{RecreationFacilities_low,SnowRemoval_high}"       
## [10] "{RecreationFacilities_low,RoadInfrastructure_high}"
## [11] "{LandUsePlanning_low,SnowRemoval_high}"            
## [12] "{RoadMaintenance_high,TransitService_high}"        
## [13] "{LandUsePlanning_low,RoadMaintenance_high}"        
## [14] "{LandUsePlanning_low,TransitService_high}"         
## [15] "{RecreationFacilities_low,TransitPlanning_high}"   
## [16] "{SpringCleaning_high,TransitPlanning_high}"        
## [17] "{SnowRemoval_high,TransitPlanning_high}"           
## [18] "{RoadInfrastructure_high,TransitService_high}"     
## [19] "{LandUsePlanning_low,SpringCleaning_high}"         
## [20] "{RecreationFacilities_low,TransitService_high}"    
## [21] "{RoadMaintenance_high,SpringCleaning_high}"        
## [22] "{SnowRemoval_high,TransitService_high}"            
## [23] "{SocialServices_low,SpringCleaning_high}"          
## [24] "{SocialServices_low,TransitService_high}"          
## [25] "{RoadInfrastructure_high,SpringCleaning_high}"     
## [26] "{RecreationFacilities_low,RoadMaintenance_high}"   
## [27] "{RoadInfrastructure_high,SnowRemoval_high}"        
## [28] "{RecreationFacilities_low,SpringCleaning_high}"    
## [29] "{RoadMaintenance_high,SnowRemoval_high}"           
## [30] "{RoadMaintenance_high,TransitPlanning_high}"       
## [31] "{RoadInfrastructure_high,TransitPlanning_high}"    
## [32] "{SpringCleaning_high,TransitService_high}"         
## [33] "{SnowRemoval_high,SpringCleaning_high}"            
## [34] "{TransitPlanning_high,TransitService_high}"        
## [35] "{RoadInfrastructure_high,RoadMaintenance_high}"    
## [36] "{LandUsePlanning_high,Service311_high}"            
## [37] "{Service311_high,SocialServices_high}"             
## [38] "{LandUsePlanning_high,Parks_high}"                 
## [39] "{RoadMaintenance_low,SocialServices_high}"         
## [40] "{RoadInfrastructure_low,SocialServices_high}"      
## [41] "{Parks_high,SocialServices_high}"                  
## [42] "{LandUsePlanning_high,TransitPlanning_low}"        
## [43] "{SocialServices_high,TransitPlanning_low}"         
## [44] "{RecreationFacilities_high,Service311_high}"       
## [45] "{SocialServices_high,TransitService_low}"          
## [46] "{RecreationFacilities_high,TransitService_low}"    
## [47] "{LandUsePlanning_high,TransitService_low}"         
## [48] "{LandUsePlanning_high,RoadMaintenance_low}"        
## [49] "{LandUsePlanning_high,SnowRemoval_low}"            
## [50] "{SnowRemoval_low,SocialServices_high}"             
## [51] "{RecreationFacilities_high,SocialServices_high}"   
## [52] "{RecreationFacilities_high,TransitPlanning_low}"   
## [53] "{LandUsePlanning_high,RecreationFacilities_high}"  
## [54] "{RecreationFacilities_high,RoadMaintenance_low}"   
## [55] "{RecreationFacilities_high,RoadInfrastructure_low}"
## [56] "{Parks_high,TransitPlanning_low}"                  
## [57] "{Parks_high,RecreationFacilities_high}"            
## [58] "{RecreationFacilities_high,SnowRemoval_low}"       
## [59] "{RoadInfrastructure_low}"                          
## [60] "{Parks_high,Service311_high}"                      
## [61] "{Parks_high,TransitService_low}"                   
## [62] "{Service311_high,TransitService_low}"              
## [63] "{Parks_high,RoadMaintenance_low}"                  
## [64] "{RoadMaintenance_high}"                            
## [65] "{Parks_high,RoadInfrastructure_low}"               
## [66] "{RoadMaintenance_low,Service311_high}"             
## [67] "{LandUsePlanning_high,SocialServices_high}"        
## [68] "{RoadInfrastructure_low,Service311_high}"          
## [69] "{Service311_high,TransitPlanning_low}"             
## [70] "{Parks_high,SnowRemoval_low}"                      
## [71] "{LandUsePlanning_high}"                            
## [72] "{SocialServices_high}"                             
## [73] "{TransitPlanning_high}"                            
## [74] "{RoadInfrastructure_high}"                         
## [75] "{Service311_high,SnowRemoval_low}"                 
## [76] "{SnowRemoval_high}"                                
## [77] "{LandUsePlanning_low,Service311_high}"             
## [78] "{RecreationFacilities_high}"                       
## [79] "{LandUsePlanning_low}"                             
## [80] "{SocialServices_low}"                              
## [81] "{RecreationFacilities_low}"                        
## [82] "{TransitService_high}"                             
## [83] "{RoadMaintenance_low,SpringCleaning_high}"         
## [84] "{SpringCleaning_high}"                             
## [85] "{LandUsePlanning_low,Parks_high}"                  
## [86] "{Parks_high}"                                      
## [87] "{RoadMaintenance_low,TransitService_high}"         
## [88] "{Service311_high}"                                 
## [89] "{TransitService_low}"                              
## [90] "{SnowRemoval_low,SpringCleaning_high}"             
## [91] "{SnowRemoval_low,TransitService_high}"             
## [92] "{TransitPlanning_low}"                             
## [93] "{RoadMaintenance_low}"                             
## [94] "{SnowRemoval_low}"                                 
## [95] "{SpringCleaning_low}"                              
## Itemsets in Consequent (RHS)
##  [1] "{Service311_high}"           "{Parks_high}"               
##  [3] "{SpringCleaning_high}"       "{RecreationFacilities_high}"
##  [5] "{TransitService_high}"       "{SocialServices_high}"      
##  [7] "{LandUsePlanning_high}"      "{SnowRemoval_high}"         
##  [9] "{RoadInfrastructure_high}"   "{TransitPlanning_high}"     
## [11] "{RoadMaintenance_high}"      "{RoadMaintenance_low}"

Grouped plot

From the grouped plot, it is clear that many rules are centred around combinations involving road maintenance, snow removal, transit planning, and recreation facilities. These combinations repeatedly appear across multiple outcomes, especially for services related to maintenance. This suggests that dissatisfaction or satisfaction in these areas tends to co-occur.

Parallel plot

In the parallel coordinates plot, most rules converge toward high satisfaction levels, which fits the overall positive trend in the data. However, one pattern is especially noticeable on the lower end: low road infrastructure combined with low snow removal often leads to low road maintenance. This stands out visually because the lines are darker, indicating higher confidence, meaning that when these conditions occur, the outcome is very likely to follow.

Scatterplot

This scatter plot shows the relationship between support and lift for all extracted rules, with colour indicating confidence.

Two clear clusters appear. On the right, there is a dense group of rules with high support and moderate lift. These rules are common across many responses and mostly reflect broadly positive service evaluations. Their lift values are close to 1–2, meaning they are frequent but not especially surprising.

On the left, there is a larger spread of rules with lower support but higher lift. These rules occur less often, but when they do occur, they are much more informative. Many of these high-lift rules also show strong confidence, indicating reliable patterns despite their lower frequency.

I then ranked the cleaned rules by lift and confidence to identify the strongest and most meaningful associations.

rules_ranked <- sort(rules_nr, by = c("lift", "confidence"), decreasing = TRUE)
inspect(head(rules_ranked, 20))
##      lhs                            rhs                       support confidence   coverage     lift count
## [1]  {RoadInfrastructure_low,                                                                             
##       SnowRemoval_low}           => {RoadMaintenance_low}  0.04111379  0.7687970 0.05347809 3.669862   409
## [2]  {LandUsePlanning_high,                                                                               
##       RoadInfrastructure_low}    => {RoadMaintenance_low}  0.04694411  0.6908284 0.06795336 3.297678   467
## [3]  {RoadInfrastructure_low}    => {RoadMaintenance_low}  0.07529152  0.6903226 0.10906715 3.295263   749
## [4]  {RoadInfrastructure_high,                                                                            
##       SocialServices_low}        => {RoadMaintenance_high} 0.06222356  0.9702194 0.06413349 2.006182   619
## [5]  {LandUsePlanning_low,                                                                                
##       TransitPlanning_high}      => {RoadMaintenance_high} 0.09207881  0.9631966 0.09559710 1.991661   916
## [6]  {LandUsePlanning_low,                                                                                
##       RoadInfrastructure_high}   => {RoadMaintenance_high} 0.09278247  0.9614583 0.09650181 1.988066   923
## [7]  {SnowRemoval_high,                                                                                   
##       SocialServices_low}        => {RoadMaintenance_high} 0.06202252  0.9610592 0.06453559 1.987241   617
## [8]  {RecreationFacilities_low,                                                                           
##       RoadInfrastructure_high}   => {RoadMaintenance_high} 0.04141536  0.9537037 0.04342581 1.972032   412
## [9]  {SocialServices_low,                                                                                 
##       TransitPlanning_high}      => {RoadMaintenance_high} 0.06212304  0.9537037 0.06513872 1.972032   618
## [10] {LandUsePlanning_low,                                                                                
##       SnowRemoval_high}          => {RoadMaintenance_high} 0.09217933  0.9473140 0.09730599 1.958819   917
## [11] {RecreationFacilities_low,                                                                           
##       SnowRemoval_high}          => {RoadMaintenance_high} 0.04081222  0.9463869 0.04312425 1.956902   406
## [12] {SnowRemoval_high,                                                                                   
##       TransitPlanning_high}      => {RoadMaintenance_high} 0.39987937  0.9386503 0.42601528 1.940905  3978
## [13] {RecreationFacilities_low,                                                                           
##       TransitPlanning_high}      => {RoadMaintenance_high} 0.04081222  0.9376443 0.04352634 1.938825   406
## [14] {RoadInfrastructure_high,                                                                            
##       SnowRemoval_high}          => {RoadMaintenance_high} 0.40832328  0.9325069 0.43787696 1.928202  4062
## [15] {RoadInfrastructure_high,                                                                            
##       TransitPlanning_high}      => {RoadMaintenance_high} 0.41043426  0.9283765 0.44209891 1.919661  4083
## [16] {RoadInfrastructure_low,                                                                             
##       SocialServices_high}       => {LandUsePlanning_high} 0.06473663  0.9484536 0.06825493 1.916948   644
## [17] {RoadInfrastructure_high,                                                                            
##       SocialServices_low}        => {TransitPlanning_high} 0.06292722  0.9811912 0.06413349 1.912400   626
## [18] {RoadMaintenance_high,                                                                               
##       SocialServices_low}        => {TransitPlanning_high} 0.06212304  0.9732283 0.06383193 1.896880   618
## [19] {RoadMaintenance_low,                                                                                
##       SocialServices_high}       => {LandUsePlanning_high} 0.12404503  0.9384030 0.13218737 1.896634  1234
## [20] {LandUsePlanning_low,                                                                                
##       TransitService_high}       => {RoadMaintenance_high} 0.09217933  0.9151697 0.10072376 1.892352   917

I further filtered the rules using minimum thresholds for support, confidence, and lift to retain only the most meaningful associations.

rules_top <- rules_nr[
  quality(rules_nr)$support >= 0.05 &
  quality(rules_nr)$confidence >= 0.7 &
  quality(rules_nr)$lift >= 1.8
]

summary(rules_top)
## set of 60 rules
## 
## rule length distribution (lhs + rhs):sizes
##  3 
## 60 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       3       3       3       3       3       3 
## 
## summary of quality measures:
##     support          confidence        coverage            lift      
##  Min.   :0.06001   Min.   :0.8733   Min.   :0.06383   Min.   :1.806  
##  1st Qu.:0.06293   1st Qu.:0.9304   1st Qu.:0.06818   1st Qu.:1.835  
##  Median :0.09258   Median :0.9463   Median :0.09731   Median :1.850  
##  Mean   :0.20103   Mean   :0.9418   Mean   :0.21551   Mean   :1.867  
##  3rd Qu.:0.40764   3rd Qu.:0.9611   3rd Qu.:0.43144   3rd Qu.:1.884  
##  Max.   :0.42501   Max.   :0.9812   Max.   :0.47577   Max.   :2.006  
##      count     
##  Min.   : 597  
##  1st Qu.: 626  
##  Median : 921  
##  Mean   :2000  
##  3rd Qu.:4055  
##  Max.   :4228  
## 
## mining info:
##           data ntransactions support confidence
##  calgary_trans          9948    0.04        0.6
##                                                                                                       call
##  apriori(data = calgary_trans, parameter = list(support = 0.04, confidence = 0.6, minlen = 2, maxlen = 3))

I visualised the final set of selected rules to examine their patterns in terms of support, confidence, and lift.

plot(rules_top, method = "grouped")

plot(rules_top, method = "paracoord", control = list(reorder = TRUE))

plot(rules_top, measure = c("support", "lift"), shading = "confidence")

plot(rules_top, method = "matrix", measure = "lift")
## Itemsets in Antecedent (LHS)
##  [1] "{RoadInfrastructure_high,SocialServices_low}"    
##  [2] "{RoadInfrastructure_high,TransitPlanning_high}"  
##  [3] "{RoadInfrastructure_low,SocialServices_high}"    
##  [4] "{LandUsePlanning_low,RoadInfrastructure_high}"   
##  [5] "{SnowRemoval_high,SocialServices_low}"           
##  [6] "{RoadMaintenance_low,SocialServices_high}"       
##  [7] "{LandUsePlanning_low,TransitPlanning_high}"      
##  [8] "{LandUsePlanning_low,TransitService_high}"       
##  [9] "{SocialServices_high,TransitPlanning_low}"       
## [10] "{SnowRemoval_high,TransitPlanning_high}"         
## [11] "{SocialServices_low,TransitPlanning_high}"       
## [12] "{RoadMaintenance_high,SocialServices_low}"       
## [13] "{SnowRemoval_high,TransitService_high}"          
## [14] "{SocialServices_low,TransitService_high}"        
## [15] "{RoadInfrastructure_high,SnowRemoval_high}"      
## [16] "{LandUsePlanning_low,SnowRemoval_high}"          
## [17] "{SocialServices_high,TransitService_low}"        
## [18] "{LandUsePlanning_high,RoadInfrastructure_low}"   
## [19] "{LandUsePlanning_low,RoadMaintenance_high}"      
## [20] "{SnowRemoval_low,SocialServices_high}"           
## [21] "{LandUsePlanning_low,SpringCleaning_high}"       
## [22] "{RoadInfrastructure_high,TransitService_high}"   
## [23] "{RoadInfrastructure_high,SpringCleaning_high}"   
## [24] "{SocialServices_low,SpringCleaning_high}"        
## [25] "{LandUsePlanning_high,TransitPlanning_low}"      
## [26] "{RecreationFacilities_high,SocialServices_high}" 
## [27] "{RoadMaintenance_high,SnowRemoval_high}"         
## [28] "{SpringCleaning_high,TransitPlanning_high}"      
## [29] "{LandUsePlanning_high,TransitService_low}"       
## [30] "{RoadMaintenance_high,TransitPlanning_high}"     
## [31] "{RoadMaintenance_high,TransitService_high}"      
## [32] "{TransitPlanning_high,TransitService_high}"      
## [33] "{LandUsePlanning_high,RoadMaintenance_low}"      
## [34] "{RoadInfrastructure_high,RoadMaintenance_high}"  
## [35] "{LandUsePlanning_high,SnowRemoval_low}"          
## [36] "{LandUsePlanning_high,RecreationFacilities_high}"
## [37] "{SnowRemoval_high,SpringCleaning_high}"          
## Itemsets in Consequent (RHS)
## [1] "{SocialServices_high}"     "{RoadInfrastructure_high}"
## [3] "{SnowRemoval_high}"        "{TransitPlanning_high}"   
## [5] "{LandUsePlanning_high}"    "{RoadMaintenance_high}"

Grouped plot (after filtering)

After filtering the rules more strictly, the grouped plot looks a lot simpler. There are far fewer rules now, and most of the remaining ones are related to road maintenance and other infrastructure services. I can clearly see road infrastructure, snow removal, and transit planning showing up together on the left, with road maintenance appearing on the right.

Parallel plot (after filtering)

In the filtered parallel coordinates plot, most rules still converge toward high satisfaction outcomes on the RHS. The stronger rules mainly connect combinations of service ratings to other high-rated services, rather than to low road maintenance. While low road infrastructure and low snow removal appeared together in earlier analyses, that pattern is no longer prominent after applying the stricter support, confidence, and lift thresholds.

Scatter plot (after filtering)

The scatter plot shows a clear trade-off between support and lift. Most rules fall into two groups: one with lower support but higher lift, and another with higher support but slightly lower lift. The darker points indicate higher confidence, which means these rules are very consistent when they occur. Overall, the plot shows that the strongest rules either capture very reliable but less common patterns, or more common patterns with still reasonably strong associations.

14. Conclusion

In this project, I used association rule mining to explore how people in Calgary rate different city services. Instead of trying to predict satisfaction, I focused on finding patterns in how service ratings appear together across survey responses.

I transformed the survey results into transactional data by grouping ratings into low and high categories and removing neutral responses. This allowed me to focus on clearer satisfaction and dissatisfaction signals and apply association rule mining more effectively. I first used Eclat to identify frequent co-occurring service ratings and then applied Apriori to analyse directional relationships using support, confidence, and lift.

The results show that high satisfaction dominates the dataset. Services such as parks, recreation facilities, and 311 services often appear together, which suggests that respondents tend to evaluate these everyday services in a similar way. At the same time, the strongest and most informative rules involve dissatisfaction. In particular, low ratings for road infrastructure and snow removal are strongly associated with low road maintenance, even though these patterns occur less frequently overall.

Overall, this analysis shows that association rule mining can reveal both broad satisfaction trends and specific problem areas in survey data. The results highlight how closely related services are often evaluated together and how dissatisfaction in infrastructure-related services tends to cluster around maintenance issues.