multiplex icon indicating copy to clipboard operation
multiplex copied to clipboard

multiplex: algebraic tools for the analysis of multiple social networks

CRAN version CRAN Downloads


multiplex

Author: Antonio Rivero Ostoic (@mplex)


Abstract

Algebraic procedures for the analysis of multiple social networks are delivered with this package as described in Ostoic (2020) <DOI:10.18637/jss.v092.i11>.

  • "multiplex" makes possible, among other things, to create and manipulate multiplex, multimode, and multilevel network data with different formats.

  • Effective ways are available to treat multiple networks with routines that combine algebraic systems like the partially ordered semigroup with decomposition procedures or semiring structures with the relational bundles occurring in different types of multivariate networks.

  • "multiplex" provides also an algebraic approach for affiliation networks through Galois derivations between families of the pairs of subsets in the two domains of the network with visualization options.






Example: Partially Ordered Semigroup of Relations

### create network data: two types of relations among three elements
set.seed(123)
arr <- round( replace( array(runif(18), c(3,3,2)), array(runif(18),
        c(3,3,2))>.5, 3 ) )
### dichotomize data with customized cutoff value
dichot(arr, c = 3)
### string relations
strings(arr)
strings(arr, equat = TRUE, k = 3)
### create numerical or symbolic semigroup
semigroup(arr)
semigroup(arr, type = "symbolic")
### Green's relations of symbolic semigroup
semigroup(arr, type = "symbolic") |> 
  green.rel()
### create the partial order
strings(arr) |> 
  partial.order(type = "strings")
### plot the partial order (requires "Rgraphviz")
require("Rgraphviz", quietly = TRUE))
strings(arr) |> 
  partial.order(type = "strings") |> 
  diagram()






Example: Working with a Two-Mode Network data set

(taken from the multiplex vignette)

### Fruits data
frt <- data.frame(yellow = c(0,1,0,0,1,0,0,0), green = c(0,0,1,0,0,0,0,1), 
                  red = c(1,0,0,1,0,0,0,0), orange = c(0,0,0,0,0,1,1,0), 
                  apple = c(1,1,1,1,0,0,0,0), citrus = c(0,0,0,0,1,1,1,1))
rownames(frt) <- c("PinkLady", "GrannySmith", "GoldenDelicious", "RedDelicious", 
                   "Lemon", "Orange", "Mandarin", "Lime")

### Perform Galois connections among subsets with a reduced labeling
galois(frt, labeling = "reduced")
### Get the partial order of these "concepts"
galois(frt, labeling = "reduced") |> 
  partial.order(type = "galois")
### Plot the concept lattice of the partial order
require("Rgraphviz", quietly = TRUE)
galois(frt, labeling = "reduced") |> 
  partial.order(type = "galois") |> 
  diagram()