R: Compute the Davis and Leinhardt Classification of a Given...

triad.classify {sna} | R Documentation

## Compute the Davis and Leinhardt Classification of a Given Triad

### Description

`triad.classify` returns the Davis and Leinhardt classification of the triad indicated by `tri` in the `g`th graph of stack `dat`.

### Usage

    triad.classify(dat, g=1, tri=c(1, 2, 3), mode=c("digraph",
        "graph"))

### Arguments

`dat` | a graph or graph stack.
`g` | the index of the graph to be analyzed.
`tri` | a triple containing the indices of the triad to be classified.
`mode` | string indicating the directedness of edges; `"digraph"` implies a directed structure, whereas `"graph"` implies an undirected structure.

### Details

Every unoriented directed triad may occupy one of 16 distinct states. These states were used by Davis and Leinhardt as a basis for classifying triads within a larger structure; the distribution of triads within a graph (see `triad.census`), for instance, is linked to a range of substantive hypotheses (e.g., concerning structural balance). The Davis and Leinhardt classification scheme describes each triad by a string of four elements: the number of mutual (complete) dyads within the triad; the number of asymmetric dyads within the triad; the number of null (empty) dyads within the triad; and a configuration code for the triads which are not uniquely distinguished by the first three distinctions. The complete list of classes is as follows.

`003`

  a<-!->b<-!->c, a<-!->c

`012`

  a-->b<-!->c, a<-!->c

`102`

  a<-->b<-!->c, a<-!->c

`021D`

  a<--b-->c, a<-!->c

`021U`

  a-->b<--c, a<-!->c

`021C`

  a-->b-->c, a<-!->c

`111D`

  a<-!->b-->c, a<-->c

`111U`

  a<-!->b-->c, a<-->c

`030T`

  a-->b<--c, a-->c

`030C`

  a<--b<--c, a-->c

`201`

  a<-->b<-!->c, a<-->c

`120D`

  a<--b-->c, a<-->c

`120U`

  a-->b<--c, a<-->c

`120C`

  a-->b-->c, a<-->c

`210`

  a-->b<-->c, a<-->c

`300`

  a<-->b<-->c, a<-->c

These codes are returned by `triad.classify` as strings. In the undirected case, only four triad states are possible (corresponding to the number of edges in the triad). These are evaluated for `mode=="graph"`, with the return value being the number of edges.

### Value

A string containing the triad classification, or `NA` if one or more edges were missing

### Warning

Valued data and/or loops may cause strange behavior with this routine. Dichotomize/remove loops first.

### Author(s)

Carter T. Butts buttsc@uci.edu

### References

Davis, J.A. and Leinhardt, S. (1972). “The Structure of Positive Interpersonal Relations in Small Groups.” In J. Berger (Ed.), Sociological Theories in Progress, Volume 2, 218-251. Boston: Houghton Mifflin.

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

### See Also

`triad.census`, `gtrans`

### Examples

    #Generate a random graph
    g<-rgraph(10)

    #Classify the triads (1,2,3) and (2,3,4)
    triad.classify(g,tri=c(1,2,3))
    triad.classify(g,tri=c(1,2,3))

    #Plot the triads in question
    gplot(g[1:3,1:3])
    gplot(g[2:4,2:4])

[Package sna version 2.4 Index]