R: Compute the Transitivity of an Input Graph or Graph Stack

gtrans {sna} | R Documentation

## Compute the Transitivity of an Input Graph or Graph Stack

### Description

`gtrans` returns the transitivity of the elements of `dat` selected by `g`, using the definition of `measure`. Triads involving missing values are omitted from the analysis.

### Usage

    gtrans(dat, g=NULL, diag=FALSE, mode="digraph", measure = c("weak",
        "strong", "weakcensus", "strongcensus", "rank", "correlation"),
        use.adjacency = TRUE)

### Arguments

`dat` | a collection of input graphs.
`g` | a vector indicating the graphs which are to be analyzed; by default, all graphs are analyzed.
`diag` | a boolean indicating whether or not diagonal entries (loops) are to be taken as valid data.
`mode` | `"digraph"` if directed triads are sought, or else `"graph"`.
`measure` | one of `"weak"` (default), `"strong"`, `"weakcensus"`, `"strongcensus"`, `"rank"`, or `"correlation"`.
`use.adjacency` | logical; should adjacency matrices (versus sparse graph methods) be used in the transitivity computation?

### Details

Transitivity is a triadic, algebraic structural constraint. In its weak form, the transitive constraint corresponds to a->b->c => a->c. In the corresponding strong form, the constraint is a->b->c <=> a->c. (Note that the weak form is that most commonly employed.) Where `measure=="weak"`, the fraction of potentially intransitive triads obeying the weak condition is returned. With the `measure=="weakcensus"` setting, by contrast, the total number of transitive triads is computed. The `strong` versions of the measures are similar to the above, save in that the set of all triads is considered (since all are “at risk” for intransitivity).

Note that where missing values prevent the assessment of whether a triple is transitive, that triple is omitted.

Generalizations of transitivity to valued graphs are numerous. The above strong and weak forms ignore edge values, treating any non-zero edge as present. Two additional notions of transitivity are also supported valued data. The `"rank"` condition treads an (i, j, k) triple as transitive if the value of the (i,k) directed dyad is greater than or equal to the minimum of the values of the (i,j) and (j,k) dyads. The `"correlation"` option implements the correlation transitivity of David Dekker, which is defined as the matrix correlation of the valued adjacency matrix A with its second power (i.e., A^2), omitting diagonal entries where inapplicable.

Note that the base forms of transitivity can be calculated using either matrix multiplication or sparse graph methods. For very large, sparse graphs, the sparse graph method (which can be forced by `use.adjacency=FALSE`) may be preferred. The latter provides much better scaling, but is significantly slower for networks of typical size due to the overhead involved (and R's highly optimized matrix operations). Where `use.adjacency` is set to `TRUE`, `gtrans` will attempt some simple heuristics to determine if the edgelist method should be used instead (and will do so if indicated). These heuristics depend on recognition of the input data type, and hence may behave slightly differently depending on the form in which `dat` is given. Note that the rank measure can at present be calculated only via sparse graph methods, and the correlation measure only by adjacency matrices. For these measures, the `use.adjacency` argument is ignored.

### Value

A vector of transitivity scores

### Author(s)

Carter T. Butts buttsc@uci.edu

### References

Holland, P.W., and Leinhardt, S. (1972). “Some Evidence on the Transitivity of Positive Interpersonal Sentiment.” American Journal of Sociology, 72, 1205-1209.

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

### See Also

`triad.classify`, `cugtest`

### Examples

    #Draw some random graphs
    g<-rgraph(5,10)

    #Find transitivity scores
    gtrans(g)

[Package sna version 2.6 Index]