Leadership-Inference Framework for Multivariate Time Series: mFLICA

Travis CI build status minimal R version CRAN Status Badge Download License arXiv Open in Code Ocean

The framework uses a notion of a leader as an individual who initiates collective patterns that everyone in a group follows.

Given a set of time series of individual activities, our goal is to identify periods of coordinated activity, find factions of coordination if more than one exist, as well as identify leaders of each faction.

For each time step, the framework infers following relations between individual time series, then identifying a leader of each faction whom many individuals follow but it follows no one. A faction is defined as a group of individuals that everyone follows the same leader.

mFLICA reports following relations, leaders of factions, and members of each faction for each time step.


You can install our package from CRAN


For the newest version on github, please call the following command in R terminal.


This requires a user to install the “remotes” package before installing mFLICA.


In the first step, we have a build-in dataset of 30-individual time series where ID1, ID2, and ID3 are leaders at coordination intervals: [1,200], [201,400], and [401,600] respectively. These individuals move within two-dimensional space. Time series of each individual represents a sequence of coordinate (x,y) at each time step. A leader is an initiator who initiates coordinated movement that everyone in a faction follows.


# mFLICA::TS[i,t,d] is an element of ith time series at time t in the dimension d. Here, we have only two dimensions: x and y. The time series length is 800, so, t is in the range [1,800]. There are 30 individuals, so, i is in the range [1,30].
plotMultipleTimeSeries(TS=mFLICA::TS[,,1],strTitle="x axis")

plotMultipleTimeSeries(TS=mFLICA::TS[,,2],strTitle="y axis")

The framework is used to analyze the data below.


The network densities of a dynamic following network is shown below. At any time step t, a higher network density implies a higher degree of coordination; the higher number of individuals that follow the same pattern with some time delays.

 plotMultipleTimeSeries(TS=obj1$dyNetOut$dyNetBinDensityVec, strTitle="Network Dnesity")

We plot time series of faction size ratios of all leaders. A faction size ratio is just a network density calculating from only edges within a faction leading by a specific leader. If everyone follows a single leader, then a faction size ratio is the same as the network density, which has the value at one.

 plotMultipleTimeSeries(TS=obj1$factionSizeRatioTimeSeries, strTitle="Faction Size Ratios")

Here, we know that ID1, ID2, and ID3 are leaders at coordination intervals: [1,200], [201,400], and [401,600] respectively. Hence, ID1, ID2 and ID3 have their faction size ratios being high during the intervals that they lead the group.