Calculate Freeman's segregation index for undirected networks with arbitrary number of groups.
freeman(object, ...)# S3 method for table
freeman(object, gsizes = NULL, loops = FALSE, ...)
# S3 method for igraph
freeman(object, vattr, gsizes = NULL, loops = any(which_loop(object)), ...)
# S3 method for default
freeman(object, ...)
The value of the Freeman's index.
R object, see Details for available methods
other arguments passed to/from other methods
numeric, optional true distribution of types, see Details
logical, whether loops are allowed
character scalar or any vector of length equal to
vcount(object)
, name of the vertex attribute in object
designating the groups or a vector with the attribute itself
Freeman's segregation index (Freeman, 1978) is designed to capture the extent to which the defined groups of vertices tend to have more edges with vertices from the same group than with other groups. Formally, the index compares the observed number of between-group ties with the number of between-group ties that would be expected if ties would be created randomly.
Originally the index has a discontinuity for network and group size configurations that are characterized by the higher number of between-group ties that is expected under a random graph, for which it returns 0 (as originally described by Freeman (1978)). We removed that truncation such that it returns values betweem -1 and 1.
The original Freeman's formulation involves two groups of vertices. Here it is extended to the arbitrary number of groups. The generalization affects the way in which the expected number of between-group edges under pure random graph is calculated, see Bojanowski & Corten (2014) for details.
The function internally calculates the sizes of groups of vertices in the
supplied attribute vattr
. However, it is possible to override this by
specifying "true" type distribution with the gsizes
argument. It is assumed
to be a table (as returned by table()
) or a numeric vector with the group
sizes. This may be especially usefull when dealing with large graphs and/or
with large number of isolates.
If object
is a table it is interpreted as a mixing matrix.
Two-dimensional table is interpreted as a contact layer. Three-dimensional
table is interpreted as a full mixing matrix \(m_{ghy}\)
cross-classyfying all dyads, in which \(g\) and \(h\) correspond to
group membership of ego and alter respectively. Layers \(y=1\) and
\(y=2\) are assumed to be non-contact and contact layers respectively.
If object
is of class "igraph" it is required to supply vattr
with the name of the vertex attribute to calculate intermediate mixing
matrix.
Method for mixing matrices
Method for "igraph"s
Freeman, Linton C. (1978) Segregation in Social Networks, Sociological Methods & Research 6(4):411--429
Bojanowski, Michał, and Rense Corten. 2014. "Measuring Segregation in Social Networks." Social Networks 39: 14–32. tools:::Rd_expr_doi("10.1016/j.socnet.2014.04.001")
Other segregation measures:
assort()
,
coleman()
,
ei()
,
gamix()
,
orwg()
,
smi()
,
ssi()
## White's data from Freeman's article segregation level
freeman(WhiteKinship, "gender")
# using 'more' argument
freeman(WhiteKinship, "gender")
Run the code above in your browser using DataLab