projections()
computes two graphs that are particularly
useful to visualize product-product and country-country similarity.
Usage
projections(
proximity_country,
proximity_product,
avg_links = 5,
tolerance = 0.05,
compute = "both"
)
Arguments
- proximity_country
(Type: matrix) the output from
proximity()
) or an equivalent arrangement.- proximity_product
(Type: matrix) the output from
proximity()
) or an equivalent arrangement.- avg_links
average number of connections for the projections. By default this is set to
5
.- tolerance
tolerance for proximity variation on each iteration until obtaining the desired average number of connections. By default this is set to
0.05
.- compute
(Type: character) the proximity to compute. By default this is
"both"
(both projections) but it can also be"country"
or"product"
.
Details
The current implementation follows (Hausmann et al. 2014) to create simplified graphs that correspond to a simplification of the proximity matrices. The result is obtained by iterating and reducing links until the desired average number of links per node is obtained, or a spaning tree after the strongest links is returned when is not possible to return the desired network.
References
For more information see:
Hausmann R, Hidalgo C, Bustos S, Coscia M, Simoes A, Yildirim M (2014). The atlas of economic complexity: Mapping paths to prosperity. MIT Press. doi:10.7551/mitpress/9647.001.0001 .
and the references therein.
Examples
net <- projections(
economiccomplexity_output$proximity$proximity_country,
economiccomplexity_output$proximity$proximity_product,
avg_links = 10,
tolerance = 0.1
)
#> computing country projection...
#> --------------------------------------------------
#> 0 threshold...
#> 0.1 threshold...
#> 0.2 threshold...
#> 0.3 threshold...
#> 0.4 threshold...
#> 0.5 threshold achieves the avg number of connections
#> computing product projection...
#> --------------------------------------------------
#> 0 threshold...
#> 0.1 threshold...
#> 0.2 threshold...
#> 0.3 threshold...
#> 0.4 threshold...
#> 0.5 threshold...
#> 0.6 threshold achieves the avg number of connections
# partial view of projections
n <- seq_len(5)
igraph::E(net$network_country)[n]
#> + 5/478 edges from 713fc56 (vertex names):
#> [1] zaf--zwe tza--zmb tza--uga tuv--wlf tuv--umi
igraph::E(net$network_product)[n]
#> + 5/1339 edges from 9e5c633 (vertex names):
#> [1] 8981--8982 8946--9510 8922--8932 8921--8922 8852--8959