Acceptance, Non-commitment and Rejection
-
class
defSim.extensions.influence_sim.AcceptanceNoncommitmentRejection.
AcceptanceNoncommitmentRejection
(regime: str, **kwargs) Bases:
defSim.influence_sim.influence_sim.InfluenceOperator
-
__init__
(regime: str, **kwargs) - Parameters
regime – This string determines the mode in which the agents influence each other. In ‘one-to-one’ the focal agent influences one other agent, in ‘one-to-many’ multiple other agents and in ‘many-to-one’ the focal agent is influenced by multiple other agents in the network.
kwargs – Additional parameters specific to the implementation of the InfluenceOperator. Possible parameters are the following:
convergence_rate (float=0.5) – A number between 0 and 1 determining how much an agent adopts other agents features. If it is one, the influenced agent takes the value of the influencing agent. Passed as a kwargs argument. If influence is negative, this determines the rate at which agents move away from each other.
acceptance_limit (float=0.33) – Upper limit of dissimilarity for which positive influence is exerted
rejection_limit (float=0.67) – Lower limit of dissimilarity for which negative influence is exerted
bi_directional (bool=False) – A boolean specifying whether influence is bi- or uni-directional.
-
spread_influence
(network: networkx.classes.graph.Graph, agent_i: int, agents_j: List[int], dissimilarity_measure: defSim.dissimilarity_component.dissimilarity_calculator.DissimilarityCalculator, attributes: Optional[List[str]] = None, **kwargs) → bool This influence function implements an influence function proposed by [JagerAmblard2005]. Under this influence function, agents have a zone of acceptance, a zone of noncommitment and a zone of rejection. Agents are positively influenced by others whose dissimilarity falls in the zone of acceptance, not influenced by others whose dissimilarity falls in the zone of non-commitment and negatively influenced by others whose dissimilarity falls in the zone of rejection.
The zones of acceptance and rejection are defined by parameters acceptance_limit and rejection_limit, with acceptance_limit < rejection_limit enforced. Jager & Amblard (2005) define the model for one feature, where dissimilarity between agents i and j is abs(feature_value_i - feature_value_j). To extend the model to multiple features, we apply the thresholds to the total dissimilarity between the two agents across all features.
The rate of convergence/divergence is set using parameter convergence_rate. Convergence rate is applied as follows: In zone of acceptance, opinion change for agent i from interaction with agent j is convergence_rate * (feature_value_j - feature_value_i) In zone of rejection, opinion change for agent i from interaction with agent j is convergence_rate * (feature_value_i - feature_value_j) In zone of non-commitment there is no opinion change from interaction between agents i and j.
Note: opinions in Jager & Amblard (2005) are drawn from a uniform distribution between [-1:1]. defSim uses [0:1]. Keep this in mind when specifying thresholds.
Note: Jager & Amblard (2005) mention the possibility of different thresholds for different agents. This is not implemented in this influence function.
Note: Jager & Amblard (2005) implement one-to-one interaction. Rules for one-to-many and many-to-one are generalizations of the same principles.
Note: Jager & Amblard (2005) implement influence as uni-directional (agent j influences agent i). Implementation here also allows bi-directional influence. In one-to-one influence, agent i influences agent j to be consistent with other influence functions implemented in defSim.
- Parameters
network – The network in which the agents exist.
agent_i – the index of the focal agent that is either the source or the target of the influence
agents_j – A list of indices of the agents who can be either the source or the targets of the influence. The list can have a single entry, implementing one-to-one communication.
attributes – A list of the names of all the attributes that are subject to influence. If an agent has e.g. the attributes “Sex” and “Music taste”, only supply [“Music taste”] as a parameter for this function. The influence function itself can still be a function of the “Sex” attribute.
dissimilarity_measure – An instance of a
DissimilarityCalculator
.
- Returns
true if agent(s) were successfully influenced
-
References
- JagerAmblard2005
Jager, W., & Amblard, F. (2005). Uniformity, Bipolarization and Pluriformity Captured as Generic Stylized Behavior with an Agent-Based Simulation Model of Attitude Change. Computational & Mathematical Organization Theory, 10(4), 295–303. https://doi.org/10.1007/s10588-005-6282-2