R: Find Clusters of Positions Based on an Equivalence Relation

equiv.clust {sna} | R Documentation

## Find Clusters of Positions Based on an Equivalence Relation

### Description

`equiv.clust` uses a definition of approximate equivalence (`equiv.fun`) to form a hierarchical clustering of network positions. Where `dat` consists of multiple relations, all specified relations are considered jointly in forming the equivalence clustering.

### Usage

    equiv.clust(dat, g=NULL, equiv.dist=NULL, equiv.fun="sedist",
       method="hamming", mode="digraph", diag=FALSE,
       cluster.method="complete", glabels=NULL, plabels=NULL, ...)

### Arguments

`dat` | one or more graphs.
`g` | the elements of `dat` to use in clustering the vertices; by default, all structures are used.
`equiv.dist` | a matrix of distances, by which vertices should be clustered. (Overrides `equiv.fun`.)
`equiv.fun` | the distance function to use in clustering vertices (defaults to `sedist`).
`method` | `method` parameter to be passed to `equiv.fun`.
`mode` | “graph” or “digraph,” as appropriate.
`diag` | a boolean indicating whether or not matrix diagonals (loops) should be interpreted as useful data.
`cluster.method` | the hierarchical clustering method to use (see `hclust`).
`glabels` | labels for the various graphs in `dat`.
`plabels` | labels for the vertices of `dat`.
`...` | additional arguments to `equiv.dist`.

### Details

This routine is essentially a joint front-end to `hclust` and various positional distance functions, though it defaults to structural equivalence in particular. Taking the specified graphs as input, `equiv.clust` computes the distances between all pairs of positions using `equiv.fun` (unless distances are supplied in `equiv.dist`), and then performs a cluster analysis of the result. The return value is an object of class `equiv.clust`, for which various secondary analysis methods exist.

### Value

An object of class `equiv.clust`

### Note

See `sedist` for an example of a distance function compatible with `equiv.clust`.

### Author(s)

Carter T. Butts buttsc@uci.edu

### References

Breiger, R.L.; Boorman, S.A.; and Arabie, P. (1975). “An Algorithm for Clustering Relational Data with Applications to Social Network Analysis and Comparison with Multidimensional Scaling.” Journal of Mathematical Psychology, 12, 328-383.

Burt, R.S. (1976). “Positions in Networks.” Social Forces, 55, 93-122.

Wasserman, S., and Faust, K. Social Network Analysis: Methods and Applications. Cambridge: Cambridge University Press.

### See Also

`sedist`, `blockmodel`

### 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)
    plot(eq)

[Package sna version 2.4 Index]