1 Exploración …

Otra variable interesante de explorar es la del puerto de embarque. Sin embargo, por tener una cardinalidad muy alta, es muy dificil lograr apreciar las relaciones con esta herramienta visual. Lo que se puede hacer es buscar los 10 puertos aleatorios o ordenados por algún atributo (los mas recurrentes), o también los 10 primeros según aparecen en la BBDD o ordenados por alfabeto, etc.

Para esta caso, eligiré simplemente el primer puerto de embarque que aparezca para cada región de origen, y filtrare para evitar repetidos.

1.1 A priori

## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##         0.8    0.1    1 none FALSE            TRUE       5     0.1      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 255418 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[164 item(s), 2554182 transaction(s)] done [0.77s].
## sorting and recoding items ... [15 item(s)] done [0.06s].
## creating transaction tree ... done [1.09s].
## checking subsets of size 1 2 3 4 done [0.04s].
## writing ... [24 rule(s)] done [0.00s].
## creating S4 object  ... done [0.15s].
funcion_arules <- function(regla, tipo = 'support', elementos = 8) {
  require(arules)
  require(stringr)
  require(DT)
  
  top.confidence<- sort(regla, decreasing = TRUE, na.last = NA, by = tipo)
  out <-cbind(labels = labels(top.confidence), quality(top.confidence))
  
  corregidos <- gsub("[{]", "", as.character(out$labels)) %>% 
  gsub("[}]", "", .) %>% 
  str_split_fixed(., "=>", 2) %>% 
  cbind(., out[, c(2:6)]) %>% 
  as.data.table(.)
  
  tabla <- str_split_fixed(corregidos$"1", ",", 4) %>%
         as.data.table(.) %>% 
         lapply(., function(x) str_split_fixed(x, "=", 2)) %>% 
         do.call(cbind, .) %>%
         .[,seq(2,8, by = 2)] %>%
         data.table(., corregidos[, -1])

  tabla$'2' <- tabla[, 5] %>%
    lapply(., function(x) str_split_fixed(x, "=", 2)) %>%
    as.data.table() %>%
    .[,2]
  
  names(tabla)[5] <- "Lado Izquierdo (lhs)"
  
  DT::datatable(tabla[, c(1:5, 7, 10, 6,8)], 
              selection = count, 
              options = list(pageLength = elementos)) %>%
    formatPercentage(c('support', 'confidence', 'coverage')) %>%
    formatStyle('Lado Izquierdo (lhs)',
                backgroundColor = '#bbc9e5') %>% 
    formatStyle('confidence', 
                background = styleColorBar(range(tabla$confidence), 
                                           '#ff9896'),
                backgroundSize = '10% 10%%', 
                backgroundPosition = 'center') %>%
    formatStyle('count', 
                background = styleColorBar(range(tabla$count),
                                           '#ffbb78'), 
                backgroundSize = '10% 10%%',
                backgroundPosition = 'center') %>%
    formatStyle('support',
                background = styleColorBar(range(tabla$support),
                                           "#98df8a"), 
                backgroundSize = '10% 10%%', 
                backgroundPosition = 'center') %>%
    formatStyle('coverage',
                background = styleColorBar(range(tabla$coverage),
                                           '#cdcc5d'), 
                backgroundSize = '10% 10%%',
                backgroundPosition = 'center')
}
  • El primer estudio del algoritmo apriori genera solo 24 reglas de asociación. Esto se debe a que los requisitos son bastante exigentes:
  1. Soporte de un 10%, lo que implica, que la asociación debe haber ocurrido a lo menos 265 mil veces. Esto es 265 mil exportaciones entre 2010 y 2020 en las cuales haya ocurrido cierto tipo de asociación.

  2. Confianza de un 85%. Este es menos exigente pero declara que la regla de asociación tiene que haber ocurrido en un 85% de las veces respecto a la totalidad que comprenden las variables del “Lado Derecho” (rhs). Por ejemplo, en el caso 1, hay un 100% de confianza debido a que el 100% de las exportaciones que salieron por la aduana de Valparaíso embarcaron por puerto marítimo.

  • En el centro (solapados) yacen la región metropolitana y el código carga R, que son las categorías mas frecuentes para este grupo de reglas, asociados con transporte vía aereopuerto, aduana metropolitana y destino Perú. Otro grupo de asociaciones ocurre entre puerto marítimo, Ohhigins, Valparaíso, San Antonio y el código carga F.

1.2 Región

Explorar asociaciones relacionadas a la región de origen. Región de origen como lado derecho (“de tal combinación de categorías, el”x“% se origina en la región”y").

## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##        0.95    0.1    1 none FALSE            TRUE       5   1e-04      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 255 
## 
## set item appearances ...[17 item(s)] done [0.00s].
## set transactions ...[463 item(s), 2554182 transaction(s)] done [1.58s].
## sorting and recoding items ... [348 item(s)] done [0.18s].
## creating transaction tree ... done [3.27s].
## checking subsets of size 1 2 3 4 5 6 7 8 9 10 done [2.10s].
## writing ... [8211 rule(s)] done [0.08s].
## creating S4 object  ... done [0.34s].
  • Es bastante interesante el resultado. Incluso si uno escoge como confianza el 100%, se encuentran 1393 reglas de asociación (con un soporte que apenas exige un mínimo de 256 registros de cada asociación).

  • Hay muchísimas formas de combinar las variables, hallando asociaciones interesantes en cada una. Por ejemplo:
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##         0.9    0.1    1 none FALSE            TRUE       5   1e-04      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 255 
## 
## set item appearances ...[17 item(s)] done [0.00s].
## set transactions ...[8207 item(s), 2554182 transaction(s)] done [3.51s].
## sorting and recoding items ... [1787 item(s)] done [0.15s].
## creating transaction tree ... done [3.87s].
## checking subsets of size 1 2 3 4 5 6 7 8 done [1.58s].
## writing ... [8215 rule(s)] done [0.04s].
## creating S4 object  ... done [0.57s].
  • Sirve como técnica para un esfuerzo de decodificar el significado del número del item. Se logra apreciar relación entre números de item y regiones de origen. Como por ejemplo, el 96% de las exportaciones del item 16055300 se originaron en la región de los lagos, que equivale a poco más de 10.000 exportaciones. Además, este item se exporta vía marítima (93.7%) y tiene un código de carga F (94.3%) (Estos últimos % son relativos al total de exportaciones de este item que fueron originados en la región de los lagos).

  • De modo similar, (en página 2) se puede ver que el item 44091022 esta relacionado con la región del bío bío, desembarque en américa del norte, por vía marítima y código de carga R y destino USA (con % superiores al 90% en combinaciones de estas cateogorías).

  • Por último, otro ejemplo (página 3) es el item 48109210, que se origina en la región del Maule, código R, por puerto marítimo.

  • Pero el número de asociaciones es demasiado extenso como para estudiarlos de modo individual (son más de 8000 reglas para grados de confianza superiores al 90%!).

Excluyendo la variable item:

## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##        0.65    0.1    1 none FALSE            TRUE       5   1e-04      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 255 
## 
## set item appearances ...[17 item(s)] done [0.00s].
## set transactions ...[382 item(s), 2554182 transaction(s)] done [1.09s].
## sorting and recoding items ... [292 item(s)] done [0.10s].
## creating transaction tree ... done [2.77s].
## checking subsets of size 1 2 3 4 5 6 7 done [0.10s].
## writing ... [1958 rule(s)] done [0.01s].
## creating S4 object  ... done [0.28s].

  • El centro es la región metropolitana con el tipo de carga R relacionado con distintos países, vía marítima.

1.2.1 Regiones como lado izquierdo

Esto obliga a relaciones 1 a 1, del tipo “el x% de lo que se origina en la región y cumple esta condición”

## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##        0.35    0.1    1 none FALSE            TRUE       5   1e-04      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 255 
## 
## set item appearances ...[17 item(s)] done [0.00s].
## set transactions ...[8207 item(s), 2554182 transaction(s)] done [3.38s].
## sorting and recoding items ... [1787 item(s)] done [0.14s].
## creating transaction tree ... done [3.80s].
## checking subsets of size 1 2 done [0.12s].
## writing ... [57 rule(s)] done [0.00s].
## creating S4 object  ... done [0.50s].
  • De esta forma se encuentran asociaciones interesantes como que prácticamente la totalidad de la mercancía nacionalizada es del tipo R, similar con Arica y Parinacota. Luego hay asociaciones del tipo R o F según la región. Atacama, los lagos, coquimbo, magallanes y aysén se especializan en el código F, el resto en R. La otra asociación tiene que ver con la vía de transporte, donde predomina la marítima.

1.3 Pais de destino

## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##        0.35    0.1    1 none FALSE            TRUE       5   1e-04      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 255 
## 
## set item appearances ...[122 item(s)] done [0.00s].
## set transactions ...[235 item(s), 2554182 transaction(s)] done [0.99s].
## sorting and recoding items ... [186 item(s)] done [0.09s].
## creating transaction tree ... done [2.47s].
## checking subsets of size 1 2 3 4 5 6 7 done [0.08s].
## writing ... [5105 rule(s)] done [0.00s].
## creating S4 object  ... done [0.26s].
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##        0.35    0.1    1 none FALSE            TRUE       5   1e-04      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 255 
## 
## set item appearances ...[122 item(s)] done [0.00s].
## set transactions ...[235 item(s), 2554182 transaction(s)] done [0.97s].
## sorting and recoding items ... [186 item(s)] done [0.10s].
## creating transaction tree ... done [2.34s].
## checking subsets of size 1 2 done [0.01s].
## writing ... [527 rule(s)] done [0.00s].
## creating S4 object  ... done [0.25s].
  • Se encuentra la asociación del tipo; país-código carga o país-via transporte, principalmente R y puerto marítimo. En países pequeños, hay varios casos donde la totalidad de las exportaciones son de carga R, de via marítima, o ambas.

  • Destaca en la segunda página Bolivia con el 99% de las exportaciones del tipo R y Dinamarca, Perú, Paraguay, Bélgica y Corea del Sur en las 6 primeras páginas, con porcentajes superiores al 94% de exportaciones que caen en algunas de estas categorías.

1.4 Valor

## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##        0.45    0.1    1 none FALSE            TRUE       5   1e-04      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 255 
## 
## set item appearances ...[9 item(s)] done [0.00s].
## set transactions ...[158 item(s), 2554182 transaction(s)] done [0.74s].
## sorting and recoding items ... [136 item(s)] done [0.06s].
## creating transaction tree ... done [2.07s].
## checking subsets of size 1 2 3 4 5 done [0.02s].
## writing ... [1146 rule(s)] done [0.00s].
## creating S4 object  ... done [0.22s].

20 reglas con mayor grado de confianza

  • Asociación entre valor Medio y distintas categorías de dificil lectura. En general los tramos de valor medios son poco informativos.

El desafío es convertir el verboso retorno de arules en una data table legible que permita un procesamiento simple de los datos y el uso apropiado de visualizaciones.

## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##        0.45    0.1    1 none FALSE            TRUE       5   1e-04      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 255 
## 
## set item appearances ...[9 item(s)] done [0.00s].
## set transactions ...[158 item(s), 2554182 transaction(s)] done [0.73s].
## sorting and recoding items ... [136 item(s)] done [0.06s].
## creating transaction tree ... done [2.20s].
## checking subsets of size 1 2 done [0.00s].
## writing ... [16 rule(s)] done [0.00s].
## creating S4 object  ... done [0.23s].
  • Las 16 reglas de valor entregan información intersante. Se logra asociar el valor Alto con vía de transporte para la totalidad de los casos, y para la gran mayoría con el mercado asiático, en particular China (54% de las exportaciones). Similar con el tramo “Bastante Alto”. También hay información importante del otro extremo, prácticamente la mitad de lo “Muy Bajo” desembarca en América del Sur, y/o es mercancía nacionalizada. Bastante Bajo se asocia con América del Sur y la Región Metropolitana.

2 Diagramas de relaciones del tipo “Sankey”

## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##         0.2    0.1    1 none FALSE            TRUE       5   1e-04      1
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 255 
## 
## set item appearances ...[9 item(s)] done [0.00s].
## set transactions ...[158 item(s), 2554182 transaction(s)] done [0.86s].
## sorting and recoding items ... [136 item(s)] done [0.10s].
## creating transaction tree ... done [2.28s].
## checking subsets of size 1 2 done [0.00s].
## writing ... [53 rule(s)] done [0.00s].
## creating S4 object  ... done [0.21s].

2.0.1 Categorías asociadas con tramos de valor hallados mediante algoritmo apriori

2.0.2 Solo tramos extremos de valor

2.1 10 puertos pseudo-aleatorios y tramos de valor

Se escoge 10 puertos de embarque para ser representados mediante el diagrama de Sankey. La ventaja es que es un diagrama interactivo, que permite visualizar el monto exacto de las relaciones al sostener el mouse sobre cada línea de conexión.

En este caso se eligen 10 puertos de embarque de modo “aleatorio”. La idea es que se eligen los 10 primeros puertos que tengan el primer registro de una exportación con tramo de valor extremo. Se elige esto sobre lo totalmente aleatorio, dado que exise alta probabilidad de que aparezcan los 10 puertos con mayor N, u otro tipo de ordenamiento que muestre puertos solo con rangos de valor Medio o Relativo, que son los mas frecuentes.

##  [1] "Aerop. A.m. Benitez" "Valparaíso"          "San Vicente"        
##  [4] "Chungará"            "Chacalluta"          "Patache"            
##  [7] "Antofagasta"         "Los Libertadores"    "San Antonio"        
## [10] "Lirquén"

2.1.1 Tramos de valor y puertos de embarque

#R.P