# Voter model can accurately predict individual opinions in online populations

Antoine Vendeville

<figure><img src="image_1.png" /></figure>

## To cite this version:

Antoine Vendeville. Voter model can accurately predict individual opinions in online populations. 2025. hal-04849938v3

HAL Id: hal-04849938

https://hal.science/hal-04849938v3

Preprint submitted on 7 Jul 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Voter model can accurately predict individual opinions in online populations

Antoine Vendeville¹,²,³, *

¹médialab, Sciences Po, 75007 Paris, France

²Complex Systems Institute of Paris Île-de-France (ISC-PIF) CNRS, 75013 Paris, France

³Learning Planet Institute, Learning Transitions unit, CY Cergy Paris University, Paris, France

(Dated: July 1, 2025)

Models of opinion dynamics describe how opinions are shaped in various environments. While these models are able to replicate general opinion distributions observed in real-world scenarios, their capacity to align with data at the user level remains mostly untested. We evaluate the capacity of the multi-state voter model with zealots to capture individual opinions in a fine-grained Twitter dataset collected during the 2017 French Presidential elections. Our findings reveal a strong correspondence between individual opinion distributions in the equilibrium state of the model and ground-truth political leanings of the users. Additionally, we demonstrate that discord probabilities accurately identify pairs of like-minded users. These results emphasize the validity of the voter model in complex settings, and advocate for further empirical evaluations of opinion dynamics models at the user level.

# I. INTRODUCTION

Models of opinion dynamics provide potent tools to unveil mechanisms driving phenomena such as polarization [1–7] or echo chambers [8, 9]. These models usually comprise a network of agents endowed with opinions that evolve through interactions with one another. Social, psychological and technological features may govern these interactions—e.g. negative influence [3, 6, 7, 10], stubbornness [11–13] or recommendation algorithms [5, 14, 15]. Exploring the effect of such features and combinations thereof, can help us understand how ideological landscapes are shaped in various circumstances. This is particularly useful in the current context of raising concerns about the role of online social platforms in political debates and democratic processes [16–18].

The capacity of the models to replicate real-world observations has garnered increasing attention in recent years. Recurrent sources of data employed towards this goal include surveys [2, 19–21], election results [22–26], and interactions extracted from online social platforms [1, 4, 27–29]. The celebrated voter model has been the subject of several studies pertaining to this question. The seminal paper of Fernández-Gracia et al. [26] demonstrated the model’s ability to capture statistical features of vote shares in U.S. elections. These results were confirmed and enriched in subsequent works [22–25, 30]. We refer the interested reader to [31, 32] for in-depth reviews of the research about the empirical validity of opinion dynamics models.

Models are opinion dynamics are largely used to analyze global phenomena, such as polarization or radicalization. Therefore, research about the empirical validity of the models usually stands from a global point of view. For example, Valensise et al. [28] investigate the capacity of four different opinion dynamics models to replicate global opinion distributions observed in various online social platforms, while the model employed by Peralta et al. [1] is able to reproduce multidimensional opinion distributions of X/Twitter (hereafter

Twitter) users. The capacity of the models to identify opinions at the individual level remains mostly untested. It is particularly crucial to evaluate this capacity, because of the horizontal and heterogeneous nature of online social platforms. The political debate in traditional media was structured in a vertical manner, with small number of pundits expressing their opinions. But online platforms have placed the individual at the center of the debate, with the intent that any voice should be able to express itself and be heard by others. In parallel, a growing emphasis has been put on individual differences and particularities in Western societies [33]. Therefore, the heterogeneity of users is a crucial component of online opinion dynamics, which warrants specific attention and models that take it into account.

The lack of empirical evaluations of opinion dynamics models at the individual level owes to a two-fold difficulty. The first is the inherent cost associated with the collection of fine-grained data suitable for this type of analysis, even more so now that the platforms traditionally considered for these types of studies—Twitter and Reddit—have locked access to their data behind expensive paywalls [34]. The second and perhaps more challenging difficulty is the estimation of model parameters from data. It is not straightforward to operationalize and measure features such as confirmation bias, stubbornness, or the influence of algorithmic recommendations. While such parameters can sometimes be estimated on the basis of prior information [29], empirical applications of opinion dynamics models often rely on sweeps of the parameter space to find values for which the model best reproduces the observed data [1, 28, 29, 35]. For the sake of robustness, these analyses should ideally be complemented with evaluations of the models thus calibrated on different, but comparable, datasets. This is no easy task, given the diversity in the nature of the datasets, and the inherent cost associated with obtaining multiple of them.

We address these issues as we evaluate the capacity of the voter model to capture individual opinions in a fine-grained real-life dataset. Our methodology is parameter-free and thus circumvents the difficulty of parameter inference. We leverage a directed, weighted network of retweets between Twitter accounts, collected during the campaign of the 2017 French

<footnote>* antoine.vendeville@sciencespo.fr</footnote>
Presidential Election [36]. Treating accounts of political entities as static reference points (zealots), recent theoretical advances on the multi-state voter model in complex networks [11] allow us to infer individual opinion distributions $x_i$ at equilibrium. We then compare these theoretical opinion distributions with ground-truth party affiliations $y_i$ explicitly stated by the users in their publications and self-descriptions. We uncover a strong correspondence between the two. Supporters of the same party are clustered together in the multi-dimensional space spanned by the $x_i$ vectors, clearly separated from those with different views. The mode of $x_i$, which indicates the opinion most often held by user $i$ in any realization of the model, matches the ground-truth $y_i$ in 92.5% of cases. We also show that discord probabilities—which quantify the frequency at which any two users disagree in the voter model—let us deduce with high accuracy whether or not two users support the same party. Neither the follow nor the mention networks yield comparable results, while the undirected or unweighted counterparts of the retweet network approach this performance but do not equate it. Details of the computations, networks statistics, and additional figures can be found in the Supplemental Material.

## II. METHODOLOGY

The multi-state voter model with zealots for complex networks unfolds as follows [11]. Consider a directed, weighted network of users labelled 1, ..., N with weight $w_{ij}$ on the edge $j \to i$. Users are initially endowed with a random opinion chosen in a finite discrete set $S$. In iterated steps, a user $i$ is chosen at random and adopts the opinion of another user chosen at random according to the probabilities $\{w_{ij}\}_{j=1,...,N}$ (edge weights are normalized so that each user has in-degree 1). Let us suppose that users who never change opinion, called zealots [11, 13, 23, 37], are present in the system. Let $\mathcal{N}$ denote the set of non-zealot users, and $z_i^s$ the aggregated weight of edges from zealots with opinion $s$ toward user $i \in \mathcal{N}$. As long as every user $i$ can be reached by a zealot (either $z_i^s > 0$, or there exists an ancestor $j$ of $i$ such that $z_j^s > 0$), the system converges towards a unique state of equilibrium [12]. In this state, the opinion of $i$ fluctuates according to an individual probability distribution $x_i$ such that, for any $s \in S$ [11],

$$x_i^s = \sum_{j \in \mathcal{N}} w_{ij} x_j^s + z_i^s. \quad (1)$$

Importantly, this value represents an average at equilibrium, and does not inform on the precise dynamics of a single realization of the model.

Our methodology consists in applying this model on the #Elysée2017fr dataset [36]. The creators of the dataset collected retweets and mentions between 22,853 Twitter accounts in the last six months leading to the 2017 French Presidential Election. Follow relationships between the accounts were collected in another study [38]. The accounts were selected based on the presence of political keywords in their tweets, and include about 2,000 non-individual political entities, e.g. official party accounts, activist groups, etc. On the

basis of the content of their tweets and profile description, accounts were manually labelled by the creators of the dataset to indicate the party they support in the election: FI (France Insoumise, far-left), PS (Parti Socialiste, traditional left), EM (En Marche, center), LR (Les Républicains, traditional right), FN (Front National, far-right). These were the five main competing parties in the elections. We discard unlabelled accounts and accounts with multiple labels (resp. 3,401 and 803 accounts). The reliability of these labels was demonstrated by the creators of the dataset in the corresponding article [39], with an observed agreement of 89% between annotators.

To apply the voter model in this context, we consider an opinion space formed of the different parties:

$$S = \{FI, PS, EM, LR, FN\}. \quad (2)$$

Each account is endowed with a ground-truth opinion $y_i \in S$, indicating the party they support as identified by the creators of the dataset. We call supporters of party $s$ all users with ground-truth opinion $y_i = s$. Retweet interactions induce a directed, weighted network so that the weight $w_{ij}$ of the edge from $j$ to $i$ is defined as the proportion of $i$'s retweets for which the original tweet is from $j$. We treat accounts of political entities as zealots and fix their opinions to their ground-truth opinions, which correspond to the party they officially represent. The value $z_i^s$ is thus proportional to the number of times that $i$ has retweeted a political entity that represents party $s$.

A central aspect of our methodology is to consider political entities as zealots. It seems natural to assume that party affiliations of political entities are immutable: the Parisian branch of FI for example, is and will always be—by definition—in support of FI. As these affiliations are public knowledge, it is not such a restrictive hypothesis to assume that they are known. This choice is also motivated by a technical reason: zealots guarantee the existence of a unique equilibrium state, at least for the regions of the network that they can reach [12, Thm. 2.1]. Otherwise, there may exist a multitude of different equilibrium states, the potential diversity of which entails a difficulty in their interpretation. Zealots also act as reference points, ensuring a unique correspondence between opinions in the model and ground-truth opinions.

We evaluate the capacity of the model thus defined to retrieve ground-truth opinions. Those of the zealots are already used as reference points, so the performance of the model is evaluated on non-zealot users, which we call users for the sake of simplicity. We compute individual equilibrium opinion distributions as per Eq. 1. In other words, the value of $x_i^s$ can be interpreted as the likelihood attributed by the model to the possibility that $i$ supports party $s$. Crucially, the ground-truth opinion $y_i$ of $i$ does not bear involvement in the computation of $x_i^s$. This justifies our analysis, where we compare $x_i$ and $y_i$ in several fashions to assess the validity of the model.
### III. RESULTS

#### A. Equilibrium opinion distributions

The model is able to identify supporters of each party with very high accuracy. The most likely opinion of $i$ according to the model, i.e. $\text{argmax}(x_i)$, matches the ground-truth $y_i$ for 92.5% of users. Party-wise accuracy values are shown in Fig. 1a. FN supporters are the easiest to identify (accuracy 0.95), while PS supporters are the hardest (accuracy 0.81). The worse performance for PS is a pattern that will repeat throughout our analysis. It might be due to the dire situation of the PS at the time, which was considerably weakened after five years of difficult Hollande presidency, and its voting base torn between the rise of FI on the left and EM on the right.

Not only does the model attributes a higher probability to ground-truth opinions than to others, but the difference between the probabilities is not negligible. Let $\mathcal{N}_s$ denote the set of supporters of party $s$. In Fig. 1c we compare the distributions of

$$x^s = \{x_i^s : i \in \mathcal{N}_s\}, \text{ and} \quad (3)$$

$$x^{-s} = \{x_i^t : i \in \mathcal{N}_s, t \neq s\}. \quad (4)$$

The two are concentrated as opposite sides of the unit interval. The former is located towards 1, with means ranging from $\langle x^s \rangle = 0.71$ for PS to $\langle x^s \rangle = 0.86$ for EM, while the latter is strongly skewed towards 0, with means ranging from $\langle x^{-s} \rangle = 0.03$ for EM to $\langle x^{-s} \rangle = 0.07$ for PS. Note that we find consistently low probabilities for $x^{-s}$ (standard deviation ranging from 0.09 for FN supporters to 0.15 for PS), while the magnitude of $x^s$ is much more varied (standard deviation between 0.16 for FN supporters and 0.31 for PS).

An interpretation of the striking difference between the distributions of $x^s$ and $x^{-s}$, is that the supporters of each party occupy a specific region in the five-dimensional space spanned by the $x_i$ vectors. Figures 1d shows that in this space, users are significantly closer to those who support the same party than to others. Furthest away are the supporters of EM and FN, and closest to one another are those of LR and FN. As an illustrative example, we show in Fig. 2 the bidimensional distributions of $(x_i^{EM}, x_i^{PS})$ for EM and PS supporters, and $(x_i^{EM}, x_i^{FN})$ for EM and FN supporters. In the latter case, the densities are concentrated at opposite sides of the unit square. The former case however presents a different picture, as supporters of PS populate a larger and more central area of the subspace (Fig. 2, top plots). To confirm these findings, we evaluate in a more systematic manner how easily supporters of different parties can be separated in the space spanned by the $x_i$ vectors. By fitting a basic Support Vector Classifier (SVC) to the $(x_i, y_i)$ pairs, we find the best separating hyperplane between supporters of the different parties. The separation induced by the hyperplane groups 93% of the users with their like-minded peers; we also show party-wise accuracies in Fig. 1b.

In summary, through the individual equilibrium distributions $x_i$, the voter model embeds the users in a space where supporters of each party are located in a specific region, sepa-

<figure><img src="image_3.png" /><figcaption>FIG. 1: Correspondence between theoretical opinion distributions $x_i$ and ground-truth opinions $y_i$. (a) Party-wise accuracy of $\text{argmax}(x_i)$ (plain bars) (b) Accuracy of the hyperplane separation computed by the SVC algorithm. (c) Distribution of within-party ($x^s$) and cross-party ($x^{-s}$) opinions among supporters of each party $s$, distinguished by color. (d) Average euclidean distance between supporters of the same party (diagonal cells) and supporters of different parties (off-diagonal cells). (e) Distribution of discord probabilities $\rho_{ij}$ between supporters of the same party (blue) and supporters of different parties (red, dashed). The vertical dotted line indicates the cutoff of the logistic regression model: if $\rho_{ij}$ is on the left of it, the logistic regression predicts that $i$ and $j$ support the same party, otherwise it predicts that they support different parties. (f) Average discord probability between supporters of the same party (diagonal cells) and supporters of different parties (off-diagonal cells). Smoothed distributions are computed via kernel density estimation.</figcaption></figure>

rated from the others, and therefore clearly identifiable. This is particularly remarkable, given that individual party preferences are not taken into account by the model.
<figure><img src="image_4.png" /><figcaption>FIG. 2: (Top) Distributions of theoretical opinions towards EM and PS, among EM supporters (left) and PS supporters (right). (Bottom) Distributions of theoretical opinions towards EM and FN, among EM supporters (left) and FN supporters (right).</figcaption></figure>

## B. Discord probabilities

Individual equilibrium opinion distributions $x_i$ describe the stabilization of the system at the user level. It is often useful to also describe stabilization at the level of edges, or more generally user pairs, via the notion of active links or discord probabilities [11, 37, 40]. The discord probability $\rho_{ij}$ is the probability to find $i$ and $j$ holding two different opinions. Under the same conditions as for $x_i$, this quantity converges towards an equilibrium state

$$ \rho_{ij} = \frac{1}{2} \left[ \sum_{k \in \mathcal{N}} w_{ik} \rho_{jk} + \sum_{s \in \mathcal{S}} z_i^s (1 - x_j^s) + \sum_{k \in \mathcal{N}} w_{jk} \rho_{ik} + \sum_{s \in \mathcal{S}} z_j^s (1 - x_i^s) \right]. \quad (5) $$

The first two sums quantify the rates at which user $i$ adopts an opinion different than $j$'s via, respectively, the influence of other users and the influence of zealots. Similarly, the last two sums quantify the rate at which user $j$ adopts an opinion different than $i$'s. Certain conditions of independence between the opinions of $i$ and $j$ allow to use simply

$$ \rho_{ij} = \sum_{s \in \mathcal{S}} x_i^s (1 - x_j^s). \quad (6) $$

Namely, if either (i) $\sigma_i$ or $\sigma_j$ is constant, or (ii) there is no path from $i$ to $j$ nor from $j$ to $i$, and $i$ and $j$ have no common ancestor. The derivation of Eqs. 5,6 is detailed in ref. [11]. As long as the existence and unicity of the $x_i$ vectors are guaranteed, the same goes for the $\rho_{ij}$ values.

The value $\rho_{ij}$ can be interpreted as the likelihood attributed by the model to the possibility that $i$ and $j$ do not support the same party. Averages $\langle \rho_{ij} \rangle$ within and between parties are shown in Fig. 1f. EM supporters exhibit the lowest within-party discord, while PS exhibits the highest. The lowest cross-party discord is observed between LR and FN, the highest between PS and both LR, FN. In Fig. 1e, we plot separately the within-party and cross-party distributions of $\rho_{ij}$. The two differ greatly, the latter being located towards 1 and the former towards 0. Users with the same ground-truth opinion are much more likely to hold the same opinion in the model than those who do not. In fact, a simple logistic regression model is able to discriminate between within-party and cross-party pairs, based on the values $\rho_{ij}$, with 93% accuracy. This highlights the capacity of the model to reliably distinguish friends from foes. Because discord spans a narrower range cross-party than within-party, foes are easier to identify than friends (accuracy 93.4% versus 90.2%).

# IV. ROBUSTNESS

## A. Estimating opinions directly from zealots

The value of $x_i^s$ corresponds to the probability that a backward random walk initiated in $i$ hits a zealot with opinion $s$ before a zealot with any other opinion [12, Prop. 3.2]. Therefore zealots—here political entities—play a crucial role in the equilibrium state of the model. One may then wonder, are the encouraging results we just exposed a mere consequence of the fact that people are preferentially connected with political entities of the party they support? The question is particularly relevant, given that retweet networks are known to exhibit political homophily [41–43]. Let $z_i = (z_i^s)_{s \in \mathcal{S}}$ denote the vector containing the weight of all direct connections from zealots with opinion $s$ toward user $i$. This vector describes the tendency of $i$ to retweet political entities affiliated to the different parties. We expect the vectors $z_i$ to provide good indicators of ground-truth opinions; but if they were to be as good or even better than $x_i$, one may question the relevance of using Eq. 1.

Because 27% of users do not have direct connections with zealots, one cannot infer anything from $z_i$ for about a quarter of the considered population. Therefore the use of the vectors $x_i$ is already beneficial in that it extends the realm of the analysis. Let us now focus on the 73% of users who exhibit direct connections with zealots. Via the $z_i$ vectors, supporters of the same party are positioned closer to one another (average Euclidean distance $\langle \|x_i - x_j\| \rangle = 0.190$) and further from supporters of other parties ($\langle \|x_i - x_j\| \rangle = 1.339$) than they are via the $x_i$ vectors ($\langle \|x_i - x_j\| \rangle = 0.219, 1.146$ respectively). However, we find that $x_i$ is more reliable than $z_i$ to identify ground-truth opinions. Argmax($x_i$) matches the ground-truth opinion of $i$ for 96.2% of users (95.1% for argmax($z_i$)) and a Support Vector Classifier fitted on the $(x_i, y_i)$ pairs correctly categorizes 96.4% percent of the users (94.8% when fitted on the $(z_i, y_i)$ pairs). Therefore, while direct connections with zealots separate more clearly between supporters of different
parties, the voter model allows for a more accurate identification of individual opinions.

## B. Comparison with other networks

Multiple types of user networks can be extracted from online social interactions. To put our results into perspective, we investigate whether different data collection and processing methods impact the empirical validity of the model. We consider five other networks: the unweighted (Unw.) counterpart of the retweet network, the undirected (Und.) counterpart of the retweet network, the undirected and unweighted counterpart of the retweet network (UU), the Follow network (where $w_{ij} = 1$ if $i$ follows $j$ and 0 otherwise), and finally the Mention network (where $w_{ij}$ is the number of times that $i$ mentioned $j$ in a tweet). The distribution of ground-truth opinions among users and zealots varies very little between the different networks (Fig. 1 of the Supplemental Material).

In Table I we show that the retweet network performs the best according to all the metrics we have used in the above analysis, except for the within-party distance between users $\langle\|x_i - x_j\|\rangle_{within}$. The poorer performances of the follow and mention networks are not too surprising. Indeed, while retweets are often considered to be markers of endorsement, people may follow a broader range of the political spectrum [41, 42], and mentions are often used to express hostility towards outgroup members [44, 45]. In fact, only 2% of FN supporters are correctly identified by $\text{argmax}(x_i)$ in the mention network. The combination of discarding both weights and directionality (UU network) also affects the performance significantly—only 6% of FN supporters are correctly identified by $\text{argmax}(x_i)$ in the UU network. This is an especially relevant finding, given that a large part of the literature on the voter model focuses on undirected unweighted networks. The performance of the UU, Follow and Mention networks may also be affected by the fact that zealots bear less overall influence in these networks than in the others (Figs. 2,3 of the Supplemental Material).

Finally, the unweighted and undirected counterparts of the retweet network exhibit only slightly worse performance than the original retweet network with weights and directionality of edges. Moreover, discarding edge weights appears to be less penalizing than discarding directionality.

## V. DISCUSSION

The multi-state voter model with zealots can accurately estimate individual opinions in a large, fine-grained, heterogeneous online population. The separation between users with different ground-truth opinions is clear in the opinion space of the model, and the model correctly identifies the ground-truth for 92.5% of the users. Discord probabilities act as very good proxies to distinguish user pairs with the same ground-truth opinion from others. These results are largely due to the direct connections with zealots, which act on their own

<table><caption>TABLE I: Comparison between the results of the model applied on the directed weighted retweet network, its unweighted counterpart (Unw.), its undirected counterpart (Und.), its undirected unweighted counterpart (UU), the follow network and the mention network. Subscripts precise whether the averages are within- or cross-party. $\langle\|x_i - x_j\|\rangle$ is the average Euclidean distance in the opinion space of the model for the considered user pairs, and $\langle\rho_{ij}\rangle$ the average discord probability. $\text{logistic}(\rho_{ij})$ denotes a logistic regression model trained to distinguish between supporters of the same party and supporters of different parties on the basis of the $\rho_{ij}$ values. “Acc.” stands for accuracy, given in percentages.</caption><thead><tr><th></th><th>Retweet</th><th>Unw.</th><th>Und.</th><th>UU</th><th>Follow</th><th>Mention</th></tr></thead><tbody><tr><td>Acc. argmax(x<sub>i</sub>)</td><td><b>92.5</b></td><td>91.6</td><td>91.9</td><td>74.9</td><td>84.2</td><td>64.4</td></tr><tr><td>Acc. SVC</td><td><b>93.0</b></td><td>92.8</td><td>92.8</td><td>92.8</td><td>89.4</td><td>83.9</td></tr><tr><td>⟨x<sup>s</sup>⟩</td><td><b>0.781</b></td><td>0.672</td><td>0.636</td><td>0.507</td><td>0.471</td><td>0.337</td></tr><tr><td>⟨x<sup>-s</sup>⟩</td><td><b>0.055</b></td><td>0.082</td><td>0.091</td><td>0.123</td><td>0.132</td><td>0.166</td></tr><tr><td>⟨||x<sub>i</sub> - x<sub>j</sub>||⟩<sub>within</sub></td><td>0.296</td><td>0.266</td><td>0.235</td><td>0.188</td><td>0.205</td><td><b>0.164</b></td></tr><tr><td>⟨||x<sub>i</sub> - x<sub>j</sub>||⟩<sub>cross</sub></td><td><b>1.097</b></td><td>0.904</td><td>0.840</td><td>0.617</td><td>0.545</td><td>0.301</td></tr><tr><td>⟨ρ<sub>ij</sub>⟩<sub>within</sub></td><td><b>0.355</b></td><td>0.486</td><td>0.499</td><td>0.591</td><td>0.638</td><td>0.682</td></tr><tr><td>⟨ρ<sub>ij</sub>⟩<sub>cross</sub></td><td><b>0.902</b></td><td>0.852</td><td>0.835</td><td>0.779</td><td>0.795</td><td>0.730</td></tr><tr><td>Acc. logistic(ρ<sub>ij</sub>)</td><td><b>92.9</b></td><td>89.8</td><td>87.2</td><td>86.1</td><td>85.3</td><td>77.8</td></tr></tbody></table>

as very good indicators of individual opinions. But the user-to-user influence mechanism encapsulated by the voter model allows for a greater accuracy, while extending the realm of the analysis to users who are not necessarily connected with zealots. Moreover, we have shown that networks derived from other forms of Twitter interactions (follow, mention) and unweighted, undirected counterparts of the retweet network do not yield as good results. This highlights the necessity to use specific types of interactions, and to not discard weights and directionality, for the voter model to retrieve individual opinions the best. These results advocate for the pursuit of more research dedicated to directed, weighted, heterogeneous networks with more than two opinions.

Our results also add to the existing body of evidence for the empirical validity of the voter model. Other datasets, and extensions such as the partisan voter model [46] or the nonlinear voter model [47], could be the ground of further testing. Because we analyzed the equilibrium state of the model, our findings pertain to the long-term behavior or the model. Future works should strive to integrate temporal aspects. Overall, we call for more research dedicated to the empirical evaluation of opinion dynamics models on the individual level in heterogeneous settings.

## ACKNOWLEDGMENTS

I thank Fernando Diaz-Diaz for his careful reading and previous advices on this manuscript. I also thank Guillaume Cabanac and Ophélie Fraisier-Vannier for reuploading the *Elysée2017fr* dataset, Effrosyni Papanastasiou for sharing the follower network with me, and Lucía S. Ramirez for insightful
[1] A. F. Peralta, P. Ramaciotti, J. Kertész, and G. Iñiguez, Phys. Rev. Res. **6**, 013170 (2024).

[2] J. Ojer, M. Starnini, and R. Pastor-Satorras, Phys. Rev. Lett. **130**, 207401 (2023).

[3] T. M. Pham, J. Korbel, R. Hanel, and S. Thurner, Proceedings of the National Academy of Sciences **119**, e2121103119 (2022).

[4] F. Baumann, P. Lorenz-Sreen, I. M. Sokolov, and M. Starnini, Phys. Rev. X **11**, 011012 (2021).

[5] A. F. Peralta, M. Neri, J. Kertész, and G. Iñiguez, Phys. Rev. E **104**, 044312 (2021).

[6] R. Axelrod, J. J. Daymude, and S. Forrest, Proc Natl Acad Sci USA **118**, e2102139118 (2021).

[7] M. W. Macy, M. Ma, D. R. Tabin, J. Gao, and B. K. Szymanski, Proc Natl Acad Sci USA **118**, e2102144118 (2021).

[8] A. Vendeville and F. Diaz-Diaz, Echo chamber effects in signed networks (2024), 2406.17435 [physics].

[9] A. Vendeville, A. Giovanidis, E. Papanastasiou, and B. Guedj, in *Complex Networks and Their Applications XI*, Vol. 1077, edited by H. Cherifi, R. N. Mantegna, L. M. Rocha, C. Cherifi, and S. Miccichè (Springer International Publishing, Cham, 2023) pp. 74–85.

[10] Y. Li, W. Chen, Y. Wang, and Z.-L. Zhang, Internet Mathematics **11**, 93 (2015).

[11] A. Vendeville, S. Zhou, and B. Guedj, Phys. Rev. E **109**, 024312 (2024).

[12] M. E. Yildiz, A. Ozdaglar, D. Acemoglu, A. Saberi, and A. Scaglione, Trans. Econ. Comput. **1**, 10.1145/2538508 (2013).

[13] M. Mobilia, A. Petersen, and S. Redner, J. Stat. Mech. **07**, P08029 (2007).

[14] G. Iannelli, G. De Marzo, and C. Castellano, Chaos: An Interdisciplinary Journal of Nonlinear Science **32**, 043103 (2022).

[15] P. Ramaciotti Morales and J.-P. Cointet, in *RecSys '21: 15th ACM Conference on Recommender Systems* (Amsterdam, Netherlands, 2021).

[16] P. S. Vishnuprasad, G. Nogara, F. Cardoso, S. Cresci, S. Gior-dano, and L. Luceri, ICWSM **18**, 1557 (2024).

[17] P. Lorenz-Sreen, L. Oswald, S. Lewandowsky, and R. Hertwig, Nat Hum Behav **7**, 74 (2023).

[18] E. Kubin and C. Von Sikorski, Annals of the International Communication Association **45**, 188 (2021).

[19] H. Pérez-Martínez, F. Bauzá Mingueza, D. Soriano-Paños, J. Gómez-Gardeñes, and L. Floría, Chaos, Solitons & Fractals **175**, 113917 (2023).

[20] F. Baumann, P. Lorenz-Sreen, I. M. Sokolov, and M. Starnini, Phys. Rev. Lett. **124**, 048301 (2020).

[21] O. Sikder, R. E. Smith, P. Vivo, and G. Livan, Sci Rep **10**, 5493 (2020).

[22] M. Gsänger, V. Hösel, C. Mohamad-Klotzbach, and J. Müller, Entropy **26**, 212 (2024).

[23] P. G. Meyer and R. Metzler, New J. Phys. 10.1088/1367-2630/ad27bc (2024).

[24] A. Vendeville, B. Guedj, and S. Zhou, *Applied Network Science* **6**, 1 (2021).

[25] S. Mori, M. Hisakado, and K. Nakayama, Phys. Rev. E **99**, 052307 (2019).

[26] J. Fernández-Gracia, K. Schecki, J. J. Ramasco, M. San Miguel, and V. M. Eguíluz, Phys. Rev. Lett. **112**, 158701 (2014).

[27] J. Liu, S. Huang, N. M. Aden, N. F. Johnson, and C. Song, Phys. Rev. Lett. **130**, 037401 (2023).

[28] C. M. Valensise, M. Cinelli, and W. Quattrociocchi, Information Sciences **642**, 119152 (2023).

[29] K. Sasahara, W. Chen, H. Peng, G. L. Ciampaglia, A. Flammini, and F. Menczer, J. Comput. Soc. Sc. 10.1007/s42001-020-00084-7 (2020).

[30] D. Braha and M. A. M. de Aguiar, PLOS ONE **12**, 1 (2017).

[31] A. F. Peralta, J. Kertész, and G. Iñiguez, Opinion dynamics in social networks: From models to data (2022), arXiv:2201.01322 [physics.soc-ph].

[32] P. Sobkowicz, Frontiers in Physics **8**, 10.3389/fphy.2020.587009 (2020).

[33] P. Rosanvallon, *The Populist Century: History, Theory, Critique* (Wiley, Hoboken, NJ, 2021).

[34] J. Roozenbeek and F. Zollo, Nature **612**, 404 (2022).

[35] V. Pansanella, A. Sírbu, J. Kertész, and G. Rossetti, Sci Rep **13**, 14600 (2023).

[36] O. Fraisier, G. Cabanac, Y. Pitarch, R. Besançon, and M. Boughanem, 10.5281/zenodo.5535333 (2018).

[37] L. Ramirez, M. San Miguel, and T. Galla, Phys. Rev. E **106**, 054307 (2022).

[38] E. Papanastasiou and A. Giovanidis, J. Soc. Netw. Anal. Min. 2301.10646 (2023).

[39] O. Fraisier, G. Cabanac, Y. Pitarch, R. Besançon, and M. Boughanem, in *Proceedings of the 12th International AAAI Conference on Web and Social Media* (2018).

[40] F. Vazquez and V. M. Eguíluz, New J. Phys. **10**, 063011 (2008).

[41] V. R. K. Garimella and I. Weber, in *Proceedings of the 11th International Conference on Web and Social Media* (ICWSM 2017) (AAAI Press, 2017) pp. 528–531.

[42] Y. Halberstam and B. Knight, J Public Econ **143**, 73 (2016).

[43] M. D. Conover, J. Ratkiewicz, M. Francisco, B. Goncalves, F. Menczer, and A. Flammini, in *ICWSM* (2011).

[44] J. Tacchi, C. Boldrini, A. Passarella, and M. Conti, in *Proceedings of the 2022 IEEE International Conference on Big Data* (2022) pp. 6030–6038.

[45] H. T. Williams, J. R. McMurray, T. Kurz, and F. Hugo Lambert, Glob Environ Change **32**, 126 (2015).

[46] J. Llabrés, M. San Miguel, and R. Toral, Phys. Rev. E **108**, 054106 (2023).

[47] L. S. Ramirez, F. Vazquez, M. San Miguel, and T. Galla, Phys. Rev. E **109**, 034307 (2024).
Voter model can accurately predict individual opinions in online
populations: Supplemental Material

Antoine Vendeville*

médialab, Sciences Po, 75007 Paris, France

Complex Systems Institute of Paris Île-de-France (ISC-PIF) CNRS, 75013 Paris, France and
Learning Planet Institute, Research Unit Learning Transitions, 75004 Paris, France

(Dated: July 1, 2025)
# I. DETAILS OF COMPUTATIONS

The values of $x_i^s$ and $\rho_{ij}$ are computed with iterative algorithms described in ref. [1]. The argmax of $x_i$ and $z_i$ may lie in several of their coordinates at the same time; when comparing these argmax with the ground-truth opinion, we consider that the ground-truth is correctly identified if one of the coordinates where the argmax is reached matches the ground-truth. The support vector classifier and the logistic regression are performed using the dedicated functions of Python's `sklearn` library. We use default parameters; grid-searching for optimal values did not yield significantly better results. We use `class_weight=balanced` for the logistic regression, because some parties have more supporters than others (cf. Fig 1) and logistic regression is sensitive to class imbalance. Smoothed distributions are plotted using the `kdeplot` function of Python's `seaborn` library with default parameters.

# II. STATISTICS OF NETWORKS

The existence of a unique solution to Eq. 1 requires that every user can be reached by at least one zealot via a path in the network [2, Thm. 2.1]. For each network considered (retweet, Unw., Und., UU, Follow, Mention) we remove all the users who cannot be reached by a zealot. Each network also exhibits a giant (weakly) connected component and several very small components of size one or two. Because our purpose is to study the effect of the user-to-user influence mechanism encapsulated by the voter model, we restrict ourselves to the giant component of each network. General statistics for the networks are provided in Table I. The distribution of ground-truth labels for users and zealots in the retweet network is shown in Fig. 1. The figures vary very little for the other networks. We also show the distribution of zealots across parties for each network. We see that all the networks exhibit highly similar distributions.

In Fig. 2 we compare for each network, the distribution of zealots across parties with their reach. The reach of the zealots supporting party $s$ is defined as the number of users that they are able to reach, that is, the number of users $i$ with $x_i^s > 0$. We do not see a strong difference in reach between parties in any network, however, we see that zealots have much less reach in the Follow and Mention networks. This is particularly interesting, given that these two networks boast the highest proportion of zealots among the whole population. Therefore, the evolution of opinions is

<footnote>* antoine.vendeville@sciencespo.fr</footnote>
<table><caption>TABLE I: Topological statistics of the different networks. SCC stands for Strongly Connected Component (of the user network).</caption><thead><tr><th></th><th>Retweet</th><th>Unw.</th><th>Und.</th><th>UU</th><th>Follow</th><th>Mention</th></tr></thead><tbody><tr><td>Number of users <i>N</i></td><td>15,607</td><td>15,607</td><td>15,996</td><td>15,996</td><td>11,920</td><td>12,786</td></tr><tr><td>Number of zealots</td><td>1,487</td><td>1,487</td><td>1,842</td><td>1,842</td><td>1,516</td><td>1,844</td></tr><tr><td>Percentage of zealots (%)</td><td>8.70</td><td>8.70</td><td>10.33</td><td>10.33</td><td>11.28</td><td>12.60</td></tr><tr><td>Size of the largest SCC</td><td>10,618</td><td>10,618</td><td>15,996</td><td>15,996</td><td>10,385</td><td>12,618</td></tr><tr><td>Percentage of users in largest SCC (%)</td><td>68.03</td><td>68.03</td><td>100.00</td><td>100.00</td><td>87.12</td><td>98.69</td></tr></tbody></table>

<figure><img src="image_5.png" /><figcaption>FIG. 1: Distribution of ground-truth opinions in the retweet dataset, for users (left) and zealots (center). We also show the distribution of zealots across parties for each network (right). The rows are independent and each one sums to 100%.</figcaption></figure>

more driven by interactions between users than by the influence of zealots, despite them being a larger share of the whole population. This could explain why the Follow and Mention networks exhibit the lowest performance in retrieving ground-truth opinions $y_i$ from the $x_i$ vectors.

We also look at the direct influence of zealots, defined for each party $s$ as the average value of $z_i^s$, in Fig. 3. This corresponds to a weighted out-degree centrality, shedding light on the importance of zealots within the networks. Again we do not see major differences between networks, except that zealots exhibit lower directed influences in the Mention network. Interestingly however, contrary to the reach, direct influences vary between parties. Parties with the largest number of zealots have more direct influence.
<figure><img src="image_6.png" /><figcaption>FIG. 2: Comparison between the distribution of zealots across parties and their reach, defined for party *s* as the number of users *i* with $x_i^s > 0$. We show results for each of the networks considered.</figcaption></figure>

<figure><img src="image_7.png" /><figcaption>FIG. 3: Comparison between the distribution of zealots across parties and their direct influence, defined for party *s* as the average value of $z_i^s$. We show results for each of the networks considered.</figcaption></figure>
<figure><img src="image_8.png" /><figcaption>FIG. 4: Party-wise accuracy of argmax($x_i$) (plain bars) and SVC (hatched bars) for the retrieval of ground-truth opinions $y_i$ from $x_i$ and $z_i$. Dark bars stand for $x_i$ and transparent bars for $z_i$.</figcaption></figure>

### III. ADDITIONAL RESULTS AND FIGURES

#### A. Direct connections with zealots

Figure 4 and Table II provide more detailed results about the comparison between the performance of $x_i$ and the performance of $z_i$. As stated in the main text, while users seem to be better separated along party lines in the opinion space by $z_i$ than by $x_i$ (last four lines of Table II), ground-truth opinions are more easily recognized by $x_i$ (first two lines of Table II).

#### B. Approximation of discord probabilities

We proposed in ref. [1, Eq. 10] a formula to approximate quickly and efficiently the discord probabilities $\rho_{ij}$ on the sole base of $x_i$ and $x_j$. The approximation becomes exact under certain conditions of independence between the opinions of $i$ and $j$. To assess the approximation error, we compare in Fig. 5 its results with those obtained from the exact formula (Eq. 5 in the main text). We disregard user pairs with independent opinions and for which the approximation is exact. We find that the approximation tends to over-estimate, and rarely under-estimate, the discord probabilities. This is not too surprising, given that factors of dependencies between opinions tend to bring those toward the same values. For example, if two users are connected by heavily weighted edges, their opinions will naturally be much more than could be assumed from $x_i$ and $x_j$ taken separately. The
<table><caption>TABLE II: Comparison between the equilibrium opinions in the voter model and a baseline that considers solely direct connections with zealots. The notation $u$ refers to $x$ for the voter model and to $z$ for the baseline. The network is restricted to users with at least one direct connection with zealots. Subscripts “within” and “cross” precise whether the average is taken over pairs of users supporting the same party or two different parties. Accuracies are given as percentages.</caption><thead><tr><th></th><th>Voter model (u<sub>i</sub> = x<sub>i</sub>)</th><th>Baseline (u<sub>i</sub> = z<sub>i</sub>)</th></tr></thead><tbody><tr><td>Accuracy argmax(u<sub>i</sub>)</td><td><strong>96.2</strong></td><td>95.1</td></tr><tr><td>Accuracy SVC</td><td><strong>96.4</strong></td><td>94.8</td></tr><tr><td>⟨u<sup>s</sup>⟩</td><td>0.826</td><td><strong>0.925</strong></td></tr><tr><td>⟨u<sup>-s</sup>⟩</td><td>0.044</td><td><strong>0.019</strong></td></tr><tr><td>⟨||u<sub>i</sub> - u<sub>j</sub>||⟩<sub>within</sub></td><td>0.219</td><td><strong>0.190</strong></td></tr><tr><td>⟨||u<sub>i</sub> - u<sub>j</sub>||⟩<sub>cross</sub></td><td>1.146</td><td><strong>1.339</strong></td></tr></tbody></table>

average error lies between 0.003 (Retweet network) and 0.025 (Mention network), with maximum errors ranging from 0.447 (unweighted retweet network) to 0.668 (Mention network). Therefore, while the approximation fares well for most users, if one is interested in the discord between two users which highly dependent opinions, it becomes crucial to use the exact formula.

### C. Results for additional networks

We show the equivalent of Fig. 1 of the main text for the other networks: Unw. (Figs. 6), Und. (Fig. 7), UU (Fig. 8), Follow (Fig. 9), Mention (Fig. 10).

[1] A. Vendeville, S. Zhou, and B. Guedj, Phys. Rev. E 109, 024312 (2024).

[2] M. E. Yildiz, A. Ozdaglar, D. Acemoglu, A. Saberi, and A. Scaglione, Trans. Econ. Comput. 1, 10.1145/2538508 (2013).
<figure><img src="image_9.png" /><figcaption>FIG. 5: Comparison between $ρ_{ij}$ values computed using the exact formula (Eq. 5 in the main text, x-axis) and the approximation proposed in [1, Eq. 10] (y-axis) for each network. The diagonal orange lines indicate the identity.</figcaption></figure>
<figure><img src="image_10.png" /><figcaption>FIG. 6: Correspondence between theoretical opinion distribution $x_i$ and ground-truth opinions $y_i$ for the unweighted retweet network.</figcaption></figure>
<figure><img src="image_11.png" /><figcaption>FIG. 7: Correspondence between theoretical opinion distribution $x_i$ and ground-truth opinions $y_i$ for the undirected retweet network.</figcaption></figure>
<figure><img src="image_12.png" /><figcaption>FIG. 8: Correspondence between theoretical opinion distribution $x_i$ and ground-truth opinions $y_i$ for the undirected and unweighted (UU) retweet network.</figcaption></figure>
<figure><img src="image_13.png" /></figure>

<figure><img src="image_14.png" /></figure>

<figure><img src="image_15.png" /></figure>

<figure><img src="image_16.png" /></figure>

<figure><img src="image_17.png" /></figure>

<figure><img src="image_18.png" /></figure>

<figure><img src="image_19.png" /></figure>

<figure><img src="image_20.png" /></figure>

<figure><img src="image_21.png" /></figure>

<figure><img src="image_22.png" /></figure>

<figure><img src="image_23.png" /></figure>

<figure><img src="image_24.png" /><figcaption>FIG. 9: Correspondence between theoretical opinion distribution $x_i$ and ground-truth opinions $y_i$ for the Follow network.</figcaption></figure>
<figure><img src="image_25.png" /><figcaption>FIG. 10: Correspondence between theoretical opinion distribution $x_i$ and ground-truth opinions $y_i$ for the Mention network.</figcaption></figure>