I am working on a simple individual based model that aggregates information. I am not a mathematician, but I would like to be as precise as possible with the terminology used to describe the system and the aggregation rules, so I thought this forum might be the appropriate place for advice (if you think there is another forum more suitable, please let me know). I try to define things as follows:

Let $X=\{x_{1}, x_{2},\ldots, x_{O}\}$ be a vector of $O$ opinions, and let $A=\{a_{i}, a_{j},\ldots, a_{N}\}$ be the set of agents in a population. In the initial state, each agent $a_{n} \in A$ is randomly assigned an opinion $x_{o} \in X$ selected from $X$ without replacement. We use $x_{nr}$ to denote the opinion of $a_{n}$ at round $r$.

At each round:

  1. Each agent expresses one opinion from $X$ (according to the probabilistic model MI). Thus, the vector of opinions $X_{r}$ in the population is a vector of $N$ (one per agent) opinions $(x_{ir}, x_{jr},\ldots, x_{Nr})$, where $x_{ir}$ is the opinion produced by agent $a_{i}$ at round $r$, and so on.

  2. Each agent is defined by a vector of preferences $S$, which is a probability distribution on $X$: that is, at each round, an agent $a_{n}$ has a vector of preferences $S_{n}$ = $(s_{n1r}, s_{n2r},\ldots, s_{nOr})$. $S$ assigns a number between $0$ and $1$ to each opinion in $X$, where $s_{n1r}$ is the value assigned by an agent $a_{n}$ to opinion $x_{1}$ at round $r$, and so on. Thus, $s_{nor}$ is the value assigned by a random agent $a_{n}$ to an opinion $x_{o}$ at round $r$. S evolves according to model MII.

I use two aggregation rules to create an emergent vector called $G$ = $(g_{1r}, g_{2r},\ldots, g_{Or})$, which contains one value for each possible opinion in X.

First rule: At each round $r$, the value $g_{or}$ assigned to a given opinion $x_{o}$ is calculated as an arithmetic mean of the $N$ values $s_{ior}, s_{jor},\ldots, s_{Nor}$, where $s_{ior}$ corresponds to the value assigned by agent $a_{i}$ to opinion $x_{o}$, and $s_{jor}$ corresponds to the value assigned by agent $a_{j}$ to opinion $x_{o}$, and so on. That is, the value of $g_{or}$ at round $r$ is:

\begin{equation} \label{Eq2} g_{or}= \frac{1}{N} \sum_{nor=1}^{N} s_{nor} = \frac{s_{ior}+s_{jor}+\ldots+s_{Nor}}{N} \end{equation}

Second rule: At each round $r$, the value $g_{or}$ assigned to a given opinion $x_{o}$ is calculated as the relative frequency $f$ of opinion $x_{o}$ in $X_{r}$.

\begin{equation} g_{or}= f_{x_{o}} = \frac{n_{x_{o}}}{O} = \frac{n_{x_{o}}}{\sum_{x_{o}}n_{x_{o}}} \end{equation}

where n stands for the number of the specific opinions $x_{o}$ found in $X_{r}$.

Probabilistic model MI:

At each round, and for each agent, the model yields a probability distribution of opinions for a given history ($h$) (We use the apostrophe ($\prime$) to denote the probabilistic complement): \begin{equation} \label{eq:3} \Pr(x_{nor}\mid h_{nr})= C f(x_{o}\mid h_{nr}) + C's_{nor} \end{equation}

where $\Pr(x_{nor}\mid h_{nr})$ corresponds to the probability that an agent $a_{n}$ produces opinion $x_{o}$ at round $r$ given the specific history of agent $a_{n}$ by round $r$. The term $f(x_{o}\mid h_{nr})$ stands for the relative frequency of opinion $x_{o}$ in agent's history. $C$ is a constant that takes values form 0 to 1.

Model MII:

At each round, for a given agent $a_{n}$, each value of its vector of preferences $S$ on $X$ is updated as follows:

\begin{equation} \label{eqvalues} s_{nor+1}(s_{nor},x_{nor},g_{or},\epsilon)= \begin{cases} \epsilon \cdot g_{or} + (\epsilon'){ |x_{o}|} & \text{if } x_{o} \in h_{nr} \\ s_{nor}, & \text{otherwise} \end{cases} \end{equation}

where $s_{nor+1}$ stands for the value that agent $a_{n}$ gives to opinion $x_{o}$ at round $r+1$, $\epsilon$ is a constant that takes values form 0 to 1. At each round, $|x_{o}|$ is 1 if the specific opinion $x_{o}$ is produced by the agent in the current round $r$, 0 otherwise.


  1. Is this description mathematically acceptable and clear?
  2. Is there a better way to describe this system more precisely mathematically? If so, suggestions and rewriting of the system are greatly appreciated.
  3. Regarding the rules of opinion aggregation, is anyone aware of classical literature where these methods (simple arithmetic mean) and (relative frequency) have been used?

Thank you very much.

  • $\begingroup$ Hello @pyring, and welcome to math.SE! Currently the question seems to have a chunk missing, replaced by "[...here I explain models MI and MII, and then I proceed to describe the aggregation rules...]". As the question is largely about mathematical communication I feel this portion might be important, both because some of the 'interesting' stuff might happen there, and because some notation in the following section ($f_{x_0}$) has not been introduced elsewhere. Could you either add that part or confirm that advice should disregard it? $\endgroup$
    – ADdV
    Feb 15, 2021 at 1:20
  • $\begingroup$ hello @ADdV, and thanks for your interest. I have updated the question with models MI and MII. We have now a simplification of the model I have developed. I hope this helps. $\endgroup$
    – pyring
    Feb 15, 2021 at 12:48

1 Answer 1


Some parts are unclear to me

I cannot confidently say whether these parts are incorrect, or whether I simply don't understand them well enough. Specifically, there are a lot of variables all indexed quite a few times. It's difficult to remember what they all stand for.

I'll first describe the system as I understand it broadly, followed by some notes on the details and mathematical notations.

Broad overview

Now then, as I understand it, you have some agents $A$ and some opinions $X$. At the very start, each agent gets a single opinion (but later agents have a vector of opinions. Is the initial state a one-hot vector for each agent?). The system then progresses and, at each round, each agent broadcasts a single opinion, which is a sample from the distribution from MI. From these opinions we can obtain an aggregate opinion, which can be seen as the opinion of the group, as opposed to the opinion of an individual agent. Then, the opinion distribution of each agent changes, taking into account its own previous opinions as well as the group's. Together, this forms a model for the evolution of opinions.

Mathematical details

As for the mathematics, we have four clear parts: the two aggregation rules and the two models. Let's go over them one by one. First off:

\begin{equation} g_{or}= \frac{1}{N} \sum_{nor=1}^{N} s_{nor} = \frac{s_{ior}+s_{jor}+\ldots+s_{Nor}}{N} \end{equation}

As I understand it, the aggregate support for any opinion should be the mean of the support over all agents. In the second part of the equation, you seem to be summing over $nor$, but those are all supposed to be different things. I recommend only summing over agents. In the third part you unnecissarily introduce $i$ and $j$, which I believe should just be 1 and 2. So I recommend:

\begin{equation} g_{or}= \frac{1}{N} \sum_{i=1}^{N} s_{ior} = \frac{s_{1or}+s_{2or}+\ldots+s_{Nor}}{N} \end{equation}

For the second aggregate rule, I believe you just want the value for each opinion to be the proportion of that opinion in the expressed opinions of that round. I believe you mean to be dividing by $N$, not $O$, as that will be the amount of opinions expressed (one for each agent). I would also further clarify what you mean by $n_{x_{o}}$.

For the third equation MI, I don't know what you mean by probabilistic complement, but it seems like you simply mean $1-C$. If this is the case I would recommend writing it as such, which prevents the introduction of yet more notation. As I understand it, the probability of an agent emitting an opinion is a linear combination of the proportion of previous emissions of that opinion by that agent, and their current value for that opinion.

Fourth, MII:

\begin{equation} s_{nor+1}(s_{nor},x_{nor},g_{or},\epsilon)= \begin{cases} \epsilon \cdot g_{or} + (\epsilon'){ |x_{o}|} & \text{if } x_{o} \in h_{nr} \\ s_{nor}, & \text{otherwise} \end{cases} \end{equation}

I think the value for an opinion for a specific agent is a linear combination of the group's value for that opinion and the boolean value indicating whether the opinion was expressed in that round by the agent. Except if the agent has never expressed this opinion, in which case the value remains constant. Here, $|x_{o}|$ is again entirely new notation, which I believe to be confusing. $x_o$ is an opinion, yet the absolute value or norm of this opinion $|x_o|$ is a binary value indicating information about some unnamed agent. I don't have a clear opinion on how to better express this.

In summary, I think some of the notation is unclear, and I think the root cause might be the definition of the vectors. The vector $X$ of opinions leads to some confusion as it is unclear what these opinions are (numbers? Complex objects?) and yet we want to be able to use them in equations.

Other research in this area

I think this would fall under computational sociology. This field is highly multidisciplinary, with social scientists, economists, computer scientists, AI researchers, logicians and even the occasional physicist all publishing in this same field. (Your fondness of functions, vectors and indices leads me to believe that you are more on the computer science side.) In these diverse fields it is imperative to create a shared language, so I would recommend reading some papers within the field and copying their mathematical style. Not just in the method they use to define the objects they work with, but also the specific variables they use to do so. For example, I expect that an opinion vector might be called $O$ instead of $X$, and the amount of opinions to be $m$ instead of $O$, with the amount of agents to be $n$ instead of $N$.

Specifically for the modelling of the evolution of opinions, lots of work has been done. For a good overview, I recommend the table in the appendix of "Modelling Opinion Formation with Physics Tools: Call for Closer Link with Reality", which contains a systematic overview of lots of papers on opinion modelling and their approaches.

Sobkowicz, Pawel. 'Modelling Opinion Formation with Physics Tools: Call for Closer Link with Reality'. Journal of Artificial Societies and Social Simulation 12(1)11 http://jasss.soc.surrey.ac.uk/12/1/11.html.

  • $\begingroup$ thanks for your response. In the third part, I use the notation introduced in the begining $A={a_{i},a_{j},...,a_{N}}$ to express the mean of the support over all agents. Since $s_{nor}$ is the value assigned by an unnamed agent $a_{n}$ to an opinion $x_{o}$ at round $r$, I believe the notation I use is equivalent to the one you propose. If I am correct you use i for the unnamed agent (instead of n), and numbers to denote agents (while I use i, j, ...N to denote agents) $\endgroup$
    – pyring
    Feb 15, 2021 at 17:00
  • $\begingroup$ as for the comment about $|x_{o}|$, you are right. $|x_{0}|$ is 1 if the boolean value indicating whether the opinion was expressed is TRUE, and 0 otherwise. Do you know how could I expressed this mathematically? I am not sure $|x_{0}|$ is the best way to do it. $\endgroup$
    – pyring
    Feb 15, 2021 at 17:06
  • 1
    $\begingroup$ @pyring As for the first part, I had missed that your agent-definition used $i$ and $j$, but I would still recommend simply numbering them $1$ through $n$ or $N$. The summation however should only be over the agents, not over the opinions and rounds, so I do believe that summation over $nor$ should be over $n$. Replacing this with $i$ as I did is not necessary for correctness, but I personally prefer it. $\endgroup$
    – ADdV
    Feb 19, 2021 at 1:25
  • 1
    $\begingroup$ As for the $|x_0|$, you might want to consider the indicator function. $\endgroup$
    – ADdV
    Feb 19, 2021 at 1:31
  • $\begingroup$ thanks for this, it has been very helpful. $\endgroup$
    – pyring
    Feb 23, 2021 at 9:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.