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 1.1 Index]