MATH 427: Classification Trees

Eric Friedlander

Computational Set-Up

library(tidyverse)
library(tidymodels)
library(rpart.plot)
library(knitr)
library(kableExtra)

tidymodels_prefer()

set.seed(427)

Decision Trees for Classification

Classification Trees

  • Predictions:
    • Classes: most common class at terminal node
    • Probability: proportion of each class at terminal node
  • Rest of tree: same as regression tree

Classification Trees

  • Predictions:
    • Classes: most common class at terminal node
    • Probability: proportion of each class at terminal node
  • Rest of tree: same as regression tree

Fitting Classification Trees

  • Still use recursive binary splitting to grow a classification tree
  • \(\hat{p}_{mk}\): proportion of training observations in the \(m^{th}\) region from the \(k^{th}\) class
  • \(SSE\) can be replaced by
    • classification error rate, fraction of the training observations that do not belong to the most common class ($1 - ) \[E = 1 - \max_k \left(\hat{p}_{mk}\right)\]

Alternatives to Classification Error Rate

  • Gini index, measure of node purity— small values indicate that a node is predominantly a single class \[G = \displaystyle \sum_{k=1}^{K} \hat{p}_{mk}\left(1-\hat{p}_{mk}\right)\]
  • Entropy, measure of node purity— small values indicate that a node is predominantly a single class \[G = \displaystyle -\sum_{k=1}^{K} \hat{p}_{mk}]\log\left(\hat{p}_{mk}\right)\]

General Idea

  • Many different implementations so check documentation
  • ISLR2 recommendation
    • Use Gini or Cross-Entropy to split
    • Use classification error rate to prune
  • rpart uses Gini to split and classification error (plus penalty) to prune

Data Cleaning Side-Quest

Data: Voter Frequency

  • Info about data
  • Goal: Identify individuals who are unlikely to vote to help organization target “get out the vote” effort.
voter_data <- read_csv('https://raw.githubusercontent.com/fivethirtyeight/data/master/non-voters/nonvoters_data.csv')

glimpse(voter_data)
Rows: 5,836
Columns: 119
$ RespId         <dbl> 470001, 470002, 470003, 470007, 480008, 480009, 480010,…
$ weight         <dbl> 0.7516, 1.0267, 1.0844, 0.6817, 0.9910, 1.0591, 1.1512,…
$ Q1             <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
$ Q2_1           <dbl> 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1…
$ Q2_2           <dbl> 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 4, 1, 1, 1, 1, 1, 1…
$ Q2_3           <dbl> 2, 2, 2, 1, -1, 3, 2, 2, 1, 2, 2, 1, 2, 3, 1, 1, 1, 1, …
$ Q2_4           <dbl> 4, 3, 2, 3, 1, 4, 3, 2, 3, 1, 2, 4, 2, 3, 1, 1, 1, 1, 2…
$ Q2_5           <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 1, 1, 1, 1, 1, 1…
$ Q2_6           <dbl> 4, 1, 1, 1, 1, 3, 1, 3, 1, 1, 2, 4, 2, 1, 1, 1, 1, 1, 2…
$ Q2_7           <dbl> 2, 2, 2, 1, 1, 3, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1…
$ Q2_8           <dbl> 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 2, 1, 1, 1, 1, 2, 1…
$ Q2_9           <dbl> 4, 1, 4, 1, 1, 1, 1, 4, 3, 1, 3, 4, 4, 4, 1, 1, 2, 1, 3…
$ Q2_10          <dbl> 2, 3, 3, 2, 1, 4, 3, 2, 2, 2, 3, 2, 2, 3, 4, 2, 1, 1, 1…
$ Q3_1           <dbl> 1, 3, 2, 1, 4, 1, 2, 2, 1, 3, 3, 1, 4, 1, 3, 3, 4, 4, 3…
$ Q3_2           <dbl> 1, 3, 2, 1, -1, 2, 3, 3, 4, 3, 3, 1, 4, 1, 4, 4, 2, 4, …
$ Q3_3           <dbl> 4, 4, 3, 4, 1, -1, 3, 3, 2, 3, 2, 4, 1, 4, 4, 4, 4, 1, …
$ Q3_4           <dbl> 4, 3, 3, 4, 1, 2, 2, 1, 1, 2, 2, 4, 1, 1, 1, 1, 4, 1, 2…
$ Q3_5           <dbl> 3, 3, 2, 2, 2, 2, 2, 1, 2, 3, 2, 3, 1, 1, 2, 2, 3, 3, 2…
$ Q3_6           <dbl> 2, 2, 2, 1, 4, 2, 2, 2, 1, 2, 3, 1, 4, 1, 1, 2, 4, 3, 2…
$ Q4_1           <dbl> 2, 2, 2, 1, 1, 4, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2…
$ Q4_2           <dbl> 1, 2, 2, 2, 1, 3, 1, 1, 2, 3, 2, 1, 1, 2, 2, 1, 1, 1, 1…
$ Q4_3           <dbl> 2, 2, 3, 2, 1, 3, 1, 2, 2, 3, 3, 1, 1, 2, 2, 1, 1, 1, 1…
$ Q4_4           <dbl> 2, 3, 3, 2, 1, 3, 2, 2, 4, 3, 3, 2, 3, 4, 4, 2, 1, 1, 2…
$ Q4_5           <dbl> 2, 3, 2, 2, 1, 4, 1, 2, 3, 2, 3, 1, 2, 2, 2, 1, 1, 2, 3…
$ Q4_6           <dbl> 2, 1, 3, 2, 1, 2, 1, 3, 3, 3, 3, 2, 4, 2, 1, 2, 1, 1, 3…
$ Q5             <dbl> 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1…
$ Q6             <dbl> 2, 2, 1, 3, 2, 4, 1, 1, 3, 3, 3, 2, 4, 4, 3, 1, 2, 3, 2…
$ Q7             <dbl> 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1…
$ Q8_1           <dbl> 3, 2, 3, 3, 1, 3, 2, 4, 3, 2, 2, 4, 1, 4, 1, 1, 4, 1, 3…
$ Q8_2           <dbl> 4, 3, 2, 2, 3, 3, -1, 4, 4, 3, 2, 3, 4, 4, 3, 4, 2, 3, …
$ Q8_3           <dbl> 2, 2, 1, 2, 2, 3, 2, 1, 3, 2, 2, 2, 1, 4, 2, 2, 2, 3, 2…
$ Q8_4           <dbl> 1, 2, 1, 2, 3, 2, 1, 1, 2, 2, 2, 3, 3, 2, 2, 2, 1, 2, 1…
$ Q8_5           <dbl> 1, 2, 2, 2, 3, 3, 1, 2, 2, 2, 2, 2, 4, 4, 2, 2, 1, 2, 2…
$ Q8_6           <dbl> 1, 2, 2, 2, 3, 3, 1, 2, 2, 2, 2, 2, 3, 2, 2, 3, 2, 2, 2…
$ Q8_7           <dbl> 1, 3, 2, 2, 4, 2, 2, 4, 4, 2, 3, 1, 4, 4, 4, 4, 1, 4, 4…
$ Q8_8           <dbl> 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 3, 2, 2, 1, 1, 1, 1, 2…
$ Q8_9           <dbl> 4, 2, 1, 2, 2, 2, 2, 1, 2, 2, 3, 2, 3, 2, 1, 1, 1, 2, 1…
$ Q9_1           <dbl> 2, 1, 1, 1, 1, -1, 1, 1, 1, 2, 1, 2, 2, 3, 1, 1, 1, 1, …
$ Q9_2           <dbl> 2, 1, 2, 2, 4, -1, 2, 2, 4, 2, 2, 2, 3, 3, 4, 4, 4, 4, …
$ Q9_3           <dbl> 4, 3, 4, 4, 3, -1, 2, 3, 4, 3, 3, 4, 2, 3, 3, 3, 4, 4, …
$ Q9_4           <dbl> 4, 4, 4, 4, 4, 4, 3, 4, 4, 3, 4, 4, 4, 3, 4, 4, 4, 4, 4…
$ Q10_1          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q10_2          <dbl> 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q10_3          <dbl> 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2…
$ Q10_4          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q11_1          <dbl> 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2…
$ Q11_2          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q11_3          <dbl> 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2…
$ Q11_4          <dbl> 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2…
$ Q11_5          <dbl> 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2…
$ Q11_6          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q14            <dbl> 5, 1, 5, 5, 1, -1, 1, 5, 2, 1, 1, 5, 1, 2, 1, 1, 2, 1, …
$ Q15            <dbl> 1, 1, 2, 1, 5, -1, 3, 1, 4, 5, 1, 2, 5, 2, 3, 5, 1, 4, …
$ Q16            <dbl> 1, 2, 1, 4, 1, -1, 3, 1, 1, 3, 1, 2, 1, 1, 1, 1, 1, 1, …
$ Q17_1          <dbl> 1, 2, 1, 1, 2, -1, 3, 1, 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, …
$ Q17_2          <dbl> 1, 2, 3, 1, 2, -1, 2, 1, 1, 1, 2, 1, 4, 3, 1, 1, 1, 1, …
$ Q17_3          <dbl> 1, 2, 1, 1, 4, -1, 4, 1, 2, 1, 3, 1, 4, 3, 2, 3, 1, 4, …
$ Q17_4          <dbl> 3, 3, 1, 1, 4, -1, 2, 2, 4, 2, 2, 3, 2, 2, 4, 4, 1, 4, …
$ Q18_1          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2…
$ Q18_2          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q18_3          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q18_4          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q18_5          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q18_6          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q18_7          <dbl> 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q18_8          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2…
$ Q18_9          <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2…
$ Q18_10         <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
$ Q19_1          <dbl> -1, -1, -1, -1, -1, -1, 1, -1, 1, 1, 1, -1, -1, -1, 1, …
$ Q19_2          <dbl> -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1…
$ Q19_3          <dbl> 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, -1, 1, -1…
$ Q19_4          <dbl> 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -…
$ Q19_5          <dbl> 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -…
$ Q19_6          <dbl> 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, -…
$ Q19_7          <dbl> 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -…
$ Q19_8          <dbl> -1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, …
$ Q19_9          <dbl> -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, -1, 1, -1, -1, …
$ Q19_10         <dbl> -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -…
$ Q20            <dbl> 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1…
$ Q21            <dbl> 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 3, 1, 1, 1, 1…
$ Q22            <dbl> NA, NA, NA, NA, NA, 7, NA, NA, NA, NA, NA, NA, 6, NA, N…
$ Q23            <dbl> 2, 1, 2, 2, 1, -1, 1, 2, 1, 1, 1, 2, 1, 3, 1, 1, 2, 1, …
$ Q24            <dbl> 1, 3, 1, 1, 3, 4, 1, 1, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 1…
$ Q25            <dbl> 1, 3, 2, 2, 1, 3, 1, 2, 1, 2, 3, 1, 2, 4, 1, 1, 1, 1, 1…
$ Q26            <dbl> 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1…
$ Q27_1          <dbl> 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1…
$ Q27_2          <dbl> 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1…
$ Q27_3          <dbl> 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1…
$ Q27_4          <dbl> 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1…
$ Q27_5          <dbl> 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1…
$ Q27_6          <dbl> 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1…
$ Q28_1          <dbl> 1, 1, 1, 1, 1, NA, 1, 1, 1, 1, 1, 1, NA, -1, 1, -1, 1, …
$ Q28_2          <dbl> 1, -1, -1, 1, 1, NA, -1, -1, -1, 1, -1, 1, NA, -1, 1, -…
$ Q28_3          <dbl> 1, -1, -1, -1, 1, NA, 1, -1, 1, -1, -1, -1, NA, -1, 1, …
$ Q28_4          <dbl> 1, -1, -1, 1, -1, NA, 1, -1, -1, -1, 1, 1, NA, -1, 1, -…
$ Q28_5          <dbl> -1, -1, -1, -1, 1, NA, 1, -1, -1, -1, -1, 1, NA, -1, -1…
$ Q28_6          <dbl> -1, 1, -1, -1, -1, NA, -1, 1, -1, -1, -1, 1, NA, -1, 1,…
$ Q28_7          <dbl> 1, -1, 1, -1, 1, NA, -1, -1, 1, 1, -1, -1, NA, -1, 1, -…
$ Q28_8          <dbl> -1, -1, -1, -1, -1, NA, -1, -1, -1, -1, -1, -1, NA, 1, …
$ Q29_1          <dbl> NA, NA, NA, NA, NA, -1, NA, NA, NA, NA, NA, NA, -1, NA,…
$ Q29_2          <dbl> NA, NA, NA, NA, NA, -1, NA, NA, NA, NA, NA, NA, 1, NA, …
$ Q29_3          <dbl> NA, NA, NA, NA, NA, -1, NA, NA, NA, NA, NA, NA, -1, NA,…
$ Q29_4          <dbl> NA, NA, NA, NA, NA, -1, NA, NA, NA, NA, NA, NA, -1, NA,…
$ Q29_5          <dbl> NA, NA, NA, NA, NA, -1, NA, NA, NA, NA, NA, NA, -1, NA,…
$ Q29_6          <dbl> NA, NA, NA, NA, NA, -1, NA, NA, NA, NA, NA, NA, -1, NA,…
$ Q29_7          <dbl> NA, NA, NA, NA, NA, -1, NA, NA, NA, NA, NA, NA, -1, NA,…
$ Q29_8          <dbl> NA, NA, NA, NA, NA, -1, NA, NA, NA, NA, NA, NA, -1, NA,…
$ Q29_9          <dbl> NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, -1, NA, …
$ Q29_10         <dbl> NA, NA, NA, NA, NA, -1, NA, NA, NA, NA, NA, NA, -1, NA,…
$ Q30            <dbl> 2, 3, 2, 2, 1, 5, 1, 2, 1, 3, 1, 2, 1, 5, 1, 1, 2, 1, 5…
$ Q31            <dbl> NA, NA, NA, NA, -1, NA, 1, NA, 1, NA, 1, NA, 2, NA, 1, …
$ Q32            <dbl> 1, NA, 2, 1, NA, NA, NA, 1, NA, NA, NA, 1, NA, NA, NA, …
$ Q33            <dbl> NA, 1, NA, NA, NA, -1, NA, NA, NA, 1, NA, NA, NA, 1, NA…
$ ppage          <dbl> 73, 90, 53, 58, 81, 61, 80, 68, 70, 83, 43, 42, 48, 52,…
$ educ           <chr> "College", "College", "College", "Some college", "High …
$ race           <chr> "White", "White", "White", "Black", "White", "White", "…
$ gender         <chr> "Female", "Female", "Male", "Female", "Male", "Female",…
$ income_cat     <chr> "$75-125k", "$125k or more", "$125k or more", "$40-75k"…
$ voter_category <chr> "always", "always", "sporadic", "sporadic", "always", "…

Cleaning the Data: Straight Forward Stuff

voter_clean <- voter_data |> 
  select(-RespId, -weight, -Q1) |>
  mutate(
    educ = factor(educ, levels = c("High school or less", "Some college", "College")),
    income_cat = factor(income_cat, levels = c("Less than $40k", "$40-75k ",
                                               "$75-125k", "$125k or more")),
    voter_category = factor(voter_category, levels = c("rarely/never", "sporadic", "always"))
  )

Cleaning Data: Missing Data

voter_data |> 
  summarize(across(everything(), ~sum(is.na(.x)))) |> 
  pivot_longer(everything()) |> 
  filter(value > 0) |> 
  kable() |> 
  kable_paper() |> 
  scroll_box(width = "1050px", height = "400px")
name value
Q22 5350
Q28_1 534
Q28_2 534
Q28_3 534
Q28_4 534
Q28_5 534
Q28_6 534
Q28_7 534
Q28_8 534
Q29_1 4494
Q29_2 4494
Q29_3 4494
Q29_4 4494
Q29_5 4494
Q29_6 4494
Q29_7 4494
Q29_8 4494
Q29_9 4494
Q29_10 4494
Q31 4244
Q32 3834
Q33 3594

Cleaning the Data: Q22, 28, 29, 31, 32, 33

  • Dealing with missing values should depend on what “missing” means in the context of each variable

Cleaning the Data: Q22

voter_clean |> 
  count(Q22) |> 
  kable() |> 
  kable_paper() |> 
  scroll_box(width = "1050px", height = "400px")
Q22 n
-1 12
1 27
2 107
3 19
4 116
5 19
6 100
7 86
NA 5350

Uh-Oh… -1s?

voter_clean |> filter(Q22 == -1) |> select(Q20, Q22) |> kable() |> 
  kable_paper() |> scroll_box(width = "1050px", height = "400px")
Q20 Q22
2 -1
2 -1
2 -1
2 -1
2 -1
2 -1
2 -1
2 -1
2 -1
2 -1
2 -1
2 -1
voter_clean |> filter(is.na(Q22)) |> select(Q20, Q22) |> kable() |> 
  kable_paper() |> scroll_box(width = "1050px", height = "400px")
Q20 Q22
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
-1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA
1 NA

More Cleaning: -1s

voter_clean |> 
  summarize(across(everything(), ~sum(.x == -1))) |> 
  pivot_longer(everything()) |> 
  filter(value > 0)  |> kable() |> 
  kable_paper() |> scroll_box(width = "1050px", height = "400px")
name value
Q2_1 35
Q2_2 36
Q2_3 36
Q2_4 34
Q2_5 28
Q2_6 31
Q2_7 44
Q2_8 26
Q2_9 36
Q2_10 38
Q3_1 39
Q3_2 53
Q3_3 54
Q3_4 32
Q3_5 45
Q3_6 34
Q4_1 39
Q4_2 39
Q4_3 33
Q4_4 38
Q4_5 44
Q4_6 33
Q5 31
Q6 47
Q7 61
Q8_1 47
Q8_2 49
Q8_3 42
Q8_4 34
Q8_5 49
Q8_6 26
Q8_7 42
Q8_8 29
Q8_9 37
Q9_1 74
Q9_2 80
Q9_3 75
Q9_4 82
Q10_1 21
Q10_2 27
Q10_3 27
Q10_4 18
Q11_1 21
Q11_2 24
Q11_3 21
Q11_4 15
Q11_5 16
Q11_6 22
Q14 204
Q15 192
Q16 56
Q17_1 54
Q17_2 59
Q17_3 55
Q17_4 57
Q18_1 49
Q18_2 55
Q18_3 48
Q18_4 56
Q18_5 55
Q18_6 53
Q18_7 56
Q18_8 53
Q18_9 49
Q18_10 52
Q19_1 4139
Q19_2 2818
Q19_3 2777
Q19_4 3599
Q19_5 3488
Q19_6 2705
Q19_7 3648
Q19_8 4167
Q19_9 4420
Q19_10 5529
Q20 20
Q21 23
Q23 109
Q24 73
Q25 27
Q26 25
Q27_1 67
Q27_2 59
Q27_3 80
Q27_4 55
Q27_5 76
Q27_6 56
Q30 48

How should we handle -1s?

  • Seems like -1 means: question asked and not answered, or answer not ranked
  • Seems like NA means: question never asked
  • What should we do?
  • Couple methods:
    • Replace -1 with “Not answered”
    • Replace -1 with NA
    • Replace -1 with NA and add extra columns QX_Ranked_Answered, (Yes/No)
      • Can do this using step_indicate_na in our recipe
      • First, deal with current NAs
      • Second, convert -1s to NA

Dealing with current NAs: Q22

voter_clean <- voter_clean |> 
  filter(Q22 != 5 | is.na(Q22)) |> 
  mutate(Q22 = as_factor(Q22),
         Q22 = if_else(is.na(Q22), "Not Asked", Q22)) 

Cleaning Q28

voter_clean |> 
  count(Q28_1) |> 
  kable()
Q28_1 n
-1 1248
1 4049
NA 520

Cleaning Q28

  • Seems like
    • -1 means not selected
    • Seems like 1 means selected
    • NA means never asked

Cleaning Q28

voter_clean <- voter_clean |> 
  mutate(across(Q28_1:Q28_8, ~if_else(.x == -1, 0, .x)),
         across(Q28_1:Q28_8, ~ as_factor(.x)),
         across(Q28_1:Q28_8, ~if_else(is.na(.x) , "Not Asked", .x))
  )

Cleaning Q29

voter_clean <- voter_clean |> 
  mutate(across(Q29_1:Q29_10, ~if_else(.x == -1, 0, .x)),
         across(Q29_1:Q29_10, ~ as_factor(.x)),
         across(Q29_1:Q29_8, ~if_else(is.na(.x) , "Not Asked", .x))
  )

Cleaning Q31:Q33: Handling Party

voter_clean <- voter_clean |> 
mutate(
  Party_ID = as_factor(case_when(
    Q31 == 1 ~ "Strong Republican",
    Q31 == 2 ~ "Republican",
    Q32 == 1  ~ "Strong Democrat",
    Q32 == 2 ~ "Democrat",
    Q33 == 1 ~ "Lean Republican",
    Q33 == 2 ~ "Lean Democrat",
    TRUE ~ "Other"
  )),
  Party_ID = factor(Party_ID, levels =c("Strong Republican", "Republican", "Lean Republican",
                                          "Other", "Lean Democrat", "Democrat", "Strong Democrat")))

Finally: Dealing with -1s

voter_clean <- voter_clean |> 
  mutate(across(!ppage, ~as_factor(if_else(.x == -1, NA, .x))))

Classification Trees in R

Split Data

set.seed(427)

voter_splits <- initial_split(voter_clean, prop = 0.7, strata = voter_category)
voter_train <- training(voter_splits)
voter_test <- testing(voter_splits)

Define Model

tree_model <- decision_tree(cost_complexity = tune(),
                            min_n = tune(), 
                            tree_depth = tune()) |> 
  set_engine("rpart") |> 
  set_mode("classification")

Define Recipe

tree_recipe <- recipe(voter_category ~ . , data = voter_train) |> 
  step_indicate_na(all_predictors()) |> 
  step_zv(all_predictors()) |> 
  step_integer(educ, income_cat, Party_ID, Q2_2:Q4_6, Q6, Q8_1:Q9_4, Q14:Q17_4,
               Q25:Q26) |> 
  step_impute_median(all_numeric_predictors()) |> 
  step_impute_mode(all_nominal_predictors()) |> 
  step_dummy(all_nominal_predictors(), one_hot = TRUE)

Define Workflow

tree_wf <- workflow() |> 
  add_model(tree_model) |> 
  add_recipe(tree_recipe)

Tune Model

voter_folds <- vfold_cv(voter_train, v = 5, repeats = 10)
tuning_grid <- grid_latin_hypercube(cost_complexity(range = c(-10, 1)), 
                                    min_n(range = c(1, 30)),
                                    tree_depth(range = c(1, 30)), size = 50)
tuned_model <- tune_grid(tree_wf,
                         resamples = voter_folds,
                         grid = tuning_grid,
                         metrics = metric_set(accuracy))

Plot output

autoplot(tuned_model)

Plot output

autoplot(tuned_model)

Select Best Tree

best_combo <- select_best(tuned_model, metric = "accuracy")
best_tree <-  tree_wf |> 
  finalize_workflow(best_combo) |> 
  fit(voter_train)

best_combo |> kable()
cost_complexity tree_depth min_n .config
0.0035352 15 20 Preprocessor1_Model17

Select Best Tree

best_tree |> extract_fit_engine() |> rpart.plot()

Interpreting the tree

  • What features seem to be more important?