blockmodel {sna} | R Documentation |
Given an equivalence clustering object and a graph stack, blockmodel
will form a blockmodel of the graph stack based on the classes in question, using the specified block content type.
blockmodel(dat, ec, k=NULL, h=NULL, block.content="density", plabels=ec$plabels, glabels=ec$glabels, rlabels=NULL, mode="digraph", diag=FALSE)
dat |
A graph stack |
ec |
An object of class equiv.clust |
k |
The number of classes to form (using cutree ) |
h |
The height at which to split classes (using cutree ) |
block.content |
String indicating block content type (see below) |
plabels |
A vector of labels to be applied to the individual nodes |
glabels |
A vector of labels to be applied to the graphs being modeled |
rlabels |
A vector of labels to be applied to the (reduced) roles |
mode |
A string indicating whether we are dealing with graphs or digraphs |
diag |
A boolean indicating whether loops are permitted |
blockmodel
forms its eponymous models by using cutree
to cut an equivalence clustering in the fashion specified by k
and h
. After forming clusters (roles), the input graphs are reordered and blockmodel reduction is applied. Currently supported reductions are:
density
: block density, computed as the mean value of the block
meanrowsum
: mean row sums for the block
meancolsum
: mean column sums for the block
sum
: total block sum
median
: median block value
min
: minimum block value
max
: maximum block value
types
: semi-intelligent coding of blocks by ``type.'' Currently recognized types are (in order of precedence) ``NA
'' (i.e., blocks with no valid data), ``null'' (i.e., all values equal to zero), ``complete'' (i.e., all values equal to 1), ``1 covered'' (i.e., all rows/cols contain a 1), ``1 row-covered'' (i.e., all rows contain a 1), ``1 col-covered'' (i.e., all cols contain a 1), and ``other'' (i.e., none of the above).
Density or median-based reductions are probably the most interpretable for most conventional analyses, though type-based reduction can be useful in examining certain equivalence class hypotheses (e.g., 1 covered and null blocks can be used to infer regular equivalence classes). Once a given reduction is performed, the model can be analyzed and/or expansion can be used to generate new graphs based on the inferred role structure.
An object of class blockmodel
.
Carter T. Butts buttsc@uci.edu
White, H.C.; Boorman, S.A.; and Breiger, R.L. (1976). ``Social Structure from Multiple Networks I: Blockmodels of Roles and Positions.'' American Journal of Sociology, 81, 730-779.
equiv.clust
, blockmodel.expand
#Create a random graph with _some_ edge structure g.p<-sapply(runif(20,0,1),rep,20) #Create a matrix of edge #probabilities g<-rgraph(20,tprob=g.p) #Draw from a Bernoulli graph #distribution #Cluster based on structural equivalence eq<-equiv.clust(g) #Form a blockmodel with distance relaxation of 10 b<-blockmodel(g,eq,h=10) plot(b) #Plot it