participation shifts specification

6 views
Skip to first unread message

Jasmine Wu

unread,
May 12, 2026, 12:17:18 PMMay 12
to eventnet-users
Posting both the question and response here in case people have the same question...

How can participation shifts be specified in eventnet?

The tutorial explains how to model overall effects such as repetition and reciprocation, but I am unsure how to implement participation shifts from Butt’s (2008) framework (e.g., AB-BA, AB-BY, AB-AY). Specifically, I would like the model to track only the immediately preceding event in order to capture the “shift”. Would the appropriate approach be to add an event response to the DYAD_LEVEL attribute and update its value after each event instead of using WEIGHT (see attached screenshot)? Or would using a very high decay rate achieve the same goal?

Response from Juergen: 

As you correctly mentioned, the PS of type (say) AB-BA is related with reciprocation (A sends to B and then B sends to A) but it requires immediate reply, in the very next event, while reciprocation in eventnet is typically more about replying eventually (if no decay is used) or "replying rather quickly" (if a decay is used). There is some workaround to capture only immediate replies, so basically mimic the AB-BA participation shift. For this you set up a dyadic attribute capturing immediately preceding
interaction in the following way:
  • the update type is SET_VALUE_TO in order to set values always to one (check whether the event weight is indeed one - if not, you have to append the function CONSTANT with a parameter of 1.0)
  • you specify a decay with a half-life of 1.0 EVENT (the "EVENT" is the time scale type of the half-life, specified in the drop-down selection; this assumes that you are using dyadic events, one event per row in the CSV file and you are indeed interested in replying to the previous row)
  • you check the box for "set attribute value to zero if [x] value is below 0.5";
Now we have to do some math to confirm: if in the event in row i actor A sends to B, then the attribute on (A,B) is set to 1.0. When processing the event in the next row i+1, this attribute value is 0.5 and this goes into the computation of an immediate reciprocation statistic. So if in row i+1 it is indeed B sending to A, then this can be explained by immediate reciprocation with a value of 0.5 (instead of 1.0), which does not matter because it is always 0.5 instead of 1.0, so you may just multiply with two. If however B replies to A only in row i+2 or later, then the attribute on the (A,B) dyad is below 0.5, so it is set to 0.0 and the event does not count as immediate reciprocation at all. 

Besides doing the math it is always a good idea to set up small test data to confirm experimentally ...
Reply all
Reply to author
Forward
0 new messages