Skip to main content

SRIC and LRIC indices calculation

Project description

SLRIC package drawing

SLRIC is a Python package for influence assessment in networks using short-range interaction centrality (SRIC) and long-range interaction centrality (LRIC) indices.

SRIC and LRIC indices take into account:

  • Individual attributes of nodes: threshold of influence (quota), nodes size, etc.;
  • Possiblity of the group influence;
  • Indirect connections between nodes.
Example:
SLRIC features
  • Nodes 2 and 4 have different thresholds of influence (q);
  • Nodes 1 and 2 influence node 4 as a group. Even though node 3 is connected to node 4, it does not influence it directly as node 3 is not a pivotal member in any group;
  • Node 3 influences node 4 via node 2.

Website: https://github.com/SergSHV/slric

Authors: Fuad Aleskerov, Natalia Meshcheryakova, Sergey Shvydun (HSE University, ICS RAS)

Installation

Install the package from PyPI:

$ pip install slric

You can also install the latest version from GitHub:

$ pip install git+https://github.com/SergSHV/slric.git

Load SLRIC package:

>>> import slric

SRIC/LRIC Calculation for Simple Example

Generate a network using NetworkX package

>>> import networkx as nx
>>> G = nx.DiGraph()
>>> G.add_edge(1, 4, weight=7)
>>> G.add_edge(2, 4, weight=5)
>>> G.add_edge(3, 4, weight=2)
>>> G.add_edge(3, 2, weight=6) 

Case 1

  • q=60% of weighted in-degree (in percentage);
  • nodes have the same size (size = 1).
>>> slric.sric(G, q=60, size=1) # SRIC 
{1: 0.36363636363636365, 4: 0.0, 2: 0.09740259740259741, 3: 0.538961038961039}

>>> slric.lric(G, q=60, size=1, models='max') # LRIC (Max) 
{1: 0.27450980392156865, 4: 0.0, 2: 0.1470588235294118, 3: 0.5784313725490197}

>>> slric.lric(G, q=60, size=1, models='maxmin') # LRIC (MaxMin)
{1: 0.27450980392156865, 4: 0.0, 2: 0.1470588235294118, 3: 0.5784313725490197}

>>> slric.lric(G, q=60, size=1, models='pagerank') # LRIC (PageRank)
{1: 0.32165639923246203, 4: 0.0, 2: 0.18808528619697315, 3: 0.49025831457056473}

Case 2

  • q=5 for each node (defined quota, dq);
  • nodes have the same size (size = 1).
>>> slric.sric(G, dq=5, size=1) # SRIC
{1: 0.21153846153846154, 4: 0.0, 2: 0.28846153846153844, 3: 0.5}

>>> slric.lric(G, dq=5, size=1, models='max') # LRIC (Max)
{1: 0.25, 4: 0.0, 2: 0.25, 3: 0.5}

Case 3

  • q=5 for node 2, q=10 for node 4;
  • nodes have the same size (size = 1).
>>> d = dict()
>>> d[2] = 5
>>> d[4] = 10

>>> slric.sric(G, dq=d, size=1) # SRIC
{1: 0.2916666666666667, 4: 0.0, 2: 0.20833333333333337, 3: 0.5}

>>> slric.lric(G, dq=d, size=1, models='max') # LRIC (Max)
{1: 0.24137931034482757, 4: 0.0, 2: 0.17241379310344826, 3: 0.5862068965517241}

Write LRIC results to file

>>> from slric import lric, GraphQW
>>> ranking, lric_graph = lric(G, q=60, size=1, models=['max', 'maxmin'], data=TRUE)
>>> GraphQW.write_centrality(lric_graph, 'output.txt', separator=';', mode='w')

Additional features

  1. If nodes size (size) is not defined, then size = weighted out-degree;
  2. Similarly to threshold of influence (q), nodes size can be of dict() type;
  3. Maximal group size can be limited using 'group_size' parameter (by default, group_size=4);
  4. Maximal indirect influence limit can be defined using 'limpath' parameter (by default, limpath=3);
  5. If LRIC version (models) is not defined, then LRIC (Max) is calculated by default (models='max' ).

License

BSD 3-Clause License

Copyright (c) 2019. Fuad Aleskerov, Natalia Meshcheryakova, Sergey Shvydun.

All rights reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slric-1.1.5.1.tar.gz (14.8 kB view hashes)

Uploaded Source

Built Distribution

slric-1.1.5.1-py3-none-any.whl (16.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page