| 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.
The mva library is required for blockmodel to function.
Carter T. Butts ctb@andrew.cmu.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