temporal_degree_centrality

Calculates temporal degree centrality

temporal_degree_centrality(tnet, axis=0, calc='overtime', communities=None, decay=0, ignorediagonal=True)[source]

Temporal degree of network.

The sum of all connections each node has through time (either per timepoint or over the entire temporal sequence).

Parameters:
  • net (array, dict) – Temporal network input (graphlet or contact). Can have nettype: ‘bu’, ‘bd’, ‘wu’, ‘wd’
  • axis (int) – Dimension that is returned 0 or 1 (default 0). Note, only relevant for directed networks. i.e. if 0, node i has Aijt summed over j and t. and if 1, node j has Aijt summed over i and t.
  • calc (str) –

    Can be following alternatives:

    ’overtime’ : returns a 1 x node vector. Returns the degree/stregnth over all time points.

    ’pertime’ : returns a node x time array. Returns the degree/strength per time point.

    ’module_degree_zscore’ : returns the Z-scored within community degree centrality (communities argument required). This is done for each time-point i.e. ‘pertime’ returns static degree centrality per time-point.

  • ignorediagonal (bool) – if True, diagonal is made to 0.
  • communities (array (Nx1)) – Vector of community assignment. If this is given and calc=’pertime’, then the strength within and between each communities is returned. (Note, this is not technically degree centrality).
  • decay (int) – if calc = ‘pertime’, then decay is possible where the centrality of the previous time point is carried over to the next time point but decays at a value of $e^decay$ such that $D_d(t+1) = e^{-decay}D_d(t) + D(t+1)$. If decay is 0 then the final D will equal D when calc=’overtime’, if decay = inf then this will equal calc=’pertime’.
Returns:

D – temporal degree centrality (nodal measure). Array is 1D (‘overtime’), 2D (‘pertime’, ‘module_degree_zscore’), or 3D (‘pertime’ + communities (non-nodal/community measures)).

Return type:

array

Notes

When the network is weighted, this could also be called “temporal strength” or “temporal strength centrality”. This is a simple extension of the static definition. At times this has been defined slightly differently. Here we followed the definitions in [Degree-1] or [Degree-2]. There are however many authors prior to this that have used temporal degree centrality.

There are two basic versions of temporal degree centrality implemented: the average temporal degree centrality (calc='overtime') and temporal degree centrality (calc='pertime').

When calc='pertime':

\[D_{it} = \sum_j A_{ijt}\]

where A is the multi-layer connectivity matrix of the temporal network.

This entails that \(D_{it}\) is the sum of a node i’s degree/strength at t. This has also been called the instantaneous degree centrality [Degree-2].

When calc='overtime':

\[D_{i} = \sum_t\sum_j A_{ijt}\]

i.e. \(D_{i}\) is the sum of a node i’s degree/strength over all time points.

There are some additional options which can modify the estimate. One way is to add a decay term. This entails that ..math::D_{it}, uses some of the previous time-points estimate. An exponential decay is used here.

\[D_{it} = e^{-b} D_{i(t-1)} + \sum_j A_{ijt}\]

where b is the deay parameter specified in the function. This, to my knowledge, was first introdueced by [Degree-2].

References

[Degree-1]Thompson, et al (2017). From static to temporal network theory: Applications to functional brain connectivity. Network Neuroscience, 1(2), 69-99. [Link]
[Degree-2](1, 2, 3) Masuda, N., & Lambiotte, R. (2016). A Guidance to Temporal Networks. [Link to book’s publisher]