Risk set conditional on event type?

41 views
Skip to first unread message

Megan Chan

unread,
Nov 11, 2024, 3:22:59 PM11/11/24
to eventnet-users
Hi,

I have an interesting RHEM application where I consider a group of people who are separated in such a way that the risk set is conditional on event type. Here is an example of my use case: 

Consider a group of people where a subset meet in person and speak to each other (type=speak, participants={A,B,C}). While they are holding this meeting, they also send and receive messages in a group chat containing additional people outside of the room (type=message, participants={A,B,C,D,E}). Suppose that I would like to use RHEM to model both conversations simultaneously, capturing both message types as events (speak, message). 

I would like to constrain my risk set by message type, where interactions with the "speak" type should be restricted to a subset of participants {A,B,C}, and interactions with the "message" type should allow interactions across all participants {A,B,C,D,E}. 

I know that it is possible to use an "at.risk" event type to dynamically update the risk set (which is useful for time-varying conditions), but I would need to update my risk set each time the event type changes. This seems quite inefficient, so I would like to know if there a better way to constrain my risk set based on event type?

Thanks,
Megan

juergen lerner

unread,
Nov 12, 2024, 6:51:08 AM11/12/24
to eventnet-users
Dear Megan,

This is indeed an interesting application. In principle you can define different risk sets for different types of events (assuming that the different event types are modeled by different observation generators). I'm not sure whether it solves your task - this depends on details. My full response is a bit lengthy:

You can specify a dynamic risk set by defining a node-level attribute that is non-zero for nodes at risk. You then could define two such attributes, say "at.risk.speak" and "at.risk.message", to specify different risk sets for the observation generator for "speak" events and for "message" events. To update the attribute "at.risk.speak" - which apparently is only possible during meeting events - you would have to provide events "meeting.start" (which sets the meeting participants to at.risk.speak=1) and "meeting.end" (which sets the meeting participants to at.risk.speak=0). But now I'm not sure whether two meetings (with different participants) could have overlapping time periods. For instance, if Meeting 1 with participants {A,B,C} and Meeting 2 with participants {D,E} overlap in time, then the model would think that, say, A could also speak with D (since they are both at risk to speak) but - as I understand it - they could not speak to each other since they are not in the same meeting. If the time periods of the different meeting events are disjoint, then the approach would work fine.

If the speak (and/or message) events are dyadic, then you could define a dyad-level attribute "at.risk.speak" for all pairs of actors currently co-participating in the same meeting (use "DYAD_LEVEL_ATTRIBUTE_FROM_UHE" to set this attribute to one and to zero as descibed above). Then you could specify in an observation generator for the dyadic speak events that the dyad has to be non-zero on the attribute "at.risk.speak". With that you could ensure that speak-interaction is only possible among participants of the same meeting.

For hyperedge observations there is also the possibility to specify the risk set via "UHE has to be non-zero on attribute" (DEFAULT_UHE_OBS) or "DHE has to be non-zero on attribute" (DEFAULT_DHE_OBS) and the given attributes are (undirected or directed) hyperedge attibutes. This has for instance been used in Table 3 in the preprint Lerner et al 2019 (https://arxiv.org/pdf/1912.07403) to define separate models for "new" scientific collaboration or "repeated" scientific collaboration. But here the participants of the repeated hyperedge must be exactly the same as in the earlier event. In your case it would mean that the participants of the speak-event are exactly those of the ongoing meet-event. (There is currently no possibility to define that they should be subsets of the meeting participants.)
 
Seen from a wider angle, the task you've sketched seems to be related to what I'm tempted to call "events with internal structure" (e.g., there are meeting events and within the meeting events there is a sequence of finer-granular speak events). I have a set of slides discussing this; see here:


But (at least in its full generality) this is really future work.

I'm not sure whether any of this helps for your task. Would be happy to hear more about it.

Best wishes
  Juergen
Reply all
Reply to author
Forward
0 new messages