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