MyNixOS website logo
Description

Temporal Auditing of Social Interaction Networks.

Tools for constructing, auditing, and visualizing temporal social interaction networks from event-log data. Supports graph construction from raw user-to-user interaction logs, longitudinal tracking of network structure, community dynamics, user role trajectories, and concentration of engagement over time. Designed for computational social science, platform analytics, and digital community health monitoring. Includes four longitudinal audit indices: the Network Drift Index ('NDI'), Community Fragmentation Index ('CFI'), Visibility Concentration Index ('VCI'), and Role Mobility Index ('RMI'). 'NDI', 'CFI', 'VCI', and 'RMI' are purpose-built composite scores for longitudinal platform auditing.

socialdrift

License: GPL v3

socialdrift is an R package for building, auditing, and visualising temporal social interaction networks from raw event-log data.

Most existing tools start after the graph already exists. socialdrift takes you from a table of raw platform events (follows, replies, mentions, likes) all the way through to longitudinal diagnostics, community health reports, and inequality audits.


Installation

# Install from GitHub (development version)
# install.packages("remotes")
remotes::install_github("causalfragility-lab/socialdrift")

Workflow at a glance

library(socialdrift)

# 1. Standardise event data
ev <- as_social_events(sim_social_events,
                       actor_group  = "actor_group",
                       target_group = "target_group")

# 2. Build monthly graph snapshots
gs <- build_graph_series(ev, window = "month")

# 3. Structural metrics
summarize_network_series(gs)

# 4. Network Drift Index
ndi <- network_drift(gs)
plot_network_drift(ndi)

# 5. Community dynamics
comm <- detect_communities_ts(gs)
community_fragmentation_index(comm)

# 6. User role trajectories
roles <- role_trajectories(gs)
plot_role_trajectories(roles)

# 7. Group disparity audit
audit_group_disparities(ev, gs)

Signature indices

IndexFunctionDescription
NDInetwork_drift()How much did overall network structure change?
CFIcommunity_fragmentation_index()Are communities becoming more siloed?
VCIvisibility_concentration_index()Is attention concentrating on fewer actors?
RMIrole_mobility_index()How often do users transition between roles?

Structural user roles

Each node is assigned one of six interpretable roles per period:

RoleDescription
isolatedNo connections in this period
peripheralLow degree, not a bridge
broadcasterHigh out-degree, low in-degree
popularHigh in-degree, low out-degree
coreHigh in- and out-degree
bridgeHigh betweenness centrality

Example use cases

  • Online learning communities --- Who becomes isolated? Are discussions clique-based?
  • Social media platforms --- Is recommendation driving unequal visibility?
  • Workplace collaboration --- Are teams siloing after a reorg?
  • Educational peer networks --- Do minority students become more peripheral over time?

Package modules

ModuleKey functions
Data engineeringas_social_events(), build_graph_series()
Structural metricsnetwork_density_ts(), reciprocity_ts(), clustering_ts(), degree_inequality_ts()
Community dynamicsdetect_communities_ts(), community_drift(), community_fragmentation_index()
Role trajectoriesclassify_user_roles(), role_trajectories(), role_mobility_index()
Drift & inequalitynetwork_drift(), visibility_concentration_index(), audit_group_disparities()
Plottingplot_network_metrics(), plot_network_drift(), plot_role_trajectories()

Citation

@Manual{socialdrift,
  title  = {socialdrift: Temporal Auditing of Social Interaction Networks},
  author = {Subir Hait},
  year   = {2025},
  note   = {R package version 0.1.0},
}

License

GPL-3 (c) Subir Hait.

Metadata

Version

0.1.0

License

Unknown

Platforms (80)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arc-linux
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • sh4-linux
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows