assortment.discrete: Assortment on discrete vertex values

View source: R/assortment.discrete.R

assortment.discreteR Documentation

Assortment on discrete vertex values

Description

Calculates the assortativity coefficient for weighted and unweighted graphs with nominal/categorical vertex values

Usage

assortment.discrete(graph, types, weighted = TRUE, SE = FALSE, M = 1, na.rm = FALSE)

Arguments

graph

Adjacency matrix, as an N x N matrix. Can be weighted or binary.

types

Values on which to calculate assortment, vector of N labels

weighted

Flag: TRUE to use weighted edges, FALSE to turn edges into binary (even if weights are given)

SE

Calculate standard error using the Jackknife method.

M

Binning value for Jackknife, where M edges are removed rather than single edges. This helps speed up the estimate for large networks with many edges.

na.rm

Remove all nodes which have NA as type from both the network and the types object. If this is False and NAs are present, an error message will be displayed.

Value

This function returns a named list, with three elements:

$r the assortativity coefficient $SE the standard error $mixing_matrix the mixing matrix with the distribution of edges or edge weights by category

Author(s)

Damien Farine dfarine@orn.mpg.de

References

Newman (2003) Mixing patterns in networks. Physical Review E (67) Farine, D.R. (2014) Measuring phenotypic assortment in animal social networks: weighted associations are more robust than binary edges. Animal Behaviour 89: 141-153.

Examples

	# DIRECTED NETWORK EXAMPLE
	# Create a random directed network
	N <- 20
	dyads <- expand.grid(ID1=1:20,ID2=1:20)
	dyads <- dyads[which(dyads$ID1 != dyads$ID2),]
	weights <- rbeta(nrow(dyads),1,15)
	network <- matrix(0, nrow=N, ncol=N)
	network[cbind(dyads$ID1,dyads$ID2)] <- weights

	# Create random discrete trait values
	traits <- rpois(N,2)
	
	# Test for assortment as binary network
	assortment.discrete(network,traits,weighted=FALSE)
	
	# Test for assortment as weighted network
	assortment.discrete(network,traits,weighted=TRUE)
	
	
	
	# UNDIRECTED NETWORK EXAMPLE
	# Create a random undirected network
	N <- 20
	dyads <- expand.grid(ID1=1:20,ID2=1:20)
	dyads <- dyads[which(dyads$ID1 < dyads$ID2),]
	weights <- rbeta(nrow(dyads),1,15)
	network <- matrix(0, nrow=N, ncol=N)
	network[cbind(dyads$ID1,dyads$ID2)] <- weights
	network[cbind(dyads$ID2,dyads$ID1)] <- weights
	
	# Create random discrete trait values
	traits <- rpois(N,2)
	
	# Test for assortment as binary network
	assortment.discrete(network,traits,weighted=FALSE)
	
	# Test for assortment as weighted network
	assortment.discrete(network,traits,weighted=TRUE)


assortnet documentation built on March 7, 2023, 6:51 p.m.