These functions combine an appropriate _census() function together with methods for calculating the hierarchical clusters provided by a certain distance calculation.

  • node_equivalence() assigns nodes membership based on their equivalence with respective to some census/class. The following functions call this function, together with an appropriate census.

    • node_structural_equivalence() assigns nodes membership based on their having equivalent ties to the same other nodes.

    • node_regular_equivalence() assigns nodes membership based on their having equivalent patterns of ties.

    • node_automorphic_equivalence() assigns nodes membership based on their having equivalent distances to other nodes.

A plot() method exists for investigating the dendrogram of the hierarchical cluster and showing the returned cluster assignment.

node_equivalence(
  .data,
  census,
  k = c("silhouette", "elbow", "strict"),
  cluster = c("hierarchical", "concor"),
  distance = c("euclidean", "maximum", "manhattan", "canberra", "binary", "minkowski"),
  range = 8L
)

node_structural_equivalence(
  .data,
  k = c("silhouette", "elbow", "strict"),
  cluster = c("hierarchical", "concor"),
  distance = c("euclidean", "maximum", "manhattan", "canberra", "binary", "minkowski"),
  range = 8L
)

node_regular_equivalence(
  .data,
  k = c("silhouette", "elbow", "strict"),
  cluster = c("hierarchical", "concor"),
  distance = c("euclidean", "maximum", "manhattan", "canberra", "binary", "minkowski"),
  range = 8L
)

node_automorphic_equivalence(
  .data,
  k = c("silhouette", "elbow", "strict"),
  cluster = c("hierarchical", "concor"),
  distance = c("euclidean", "maximum", "manhattan", "canberra", "binary", "minkowski"),
  range = 8L
)

Arguments

.data

An object of a {manynet}-consistent class:

  • matrix (adjacency or incidence) from {base} R

  • edgelist, a data frame from {base} R or tibble from {tibble}

  • igraph, from the {igraph} package

  • network, from the {network} package

  • tbl_graph, from the {tidygraph} package

census

A matrix returned by a node_*_census() function.

k

Typically a character string indicating which method should be used to select the number of clusters to return. By default "silhouette", other options include "elbow" and "strict". "strict" returns classes with members only when strictly equivalent. "silhouette" and "elbow" select classes based on the distance between clusters or between nodes within a cluster. Fewer, identifiable letters, e.g. "e" for elbow, is sufficient. Alternatively, if k is passed an integer, e.g. k = 3, then all selection routines are skipped in favour of this number of clusters.

cluster

Character string indicating whether clusters should be clustered hierarchically ("hierarchical") or through convergence of correlations ("concor"). Fewer, identifiable letters, e.g. "c" for CONCOR, is sufficient.

distance

Character string indicating which distance metric to pass on to stats::dist. By default "euclidean", but other options include "maximum", "manhattan", "canberra", "binary", and "minkowski". Fewer, identifiable letters, e.g. "e" for Euclidean, is sufficient.

range

Integer indicating the maximum number of (k) clusters to evaluate. Ignored when k = "strict" or a discrete number is given for k.

See also

Other memberships: cliques, community, components(), core

Examples

# \donttest{
(nse <- node_structural_equivalence(mpn_elite_usa_advice))
#>   Albright Argyros Armitage Curry Fukuyama  Gray Greenberg Hills Kissinger
#> 1        1       2        3     4        3     4         3     1         1
#> # ... with 5 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
#>    ACUS   AEI ASPEN  CATO   CFR   CGD  CNAS   CNI  CSIS   EWI  FPRI GMFUS HOOVER
#> 1     3     2     5     5     4     4     6     7     7     6     6     6      7
#> # ... with 7 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
plot(nse)

# }
# \donttest{
(nre <- node_regular_equivalence(mpn_elite_usa_advice,
  cluster = "concor"))
#>   Albright Argyros Armitage Curry Fukuyama  Gray Greenberg Hills Kissinger
#> 1        1       2        2     1        1     3         1     4         2
#> # ... with 5 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
#>    ACUS   AEI ASPEN  CATO   CFR   CGD  CNAS   CNI  CSIS   EWI  FPRI GMFUS HOOVER
#> 1     5     6     6     6     1     6     7     5     8     6     6     6      6
#> # ... with 7 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
plot(nre)

# }
# \donttest{
(nae <- node_automorphic_equivalence(mpn_elite_usa_advice,
  k = "elbow"))
#>   Albright Argyros Armitage Curry Fukuyama  Gray Greenberg Hills Kissinger
#> 1        1       1        2     3        3     4         3     1         2
#> # ... with 5 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
#>    ACUS   AEI ASPEN  CATO   CFR   CGD  CNAS   CNI  CSIS   EWI  FPRI GMFUS HOOVER
#> 1     4     3     1     4     1     4     2     1     1     4     2     2      1
#> # ... with 7 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
plot(nae)

# }