eventnet
Algorithmics Group

Event network analyzer (first steps)

Event network analyzer (eventnet) is a software for the statistical analysis of networks of relational events.

Overview

A single relational event encodes who does when what to whom. Examples include a person sending an email to another person, a Wikipedia user editing a Wikipedia article, a customer buying a certain product, or a country signing an agreement with another country.

A relational event model, consequently, models who is going to do when what to whom. Often, events that happen among two nodes might depend on other events that happened before on other pairs of nodes. For instance, Alice might send an email to Bob because, previously, Bob contacted Charlie who then called Alice. Such network effects are typical in the examples mentioned above. The computation of explanatory variables for these network effects - along with the maintenance of the pairs of nodes on which events might happen (the risk set) - is one of the main challenges when specifying relational event models.

The event network analyzer software tackles this by taking one or several input files, containing lists of relational events, and computing expanatory variables (statistics) for all observations, events and non-events, that can then be analyzed by standard statistical software for time-to-event data, such as provided by the package survival in the
R software for statistical computing.

Starting eventnet

Download the JAR file of the latest version and start the program by double-clicking or via the command java -jar eventnet-x.y.jar. (The latter option is even preferable since you will get more detailed error messages, if any, and you can increase the memory size. For instance, the command java -jar -Xmx4g eventnet-x.y.jar starts eventnet with 4GB memory, etc.)
A graphical user interface (GUI) opens in which you can specify the input data and what eventnet should do with it. All of these specifications can be saved in a configuration file, which can be opened in eventnet on the same or a different computer. A saved configuration, thus, ensures reproducibility and can save a lot of work.

Eventnet configurations

A configuration, together with the input data determines the result. This ensures reproducibility. It is also possible to create or modify the configuration file (which is in XML format) "by hand" or otherwise and let eventnet execute the computations. Configurations can be saved, loaded, renamed, or executed via the file menu and/or in the area on the left-hand side of the eventnet GUI. The content of a configuration is specified in the six tabs in the larger right-hand side of the eventnet GUI. The content of these tabs should be filled in order, from (i) to (vi), since options for latter settings might depend on previous ones.

The six parts of a configuration, specified each in one of the six tabs, are described in the following. (The description below is very short. More details can be found in the
tutorial.)
  1. (files) In this tab you can specify one or several input files, containing lists of events. It is also possible to specify directories and let eventnet process all files (potentially all files that have a given ending) in these directories. The input files must be comma-separated files where you can choose the cell delimiter, etc. If several files are analyzed with the same configuration then they must have a compatible structure.
    The output base directory gives the location where the output files (containing computed explanatory variables for all observations) should be stored. It is advisable to choose an empty directory for this, or a directory whose content could be overwritten.
  2. (events) the different component of an event are mapped to column names in the input files. Only the source and target of events are required; the other components can be missing (set to <implied>). It is possible to analyze one-mode or multi-mode networks. In the latter case, intuitive names should be assigned for the different node sets and event types should be given their source node set and target node set.
  3. (time) the time information, if present, can be given as integers, decimal, or as date-time strings. In the latter case the pattern of these strings must be given. If time is implied then the event numbers are used as event time. Events in input files must be sorted by time from the past to the future; events happening at the same time are possible. The time interval type specifies when events are considered as occurring simultaneously.
  4. (attributes) define which information is recorded from past events. This information is later used to compute explanatory variables (statistics) and, potentially, to define the risk set. You can specify dyad-level attributes (for instance, recording the number of events from a particular node to a particular other node), node-level attributes (for instance, recording in-comming or out-going events for each node, or setting externally given node attributes), and network-level attributes (for instance, recording events in the whole network or the last event time).
  5. (statistics) are explanatory variables that determine the predicted rate of future events on dyads or nodes. They are specified as functions of the attributes. Eventnet provides statistics for dyadic effects (repetition or reciprocation), degree effects, triadic effects, four-cycle effects, and statistics dependent on node attributes (the latter can also define degree effects, if degrees are recorded in node-level attributes).
  6. (observations) specify which observations to consider for analysis and they define the risk set (that is, which events could have been observed). It is possible to efficiently sample from the non-events in this risk set ("case-control sampling"). Sampling is advisable if the number of non-events is huge compared to the number of events.

A completed configuration can be executed by clicking on the process button in the GUI or - without opening the GUI - via the command java -jar eventnet-x.y.jar configuration_filename.xml.
The results are written to the output directory (or sub-directories thereof). The output files can be conveniently analyzed with standard software for time-to-event data, such as provided by the package survival in the R software for statistical computing. Example R scripts (and more) can be found in the tutorial.