To Resolve #84
This PR is to introduce exogenous rates. Currently 3 features in mind
[x] Homogeneous rates, set uniformly on all 'user nodes'.
[x] Heterogeneous nodal rates, varied depending on the ratio of user and 'non-user nodes'.
[x] a data assimilator which can learn a constant factor of the exogenous rates.
Currently we set a user_connectivity score as a node attribute on the user nodes of the network. This is either 1 for all users (in the homogeneous case) or between [0,1) in the heterogeneous case. The score for a user is given by
Here, a score of 0 represents a node whose neighbors are completely contained within the user_base. and scores near 1 represent a node with many connections not within the user base.
This score is used to prefactor a (learned) exogenous_transmission_rate to produce the exogenous rate in the master equations, we call this eta.
eta = connectivity_score * exogenous_transmission_rate
To Resolve #84 This PR is to introduce exogenous rates. Currently 3 features in mind
Currently we set a
user_connectivity
score as a node attribute on the user nodes of the network. This is either 1 for all users (in the homogeneous case) or between [0,1) in the heterogeneous case. The score for auser
is given by({total_user_edges} - {user_edges_that_are_users}) / {total_user_edges}
Here, a score of
0
represents a node whose neighbors are completely contained within theuser_base
. and scores near1
represent a node with many connections not within the user base.This score is used to prefactor a (learned)
exogenous_transmission_rate
to produce the exogenous rate in the master equations, we call thiseta
.eta = connectivity_score * exogenous_transmission_rate