centrality: Centrality statistics of graphs

View source: R/centrality.R

centralityR Documentation

Centrality statistics of graphs

Description

This function can be used on the output of qgraph to compute the node centrality statistics for weighted graphs proposed by Opsahl, Agneessens and Skvoretz (2010).

Usage

centrality(graph, alpha = 1, posfun = abs, pkg, all.shortest.paths = FALSE, 
           weighted = TRUE, signed = TRUE, R2 = FALSE)

Arguments

graph

A "qgraph" object obtained from qgraph

alpha

The tuning parameter. Defaults to 1.

posfun

A function that converts positive and negative values to only positive. Defaults to the absolute value.

pkg

Package to use. Either "qgraph" or "igraph". Defaults to "qgraph" for directed networks and "igraph" for undirected networks.

all.shortest.paths

Logical if all shortest paths should be returned. Defaults to FALSE. Setting this to true can greatly increase computing time if pkg = "igraph".

weighted

Logical, set to FALSE to set all edge weights to 1 or -1

signed

Logical, set to FALSE to make all edge weights absolute

R2

Logical, should R-squared (predictability) be computed for GGM structures?

Details

This function computes and returns the in and out degrees, closeness and betweenness as well as the shortest path lengths and shortest paths between all pairs of nodes in the graph. For more information on these statistics, see Opsahl, Agneessens and Skvoretz (2010).

Self-loops are ignored in computing centrality indices. These statistics are only defined for positive edge weights, and thus negative edge weights need to be transformed into positive edge weights. By default, this is done by taking the absolute value.

The algorithm used for computing the shortest paths is the well known "Dijkstra’s algorithm" (Dijkstra, 1959). The algorithm has been implemented in R, which can make this function take several minutes to run for large graphs (over 100 nodes). A future version of qgraph will include a compiled version to greatly speed up this function.

Value

A list containing:

OutDegree

A vector containing the outward degree of each node.

InDegree

A vector containing the inward degree of each node.

Closeness

A vector containing the closeness of each node.

Betweenness

A vector containing the betweenness of each node

InExpectedInfluence

Expected incoming influence - sum of incomming edge weights connected to a node (not made absolute)

OutExpectedInfluence

Expected outgoing influence - sum of outgoing edge weights connected to a node (not made absolute)

ShortestPathLengths

A matrix containing the shortest path lengths of each pairs of nodes. These path lenghts are based on the inverse of the absolute edge weights raised to the power alpha.

ShortestPaths

A matrix of lists containing all shortest path lengths between all pairs of nodes. Use double square brackets to index. E.g., if the list is called 'res', res$ShortestPaths[[i,j]] gives a list containing all shortest paths between node i and j.

Author(s)

Sacha Epskamp (mail@sachaepskamp.com)

References

Opsahl, T., Agneessens, F., Skvoretz, J. (2010). Node centrality in weighted networks: generalizing degree and shortest paths. Soc Netw. 32:245–251.

Dijkstra, E.W. (1959). A note on two problems in connexion with graphs. Numerische Mathematik 1, 269–271.

See Also

qgraph

Examples

set.seed(1)
adj <- matrix(sample(0:1,10^2,TRUE,prob=c(0.8,0.2)),nrow=10,ncol=10)
Q <- qgraph(adj)

centrality(Q)

qgraph documentation built on Nov. 3, 2023, 5:07 p.m.

Related to centrality in qgraph...