sna (version 2.4)

gtrans: 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?

Value

A vector of transitivity scores

Details

Transitivity is a triadic, algebraic structural constraint. In its weak form, the transitive constraint corresponds to \(a \rightarrow b \rightarrow c \Rightarrow a \rightarrow c\). In the corresponding strong form, the constraint is \(a \rightarrow b \rightarrow c \Leftrightarrow a \rightarrow 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.

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

Run this code
# NOT RUN {
#Draw some random graphs
g<-rgraph(5,10)

#Find transitivity scores
gtrans(g)
# }

Run the code above in your browser using DataLab