Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Table of Contents
As experiments are run via ConG and subjects interact with one another, “tick events” (i.e. data logged and organized into a report available to the experimenter) are generated by the server once every second. Each tick event contains time, (or subperiod in the case of the discrete time setting), payoff, actions and other pertinent information generated by the experiment. A separate logging program receives tick events and updates a .csv file as quickly as possible. This Ticks file is the primary log of experimental data.
ConG places the .csv Ticks file next to the control.jar file that initiated the experiment.
For example, see Ticks.01.22.1990.04.02.AM.csv (863 KB)
The tick report naming scheme indicates the date and time the experiment was started, taking the form: Ticks.mm.dd.yyyy.hh.mm.xM.csv.
Subject action choices are logged under the "stragey0" column (and strategy1, strategy2, etc. when subjects are able to select from addition spectrums of possible actions). For each action spectrum, and no matter what the possible minimum and maximum action possible, subject actions are mapped to the unit vector, to a number between 0 and 1 inclusive.
When ConG runs in continuous time as in the [wiki:ConG_Dilemma#Treatments] the ticks file records data differently than when ConG is run in discrete subperiods. In continuous time ConG records logs data into the ticks file once every second for each player.
In Discrete time, data is recorded for each player each subperiod.
ConG configuration files allow for an arbitrary string to be placed in the "name" column. This name entry is carried through to the ticks file produced by the experiment. Thus if you name your periods intuitively, data analysis may be eased, since one may simply subset by period/group/subgroup "name".
Naming schemes become particularly useful when subject-by-subject grouping and matching assignments are in place (more on arbitrary matching and grouping options), helping to keep track of treatment groups.
Here is a simple example of usage of the name column in the Prisoner's Dilemma game. Note that the periods and names in the Ticks.01.22.1990.04.02.AM.csv ticks file attached sync up with the period and names below.
(Note that although any string may be placed in the "name" column, commas should not be included. Since the ticks file is a .csv, comma separated variables file, commas in the name column may interfere with spreadsheets reading of the ticks file.)
R Stats Software Script. Given these period or group "name" schemes, an experimenter may then use R, or any statistical analysis software to subject the ticks file to the group of interest.
For example, if I was solely interested in period three, I could place the following script into R:
TICKS<-read.csv("https://github.com/Leeps-Lab/ConG/raw/master/wiki-images/tick_reports/Ticks.01.22.1990.04.02.AM.csv") TICKS_Block3<-subset(TICKS, name=="PD.3.six.shot") str(TICKS_Block3)
This then subsets the full 988 lines of code in Ticks.01.22.1990.04.02.AM.csv into the 24 lines of period three. These 24 lines correspond to the 6 subperiods, times the 4 players in the experiment.
Should a catastrophic event occur that ends the experiment abruptly, the .csv tick file will lose only a few of the most recent events, saving as much data as possible. In tests, we've abruptly turned off computers and disconnected networks during experiments. Usually only a few seconds of data are lost.
Here is an example of a ticks report file attached to this page. The ticks were taken from a ConG trial run using the step-by-Step Prisoner's Dilemma example configuration file which is also attached to the page.