REGE.FC {blockmodeling} | R Documentation |
REGE - Algorithms for compiting (dis)similarities in terms of regular equivalnece
Description
REGE - Algorithms for compiting (dis)similarities in terms of regular equivalnece (White & Reitz, 1983).
REGE, REGE.for
- Classical REGE or REGGE, as also implemented in Ucinet. Similarities in terms of regular equivalence are computed. The REGE.for
is a wrapper for calling the FORTRAN subrutine written by White (1985a), modified to be called by R. The REGE
does the same, however it is written in R. The functions with and without ".for" differ only in whether they are implemented in R of FORTRAN. Needless to say, the functions implemented in FORTRAN are much faster.
REGE.ow, REGE.ow.for
- The above function, modified so that a best match is searched for each arc separately (and not for both arcs, if they exist, together).
REGE.nm.for
- REGE or REGGE, modified to use row and column normalized matrices instead of the original matrix.
REGE.ownm.for
- The above function, modified so that a best match for an outgoing ties is searched on row-normalized network and for incoming ties on column-normalized network.
REGD.for
- REGD or REGDI, a dissimilarity version of the classical REGE or REGGE. Dissimilarities in terms of regular equivalence are computed. The REGD.for
is a wrapper for calling the FORTRAN subroutine written by White (1985b), modified to be called by R.
REGE.FC
- Actually an earlier version of REGE. The difference is in the denominator. See Žiberna (2007) for details.
REGE.FC.ow
- The above function, modified so that a best match is searched for each arc separately (and not for both arcs, if they exist, together).
other - still in testing stage.
Usage
REGE.FC(
M,
E = 1,
iter = 3,
until.change = TRUE,
use.diag = TRUE,
normE = FALSE
)
REGE.FC.ow(
M,
E = 1,
iter = 3,
until.change = TRUE,
use.diag = TRUE,
normE = FALSE
)
REGE(M, E = 1, iter = 3, until.change = TRUE, use.diag = TRUE)
REGE.ow(M, E = 1, iter = 3, until.change = TRUE, use.diag = TRUE)
REGE.for(M, iter = 3, E = 1)
REGD.for(M, iter = 3, E = 0)
REGE.ow.for(M, iter = 3, E = 1)
REGD.ow.for(M, iter = 3, E = 0)
REGE.ownm.for(M, iter = 3, E = 1)
REGE.ownm.diag.for(M, iter = 3, E = 1)
REGE.nm.for(M, iter = 3, E = 1)
REGE.nm.diag.for(M, iter = 3, E = 1)
REGE.ne.for(M, iter = 3, E = 1)
REGE.ow.ne.for(M, iter = 3, E = 1)
REGE.ownm.ne.for(M, iter = 3, E = 1)
REGE.nm.ne.for(M, iter = 3, E = 1)
REGD.ne.for(M, iter = 3, E = 0)
REGD.ow.ne.for(M, iter = 3, E = 0)
Arguments
M |
Matrix or a 3 dimensional array representing the network. The third dimension allows for several relations to be analyzed. |
E |
Initial (dis)similarity in terms of regular equivalnece. |
iter |
The desired number of iterations. |
until.change |
Should the iterations be stopped when no change occurs. |
use.diag |
Should the diagonal be used. If |
normE |
Should the equivalence matrix be normalized after each iteration. |
Value
E |
A matrix of (dis)similarities in terms of regular equivalnece. |
Eall |
An array of (dis)similarity matrices in terms of regular equivalence, each third dimension represets one iteration. For ".for" functions, only the initial and the final (dis)similarities are returned. |
M |
Matrix or a 3 dimensional array representing the network used in the call. |
iter |
The desired number of iterations. |
use.diag |
Should the diagonal be used - for functions implemented in R only. |
...
References
Žiberna, A. (2008). Direct and indirect approaches to blockmodeling of valued networks in terms of regular equivalence. Journal of Mathematical Sociology, 32(1), 57-84. doi: 10.1080/00222500701790207
White, D. R., & Reitz, K. P. (1983). Graph and semigroup homomorphisms on networks of relations. Social Networks, 5(2), 193-234.
White, D. R.(1985a). DOUG WHITE'S REGULAR EQUIVALENCE PROGRAM. Retrieved from http://eclectic.ss.uci.edu/~drwhite/REGGE/REGGE.FOR
White, D. R. (1985b). DOUG WHITE'S REGULAR DISTANCES PROGRAM. Retrieved from http://eclectic.ss.uci.edu/~drwhite/REGGE/REGDI.FOR
White, D. R. (2005). REGGE. Retrieved from http://eclectic.ss.uci.edu/~drwhite/REGGE/
#' @author Aleš Žiberna based on Douglas R. White's original REGE and REGD
See Also
sedist
, critFunC
, optParC
, plot.mat
Examples
n <- 20
net <- matrix(NA, ncol = n, nrow = n)
clu <- rep(1:2, times = c(5, 15))
tclu <- table(clu)
net[clu == 1, clu == 1] <- 0
net[clu == 1, clu == 2] <- rnorm(n = tclu[1] * tclu[2], mean = 4, sd = 1) * sample(c(0, 1),
size = tclu[1] * tclu[2], replace = TRUE, prob = c(3/5, 2/5))
net[clu == 2, clu == 1] <- 0
net[clu == 2, clu == 2] <- 0
D <- REGE.for(M = net)$E # Any other REGE function can be used
plot.mat(net, clu = cutree(hclust(d = as.dist(1 - D), method = "ward.D"),
k = 2))
# REGE returns similarities, which have to be converted to
# disimilarities
res <- optRandomParC(M = net, k = 2, rep = 10, approaches = "hom", homFun = "ss", blocks = "reg")
plot(res) # Hopefully we get the original partition