blockmodel {sna}R Documentation

Generate Blockmodels Based on Partitions of Network Positions

Description

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.

Usage

blockmodel(dat, ec, k=NULL, h=NULL, block.content="density", 
    plabels=ec$plabels, glabels=ec$glabels, rlabels=NULL, 
    mode="digraph", diag=FALSE)

Arguments

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

Details

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:

  1. density: block density, computed as the mean value of the block
  2. meanrowsum: mean row sums for the block
  3. meancolsum: mean column sums for the block
  4. sum: total block sum
  5. median: median block value
  6. min: minimum block value
  7. max: maximum block value
  8. 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.

Value

An object of class blockmodel.

Note

The mva library is required for blockmodel to function.

Author(s)

Carter T. Butts buttsc@uci.edu

References

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.

See Also

equiv.clust, blockmodel.expand

Examples

#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

[Package Contents]