knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
library(hexSticker) library(ergm) library(magrittr) library(tidygraph) library(ggraph) set.seed(666) net <- network.initialize(30, directed=FALSE) net %v% "a1" <- sample( rep(1:2, each=15) ) net %v% "a2" <- sample( rep(1:2, each=15) ) snet <- simulate( net ~ edges + nodematch("a1") + nodematch("a2"), coef = c(-5, 3, 3) ) g <- intergraph::asIgraph(snet) %>% as_tbl_graph() p <- g %>% ggraph(layout="stress") + geom_edge_link( color="gray50", edge_width = 1/4 ) + geom_node_point( aes( color=as.character(a1), fill=as.character(a2) ), shape = 21, size=1, stroke = 1 ) + scale_fill_brewer(type="qual", palette="Set1") + scale_color_brewer(type="qual", palette="Set1") + theme_graph( base_family = "sans" ) sticker( p + theme_void() + theme_transparent() + theme(legend.position="none"), p_size=20, p_x = 1, p_y = 1.6, s_x = 1, s_y= 0.9, s_width=1.3, s_height=1, package = "netseg", p_color = "gray50", h_fill = "#ffffff", h_color = "black", url = "https://mbojan.github.io/netseg", u_size = 4, filename = "man/figures/logo.png", dpi = 300 )
netseg
: Measures of Network Segregation and Homophily Segregation is a network-level property such that edges between predefined groups of vertices are relatively less likely. Network homophily is a individual-level tendency to form relations with people who are similar on some attribute (e.g. gender, music taste, social status, etc.). In general homophily leads to segregation, but segregation might arise without homophily. This package implements descriptive indices measuring homophily/segregation. It is a computational companion to @bojanowski-corten-2014.
Install the released version of netseg from CRAN with:
install.packages("netseg")
or the development version from GitHub with:
# install.packages("remotes") remotes::install_github("mbojan/netseg")
To illustrate, consider the Classroom network below:
library(netseg) library(igraph) data("Classroom") plot( Classroom, layout = graphlayouts::layout_with_stress, vertex.color = c("pink", "lightskyblue")[match(V(Classroom)$gender, c("Girl", "Boy"))], vertex.label = NA, edge.arrow.size = 0.5 ) legend( "bottomright", pch = 21, legend = c("Boy", "Girl"), pt.cex = 2, pt.bg = c("lightskyblue", "pink"), col = "black", bty = "n" )
The extent of gender segregation in this network can be assessed using one of the indices provided in the package, for example odds ratio of within-group tie (orwg()
)
orwg(Classroom, "gender")
tells us that same-gender tie odds are r orwg(Classroom, "gender")
times greater than tie odds between genders.
Coleman's index [@coleman-1958] assesses the segregation on the group level:
coleman(Classroom, "gender")
Qualitatively speaking it compares the proportion of same-group neighbors to the proportion of that group in the network as a whole. It is a number between -1 and 1. Value of 0 means these proportions are equal. Value of 1 means that all ties outgoing from a particular group are sent to the members of the same group. Value of -1 is the opposite -- all ties are sent to members of other group(s).
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.