Use the CONCOR (CONvergence of iterated CORrelations) algorithm to identify roles within social network data.
concor(m_list, nsplit = 1, self_ties = FALSE, cutoff = .9999999, max_iter = 50)
A list of adjacency matrices. Matrices must be square, of the same
dimensions, and have row/column names (node names). Each matrix represents a different
relationship of the same nodes. If there is only one relationship of interest,
m_list
is a list of that single matrix.
The number of times the input matrices will be partitioned. Each split
divides a partition in two, resulting in 2^nsplit
roles identified.
A Boolean representing whether self-ties can be present in the data.
TRUE
allows for self-ties; FALSE
does not.
The cutoff point of the iterated correlations. Both this and
max_iter
can be lowered slightly to improve speed.
The maximum number of times the correlation will be run for a split.
Both this and cutoff
can be lowered slightly to improve speed.
A data frame with two columns: block
is the block or role identified by CONCOR,
and vertex
is the node names.
This version works for multiple relationships, assuming they all are for the same data
(same size of input matrices), and can be used with isolates present. It requires further
testing on weighted networks (but appears to successfully split such networks). It will
attempt to split the network nsplit
times, causing there to be 2^nsplit
partitions, plus one for isolated nodes (if they exist), unless a structurally equivalent
node group or singular node group is present. If the algorithm attempts to split such a
node group the function will ignore that group and continue to split all other blocks
until specified. If a higher number of splits, nsplit
, are requested than are
possible to apply to the specified data (due to structurally equivalent node groups being
present or all blocks being singular nodes) the code will warn the user that split
nsplit
was the same as split i
, the final possible split, and stop.
R. L. Breiger, S. A. Boorman, P. Arabie, An algorithm for clustering relational data with applications to social network analysis and comparison with multidimensional scaling. J. of Mathematical Psychology. 12, 328 (1975). 10.1016/0022-2496(75)90028-0
S. Wasserman and K. Faust, Social Network Analysis: Methods and Applications (Cambridge University Press, 1994).
# NOT RUN {
a <- matrix(c(0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0), ncol = 4)
rownames(a) <- c("a", "b", "c", "d")
colnames(a) <- c("a", "b", "c", "d")
concor(list(a))
# }
Run the code above in your browser using DataLab