Learn R Programming

sna (version 2.8)

simmelian: Find the Simmelian Tie Structure of a Graph

Description

simmelian takes one or more (possibly directed) graphs as input, producing the associated Simmelian tie structures.

Usage

simmelian(dat, dichotomize=TRUE, return.as.edgelist=FALSE)

Value

An adjacency matrix containing the Simmelian ties, or the equivalent edgelist representation

Arguments

dat

one or more graphs (directed or otherwise).

dichotomize

logical; should the presence or absence of Simmelian edges be returned? If FALSE, returned edges are valued by the number of 3-clique co-memberships for each dyad.

return.as.edgelist

logical; return the result as an sna edgelist?

Author

Carter T. Butts buttsc@uci.edu

Details

For a digraph \(G=(V,E)\) with vertices \(i\) and \(j\), then \(i\) and \(j\) are said to have a Simmelian tie iff \(i\) and \(j\) belong to a 3-clique of \(G\). (Note that, in the undirected case, we simply treat \(G\) as a fully mutual digraph.) Because they have both a mutual dyad and mutual ties to/from at least one third party, vertex pairs with Simmelian ties in interpersonal networks are often expected to have strong relationships; Simmelian ties may also be more stable than other relationships, due to reinforcement from the mutual shared partner. In other settings, the derived network of Simmelian ties (which is simply the co-membership network of non-trivial cliques) may be useful for identifying cohesively connected elements in a larger graph, or for finding “backbone” structures in networks with large numbers of unreciprocated and/or bridging ties.

Currently, Simmelian tie calculation is performed using kcycle.census. While the bulk of the calculations and data handling are performed using edgelists, kcycle.census currently returns co-memberships in adjacency form. The implication for the end user is that performance for simmelian will begin to degrade for networks on the order of ten thousand vertices or so (due to the cost of allocating the adjacency structure), irrespective of the content of the network or other settings. This bottleneck will likely be removed in future versions.

References

Krackhardt, David. (1999). “The Ties That Torture: Simmelian Tie Analysis in Organizations.” Research in the Sociology of Organizations, 16:183-210.

See Also

kcycle.census, clique.census

Examples

Run this code
#Contrast the Simmelian ties in the Coleman friendship network with the "raw" ties
data(coleman)
fall<-coleman[1,,]                   #Fall ties
spring<-coleman[2,,]                 #Spring ties
sim.fall<-simmelian(coleman[1,,])    #Fall Simmelian ties
sim.spring<-simmelian(coleman[2,,])  #Spring Simmelian ties

par(mfrow=c(2,2))
gplot(fall,main="Nominations in Fall")
gplot(spring,main="Nominations in Spring")
gplot(sim.fall,main="Simmelian Ties in Fall")
gplot(sim.spring,main="Simmelian Ties in Spring")

#Which ties shall survive?
table(fall=gvectorize(fall),spring=gvectorize(spring))   #Fall vs. spring
table(sim.fall=gvectorize(sim.fall),spring=gvectorize(spring))
sum(fall&spring)/sum(fall)                #About 58% of ties survive, overall...
sum(sim.fall&spring)/sum(sim.fall)        #...but 74% of Simmelian ties survive!
sum(sim.fall&sim.spring)/sum(sim.fall)    #(About 44% stay Simmelian.)
sum(sim.fall&sim.spring)/sum(sim.spring)  #39% of spring Simmelian ties were so in fall
sum(fall&sim.spring)/sum(sim.spring)      #and 67% had at least some tie in fall

Run the code above in your browser using DataLab