Experiment 20250413-BROD


2026-03-23: This experiment uses wrong workflow

Note: The workflow used in this experiment is oddw,br,of,barc (i.e., perform the synchronizations after propagating both of opinions and beliefs). This is not what is intended. The experiment with corrected workflow is performed as [20250414-BROD].

Experiment design

Date: 2025-04-11

Designer: Hiro KATAOKA (University of Tsukuba)

Hypotheses: Echo chambers are reinforced if opinions and beliefs evolve together with synchronization

100 agents; 1 runs; 5000 games

Variables

fixed variables: WORKFLOW TOPIC ATOM PACTIVE PREWRITE NBITERATIONS NBAGENTS NBRUNS ALPHA MU REWRITE VALUE PREHOC

controlled variables: EPSILONS DELTAS SEEDS

dependent variables: eo eb

Values

EPSILONS: ['0.05', '0.1', '0.15', '0.2', '0.25', '0.3', '0.35', '0.4', '0.45', '0.5']
DELTAS: ['1', '2', '3', '4', '5', '6', '7']
SEEDS: ['544371', '315590', '903997', '779659', '556198', '160590', '103848', '94821', '501765', '722393', '908149', '490361', '170743', '808653', '204557', '720126', '24083', '756485', '970547', '909432']

Measures

Before verifying each hypotheses, we define the measures needed to check them. Let $A$ be the set of agents. Let $\mathcal S^t$ be the set of strongly connected components of the network of agents at time $t$.

eo (Opinion echo chamber)

This measure counts the number of communities (i.e., strongly connected components) such that:

  • they are segregated, i.e., $L^t(C)\leq 0.5$;
  • opinions are homogeneous, i.e., $M_O^t(C)\leq 10^{-4}$;
  • opinions have been reinforced, i.e., $D_O^t(C)$

to all of the communities, where

$$ L^t(C)=\frac{|\{(a,a')\in N^t;a\in C\land a'\notin C\}|}{|\{(a,a')\in N^t;a\in C\}|}, $$

$$ M_O^t(C) = \max_{a,a'\in C}|O_a^t-O_{a'}^t| $$

and

$$ D_O^t(C)=\forall s\in [t_C,T),M_O^s(C)\geq M_O^{s+1}(C). $$

Here, $[t_C,T]$ is the maximal time window such that $\forall t\in[t_C,T]$, $C\in\mathcal S^t$ and $T$ is the number of iterations.

More formally, $eo$ is defined as:

$$ eo^t=|\{C\in\mathcal S^t;L^t(C)\leq 0.5\land M_O^t(C)\leq 10^{-4}\land D_O^t(C)\}| $$

eb (Belief echo chamber)

This measure counts the number of communities (i.e., strongly connected components) such that:

  • they are segregated, i.e., $L^t(C)\leq 0.5$;
  • beliefs are homogeneous, i.e., $M_B^t(C)=0$;
  • beliefs have been reinforced, i.e., $D_B^t(C)$

to all of the communities, where

$$ M_B^t(C) = \max_{a,a'\in C}d_B(B_a^t,B_{a'}^t) $$

and

$$ D_B^t(C)=\forall s\in [t_C,T),M_B^s(C)\geq M_B^{s+1}(C). $$

Here, $d_B$ is the Hamming distance over the models of two beliefs:

$$ d_B(B,B')=|\mathcal M(B)\setminus\mathcal M(B')|+|\mathcal M(B')\setminus\mathcal M(B)|. $$

More formally, $eb$ is defined as:

$$ eb=|\{C\in\mathcal S^t;L^t(C)\leq 0.5\land M_B^t(C)=0\land D_B^t(C)\}| $$

Experiment

Date: 2025-04-11

Performer: Hiro KATAOKA (University of Tsukuba)

The whole experiment, from scratch, can be executed through:

In principle, this could be generated from command line through:

# only once, not checked in
$ bash utils/clone.sh 

# depends on ${HASH}, if it does not change, no need to recompile
# to compile a further version use 'last' as argument
$ bash utils/compile.sh

# Perform experiments
$ bash script.sh

# The analysis is done through jupyter
$ jupyter notebook &
# Do not forget to trust the notebook

# Before commiting the notebook
$ nb-clean -e notebook.ipynb

# suppresses results and experiments
$ bash utils/cleanup.sh

# bash utils/anonymize.sh

Parameter file: params.sh

Executed command (script.sh):

#!/bin/bash

. params.sh

set -u
mkdir -p ${RESDIR}

MAX_PROCESS=10
current_process=0

# run

date > ${RESDIR}/log.txt

for eps in ${EPSILONS}
do
for delta in ${DELTAS}
do
for seed in ${SEEDS}
do
EXP=${eps}-${delta}-${seed}
mkdir -p ${RESDIR}/${EXP}

echo ${EXP}
./${SIMDIR}/soba --seed ${seed} --dir "${RESDIR}/${EXP}" --nbAgent ${NBAGENTS} \
    --tick ${NBITERATIONS} --atoms ${ATOM} --update ${WORKFLOW} \
    --prehoc "${PREHOC}" \
    --mu "${MU}" --alpha "${ALPHA}" --rewrite ${REWRITE} \
    --pUnfollow "${PREWRITE}" --pActive "${PACTIVE}" --epsilon "${eps}"  \
    --delta ${delta} \
    --values """`cat ${TEMPLATEDIR}/val-${VALUES}.json`""" \
    --topics "${TOPIC}" &
current_process=$((current_process + 1))

if [[ $current_process = $MAX_PROCESS ]]; then
wait
current_process=0
fi

done
done
done


date >> ${RESDIR}/log.txt

# analyse

Hardware: AMD EPYC 7302P (16) @ 3.000GHz, Memory 128GB

OS: Ubuntu 22.04.5 LTS x86_64

Nim version: 2.2.0

Simulator version: 8244359cd4a790a216e5c162fe0faa9f6ffc0754

Duration and Output

  • Duration: 5 hours and 30 minutes
  • Output: 22 GB

Raw Results

Raw results are available at Zenodo:

DOI:10.5281/zenodo.15195528

Analysis

Stability check

Before we analyze the results, we test whether opinions/beliefs/networks have been stable. We compute the minimum time $T_O',T_B',T_N'$ such that:

  • $\forall t\in [T_O',T]$ and $\forall a\in A$, $|O_a^t-O_a^T|\leq 10^{-4}$ where $T=$ 5000;
  • $\forall t\in [T_B',T]$ and $\forall a\in A$, $B_a^t=B_a^T$;
  • $\forall t\in [T_N',T]$ and $\forall a\in A$, $N_a^t=N_a^T$,

and show some statistic of them.

Out[14]:
opinion belief network
count 1400.000000 1400.000000 1400.000000
mean 273.707143 356.251429 3456.882143
std 318.095335 409.830500 2265.105395
min 31.000000 15.000000 0.000000
25% 52.000000 36.750000 267.500000
50% 162.500000 220.500000 4999.000000
75% 380.250000 551.000000 5000.000000
max 5000.000000 4999.000000 5000.000000

Opinions

There are only one experiment whose $T_O'$ is larger than $4500$:

Out[15]:
opinion belief network
0.5-3-908149 5000 4999 5000

In this experiment, agents' opinions have been evolved as follows:

Out[16]:
<Axes: xlabel='0'>
No description has been provided for this image

Some opinions are oscillating.

Out[17]:
(4900.0, 5000.0)
No description has been provided for this image

Beliefs

There are only one experiment whose $T_B'$ is larger than $4500$: the same experiment as above.

Out[18]:
opinion belief network
0.5-3-908149 5000 4999 5000

Network

There are 955 experiments out of 1400 such that $T_N'$ is larger than $4500$:

Out[19]:
opinion belief network
0.05-1-544371 218 1471 5000
0.05-1-315590 103 374 5000
0.05-1-903997 58 1244 5000
0.05-1-779659 325 770 5000
0.05-1-556198 61 478 5000
... ... ... ...
0.5-4-204557 120 98 4990
0.5-4-756485 41 32 4995
0.5-5-94821 34 20 4999
0.5-5-501765 34 18 5000
0.5-5-204557 35 19 4991

955 rows × 3 columns

This is because for some agents,

$$ |N_a^T|\geq |\{a'\in A;|O_a^T-O_{a'}^T|\leq 10^{-4}\land B_a^T=B_{a'}^T\}| $$

and thus $a$ has to find other concordant agent $a'$ who is not in $N_a$ while this is impossible. We call such agents as unstable agents.

Out[21]:
unstables
0.05-1-544371 47
0.05-1-315590 60
0.05-1-903997 56
0.05-1-779659 62
0.05-1-556198 60
... ...
0.5-7-720126 0
0.5-7-24083 0
0.5-7-756485 0
0.5-7-970547 0
0.5-7-909432 0

1400 rows × 1 columns

We test whether the two sets of the experiments are the same:

  • the experiments whose $T'$ is larger than $4500$;
  • the experiments such that there are at least one unstable agents.
They are the same.

Thus, the network is stable if this is possible (i.e., no agents are stable).

Out[25]:
569

Computing the measures

Out[29]:
eps delta seed component agents_component singleton agents_singleton segregation agents_segregation ophomogeneity ... belhomogeneity agents_belhomogeneity opreinforcing agents_opreinforcing belreinforcing agents_belreinforcing opecho agents_opecho belecho agents_belecho
0.05-1-544371 0.05 1.0 544371.0 21.0 100.0 12.0 12.0 7.0 83.0 20.0 ... 20.0 63.0 21.0 100.0 21.0 100.0 6.0 46.0 6.0 46.0
0.05-1-315590 0.05 1.0 315590.0 10.0 100.0 6.0 6.0 4.0 94.0 9.0 ... 9.0 36.0 10.0 100.0 10.0 100.0 3.0 30.0 3.0 30.0
0.05-1-903997 0.05 1.0 903997.0 5.0 100.0 3.0 3.0 2.0 97.0 4.0 ... 4.0 25.0 5.0 100.0 5.0 100.0 1.0 22.0 1.0 22.0
0.05-1-779659 0.05 1.0 779659.0 7.0 100.0 3.0 3.0 4.0 97.0 6.0 ... 6.0 23.0 7.0 100.0 7.0 100.0 3.0 20.0 3.0 20.0
0.05-1-556198 0.05 1.0 556198.0 9.0 100.0 7.0 7.0 2.0 93.0 8.0 ... 8.0 28.0 9.0 100.0 9.0 100.0 1.0 21.0 1.0 21.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
0.5-7-720126 0.50 7.0 720126.0 4.0 100.0 3.0 3.0 1.0 97.0 4.0 ... 4.0 100.0 4.0 100.0 4.0 100.0 1.0 97.0 1.0 97.0
0.5-7-24083 0.50 7.0 24083.0 2.0 100.0 1.0 1.0 1.0 99.0 2.0 ... 2.0 100.0 2.0 100.0 2.0 100.0 1.0 99.0 1.0 99.0
0.5-7-756485 0.50 7.0 756485.0 3.0 100.0 2.0 2.0 1.0 98.0 3.0 ... 3.0 100.0 3.0 100.0 3.0 100.0 1.0 98.0 1.0 98.0
0.5-7-970547 0.50 7.0 970547.0 6.0 100.0 5.0 5.0 1.0 95.0 6.0 ... 6.0 100.0 6.0 100.0 6.0 100.0 1.0 95.0 1.0 95.0
0.5-7-909432 0.50 7.0 909432.0 3.0 100.0 2.0 2.0 1.0 98.0 3.0 ... 3.0 100.0 3.0 100.0 3.0 100.0 1.0 98.0 1.0 98.0

1400 rows × 21 columns

Overall results in a table

Initial status

Following table shows some statistic of the number of components which satisfy corresponding conditions:

Out[33]:
component singleton segregation ophomogeneity belhomogeneity opecho belecho
count 1400.000000 1400.000000 1400.0 1400.000000 1400.000000 1400.0 1400.0
mean 3.000000 2.000000 1.0 2.000000 2.000000 0.0 0.0
std 1.414719 1.414719 0.0 1.414719 1.414719 0.0 0.0
min 1.000000 0.000000 1.0 0.000000 0.000000 0.0 0.0
25% 2.000000 1.000000 1.0 1.000000 1.000000 0.0 0.0
50% 3.000000 2.000000 1.0 2.000000 2.000000 0.0 0.0
75% 4.000000 3.000000 1.0 3.000000 3.000000 0.0 0.0
max 6.000000 5.000000 1.0 5.000000 5.000000 0.0 0.0

And the number of agents in the corresponding components is:

Out[34]:
agents_component agents_singleton agents_segregation agents_ophomogeneity agents_belhomogeneity agents_opecho agents_belecho
count 1400.0 1400.000000 1400.000000 1400.000000 1400.000000 1400.0 1400.0
mean 100.0 2.000000 98.000000 2.000000 2.000000 0.0 0.0
std 0.0 1.414719 1.414719 1.414719 1.414719 0.0 0.0
min 100.0 0.000000 95.000000 0.000000 0.000000 0.0 0.0
25% 100.0 1.000000 97.000000 1.000000 1.000000 0.0 0.0
50% 100.0 2.000000 98.000000 2.000000 2.000000 0.0 0.0
75% 100.0 3.000000 99.000000 3.000000 3.000000 0.0 0.0
max 100.0 5.000000 100.000000 5.000000 5.000000 0.0 0.0

After the $T$ interactions

We show the same tables as before but obtained from the results after the $T$-th interaction.

Out[35]:
eps delta seed component agents_component singleton agents_singleton segregation agents_segregation ophomogeneity ... belhomogeneity agents_belhomogeneity opreinforcing agents_opreinforcing belreinforcing agents_belreinforcing opecho agents_opecho belecho agents_belecho
0.05-1-544371 0.05 1.0 544371.0 21.0 100.0 12.0 12.0 7.0 83.0 20.0 ... 20.0 63.0 21.0 100.0 21.0 100.0 6.0 46.0 6.0 46.0
0.05-1-315590 0.05 1.0 315590.0 10.0 100.0 6.0 6.0 4.0 94.0 9.0 ... 9.0 36.0 10.0 100.0 10.0 100.0 3.0 30.0 3.0 30.0
0.05-1-903997 0.05 1.0 903997.0 5.0 100.0 3.0 3.0 2.0 97.0 4.0 ... 4.0 25.0 5.0 100.0 5.0 100.0 1.0 22.0 1.0 22.0
0.05-1-779659 0.05 1.0 779659.0 7.0 100.0 3.0 3.0 4.0 97.0 6.0 ... 6.0 23.0 7.0 100.0 7.0 100.0 3.0 20.0 3.0 20.0
0.05-1-556198 0.05 1.0 556198.0 9.0 100.0 7.0 7.0 2.0 93.0 8.0 ... 8.0 28.0 9.0 100.0 9.0 100.0 1.0 21.0 1.0 21.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
0.5-7-720126 0.50 7.0 720126.0 4.0 100.0 3.0 3.0 1.0 97.0 4.0 ... 4.0 100.0 4.0 100.0 4.0 100.0 1.0 97.0 1.0 97.0
0.5-7-24083 0.50 7.0 24083.0 2.0 100.0 1.0 1.0 1.0 99.0 2.0 ... 2.0 100.0 2.0 100.0 2.0 100.0 1.0 99.0 1.0 99.0
0.5-7-756485 0.50 7.0 756485.0 3.0 100.0 2.0 2.0 1.0 98.0 3.0 ... 3.0 100.0 3.0 100.0 3.0 100.0 1.0 98.0 1.0 98.0
0.5-7-970547 0.50 7.0 970547.0 6.0 100.0 5.0 5.0 1.0 95.0 6.0 ... 6.0 100.0 6.0 100.0 6.0 100.0 1.0 95.0 1.0 95.0
0.5-7-909432 0.50 7.0 909432.0 3.0 100.0 2.0 2.0 1.0 98.0 3.0 ... 3.0 100.0 3.0 100.0 3.0 100.0 1.0 98.0 1.0 98.0

1400 rows × 21 columns

Out[36]:
component singleton segregation ophomogeneity belhomogeneity opreinforcing belreinforcing opecho belecho
count 1400.000000 1400.000000 1400.000000 1400.000000 1400.000000 1400.000000 1400.000000 1400.000000 1400.000000
mean 8.527143 4.359286 3.470000 8.136429 8.154286 8.527143 8.527143 3.133571 3.133571
std 5.545766 3.535208 2.600481 5.224957 5.257261 5.545766 5.545766 2.443650 2.443650
min 1.000000 0.000000 1.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000
25% 4.000000 2.000000 1.000000 4.000000 4.000000 4.000000 4.000000 1.000000 1.000000
50% 7.000000 3.500000 3.000000 7.000000 7.000000 7.000000 7.000000 2.000000 2.000000
75% 12.000000 6.000000 5.000000 12.000000 12.000000 12.000000 12.000000 4.000000 4.000000
max 34.000000 29.000000 13.000000 32.000000 32.000000 34.000000 34.000000 12.000000 12.000000
Out[37]:
agents_component agents_singleton agents_segregation agents_ophomogeneity agents_belhomogeneity agents_opreinforcing agents_belreinforcing agents_opecho agents_belecho
count 1400.0 1400.000000 1400.000000 1400.000000 1400.000000 1400.0 1400.0 1400.000000 1400.000000
mean 100.0 4.359286 93.935000 85.243571 84.719286 100.0 100.0 78.907857 78.907857
std 0.0 3.535208 5.706491 26.130890 26.258961 0.0 0.0 28.147258 28.147258
min 100.0 0.000000 59.000000 0.000000 0.000000 100.0 100.0 0.000000 0.000000
25% 100.0 2.000000 92.000000 74.000000 71.000000 100.0 100.0 61.000000 61.000000
50% 100.0 3.500000 96.000000 100.000000 100.000000 100.0 100.0 95.000000 95.000000
75% 100.0 6.000000 98.000000 100.000000 100.000000 100.0 100.0 98.000000 98.000000
max 100.0 29.000000 100.000000 100.000000 100.000000 100.0 100.0 100.000000 100.000000

Pairwise comparison between Eq. (both) and Eq. (coherence)

Average agents in echo chamber?

Out[38]:
bel_reduced bel_same bel_reinforced
op_reduced 784 0 0
op_same 0 168 0
op_reinforced 0 0 370

Agents in echo chambers?

Out[39]:
bel_reduced bel_same bel_reinforced
op_reduced 586 0 0
op_same 0 221 0
op_reinforced 0 0 593

$eo$ and $eb$

The following two tables shows the number of experiments grouped by how $eo$ and $eb$ changed between the two experiments and the ratio to all of the experiments (1400).

Out[42]:
bel_reduced bel_same bel_reinforced
op_reduced 235 0 0
op_same 0 589 0
op_reinforced 0 0 576
Out[43]:
bel_reduced bel_same bel_reinforced
op_reduced 16.785714 0.000000 0.000000
op_same 0.000000 42.071429 0.000000
op_reinforced 0.000000 0.000000 41.142857

Following table is the list of experiments such that both of opinion and belief echo chambers have been reinforced.

Out[44]:
eps delta seed component_coherence agents_component_coherence singleton_coherence agents_singleton_coherence segregation_coherence agents_segregation_coherence ophomogeneity_coherence ... agents_belhomogeneity_both agents_belhomogeneity.1 opreinforcing_both agents_opreinforcing_both belreinforcing_both agents_belreinforcing_both opecho_both agents_opecho_both belecho_both agents_belecho_both
20 0.05 2.0 544371.0 12.0 100.0 2.0 2.0 9.0 96.0 11.0 ... 12.0 78.0 13.0 100.0 13.0 100.0 7.0 73.0 7.0 73.0
23 0.05 2.0 779659.0 17.0 100.0 2.0 2.0 10.0 84.0 14.0 ... 11.0 65.0 12.0 100.0 12.0 100.0 5.0 59.0 5.0 59.0
24 0.05 2.0 556198.0 9.0 100.0 1.0 1.0 8.0 99.0 8.0 ... 12.0 60.0 13.0 100.0 13.0 100.0 3.0 50.0 3.0 50.0
25 0.05 2.0 160590.0 11.0 100.0 6.0 6.0 5.0 94.0 10.0 ... 8.0 52.0 11.0 100.0 11.0 100.0 3.0 46.0 3.0 46.0
27 0.05 2.0 94821.0 22.0 100.0 9.0 9.0 9.0 81.0 21.0 ... 19.0 86.0 20.0 100.0 20.0 100.0 6.0 71.0 6.0 71.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1315 0.50 3.0 720126.0 9.0 100.0 5.0 5.0 2.0 91.0 9.0 ... 10.0 96.0 11.0 100.0 11.0 100.0 1.0 85.0 1.0 85.0
1317 0.50 3.0 756485.0 9.0 100.0 6.0 6.0 3.0 94.0 9.0 ... 6.0 100.0 6.0 100.0 6.0 100.0 2.0 92.0 2.0 92.0
1319 0.50 3.0 909432.0 8.0 100.0 5.0 5.0 3.0 95.0 8.0 ... 7.0 100.0 7.0 100.0 7.0 100.0 2.0 94.0 2.0 94.0
1391 0.50 7.0 490361.0 4.0 100.0 3.0 3.0 1.0 97.0 4.0 ... 2.0 2.0 3.0 100.0 3.0 100.0 0.0 0.0 0.0 0.0
1394 0.50 7.0 204557.0 3.0 100.0 2.0 2.0 1.0 98.0 3.0 ... 2.0 2.0 3.0 100.0 3.0 100.0 0.0 0.0 0.0 0.0

576 rows × 39 columns

Especially, the list of experiments with $\varepsilon=0.2$ and $\delta=2$ is:

Out[45]:
eps delta seed component_coherence agents_component_coherence singleton_coherence agents_singleton_coherence segregation_coherence agents_segregation_coherence ophomogeneity_coherence ... agents_belhomogeneity_both agents_belhomogeneity.1 opreinforcing_both agents_opreinforcing_both belreinforcing_both agents_belreinforcing_both opecho_both agents_opecho_both belecho_both agents_belecho_both
441 0.2 2.0 315590.0 21.0 100.0 13.0 13.0 5.0 78.0 21.0 ... 10.0 100.0 10.0 100.0 10.0 100.0 4.0 92.0 4.0 92.0
442 0.2 2.0 903997.0 16.0 100.0 7.0 7.0 6.0 85.0 13.0 ... 16.0 27.0 17.0 100.0 17.0 100.0 3.0 13.0 3.0 13.0
443 0.2 2.0 779659.0 14.0 100.0 6.0 6.0 6.0 90.0 13.0 ... 11.0 32.0 12.0 100.0 12.0 100.0 5.0 26.0 5.0 26.0
448 0.2 2.0 501765.0 17.0 100.0 9.0 9.0 6.0 87.0 17.0 ... 11.0 22.0 13.0 100.0 13.0 100.0 2.0 13.0 2.0 13.0
451 0.2 2.0 490361.0 13.0 100.0 7.0 7.0 5.0 90.0 13.0 ... 20.0 100.0 20.0 100.0 20.0 100.0 4.0 73.0 4.0 73.0
453 0.2 2.0 808653.0 13.0 100.0 7.0 7.0 6.0 93.0 13.0 ... 14.0 100.0 14.0 100.0 14.0 100.0 3.0 88.0 3.0 88.0
457 0.2 2.0 756485.0 15.0 100.0 5.0 5.0 6.0 85.0 15.0 ... 23.0 100.0 23.0 100.0 23.0 100.0 4.0 74.0 4.0 74.0
459 0.2 2.0 909432.0 17.0 100.0 9.0 9.0 4.0 82.0 17.0 ... 11.0 24.0 12.0 100.0 12.0 100.0 2.0 13.0 2.0 13.0

8 rows × 39 columns

No description has been provided for this image
No description has been provided for this image

The initial network is:

No description has been provided for this image

On the contrary, the list of experiments such that $\varepsilon=0.2$, $\delta=2$, and $eo$ and $eb$ are reduced is:

Out[49]:
eps delta seed component_coherence agents_component_coherence singleton_coherence agents_singleton_coherence segregation_coherence agents_segregation_coherence ophomogeneity_coherence ... agents_belhomogeneity_both agents_belhomogeneity.1 opreinforcing_both agents_opreinforcing_both belreinforcing_both agents_belreinforcing_both opecho_both agents_opecho_both belecho_both agents_belecho_both
440 0.2 2.0 544371.0 14.0 100.0 7.0 7.0 4.0 87.0 14.0 ... 14.0 100.0 14.0 100.0 14.0 100.0 4.0 88.0 4.0 88.0
445 0.2 2.0 160590.0 12.0 100.0 5.0 5.0 3.0 87.0 12.0 ... 11.0 100.0 11.0 100.0 11.0 100.0 3.0 91.0 3.0 91.0
446 0.2 2.0 103848.0 17.0 100.0 10.0 10.0 5.0 85.0 15.0 ... 14.0 100.0 14.0 100.0 14.0 100.0 6.0 89.0 6.0 89.0
449 0.2 2.0 722393.0 14.0 100.0 5.0 5.0 4.0 84.0 13.0 ... 10.0 100.0 10.0 100.0 10.0 100.0 6.0 96.0 6.0 96.0
452 0.2 2.0 170743.0 17.0 100.0 11.0 11.0 5.0 86.0 16.0 ... 18.0 100.0 18.0 100.0 18.0 100.0 6.0 85.0 6.0 85.0
454 0.2 2.0 204557.0 14.0 100.0 7.0 7.0 3.0 85.0 13.0 ... 15.0 37.0 18.0 100.0 18.0 100.0 5.0 27.0 5.0 27.0
455 0.2 2.0 720126.0 13.0 100.0 8.0 8.0 3.0 88.0 11.0 ... 13.0 100.0 13.0 100.0 13.0 100.0 4.0 89.0 4.0 89.0
458 0.2 2.0 970547.0 16.0 100.0 10.0 10.0 4.0 86.0 14.0 ... 14.0 100.0 14.0 100.0 14.0 100.0 4.0 85.0 4.0 85.0

8 rows × 39 columns

No description has been provided for this image

Since initial conditions and how network/beliefs evolve is randomized, we compare the mean of $eo$ and $eb$.

Out[51]:
opecho belecho
eps delta
0.05 1.0 -0.20 -0.20
2.0 1.15 1.15
3.0 3.20 3.20
4.0 3.05 3.05
5.0 2.10 2.10
... ... ... ...
0.50 3.0 0.10 0.10
4.0 -0.50 -0.50
5.0 0.00 0.00
6.0 -0.05 -0.05
7.0 0.10 0.10

70 rows × 2 columns

The following table is the list of configurations of $\varepsilon$ and $\delta$ such that $eo$ decreases xor $eb$ decreases:

Out[52]:
opecho belecho
eps delta

The direction is the same.

When opinions and beliefs stabilize

Out[55]:
bel_faster bel_no change bel_slower
op_faster 425 21 411
op_no change 0 0 1
op_slower 162 3 377
Out[56]:
bel_faster bel_no change bel_slower
op_faster 30.357143 1.500000 29.357143
op_no change 0.000000 0.000000 0.071429
op_slower 11.571429 0.214286 26.928571
/tmp/ipykernel_88729/864999310.py:1: MatplotlibDeprecationWarning: The 'labels' parameter of boxplot() has been renamed 'tick_labels' since Matplotlib 3.9; support for the old name will be dropped in 3.11.
  plt.boxplot(
Out[57]:
{'whiskers': [<matplotlib.lines.Line2D at 0x7b707db645c0>,
  <matplotlib.lines.Line2D at 0x7b707db66570>,
  <matplotlib.lines.Line2D at 0x7b707db67a70>,
  <matplotlib.lines.Line2D at 0x7b707db67e30>,
  <matplotlib.lines.Line2D at 0x7b707dc84ad0>,
  <matplotlib.lines.Line2D at 0x7b707dc85040>,
  <matplotlib.lines.Line2D at 0x7b707dc861b0>,
  <matplotlib.lines.Line2D at 0x7b707dc86390>],
 'caps': [<matplotlib.lines.Line2D at 0x7b707db667e0>,
  <matplotlib.lines.Line2D at 0x7b707db66a20>,
  <matplotlib.lines.Line2D at 0x7b707db669c0>,
  <matplotlib.lines.Line2D at 0x7b707db67560>,
  <matplotlib.lines.Line2D at 0x7b707dc853a0>,
  <matplotlib.lines.Line2D at 0x7b707dc85400>,
  <matplotlib.lines.Line2D at 0x7b707dc86960>,
  <matplotlib.lines.Line2D at 0x7b707dc86f90>],
 'boxes': [<matplotlib.lines.Line2D at 0x7b707db64530>,
  <matplotlib.lines.Line2D at 0x7b707db67860>,
  <matplotlib.lines.Line2D at 0x7b707dc848f0>,
  <matplotlib.lines.Line2D at 0x7b707dc86030>],
 'medians': [<matplotlib.lines.Line2D at 0x7b707db670e0>,
  <matplotlib.lines.Line2D at 0x7b707dc840e0>,
  <matplotlib.lines.Line2D at 0x7b707dc856a0>,
  <matplotlib.lines.Line2D at 0x7b707dc86ed0>],
 'fliers': [<matplotlib.lines.Line2D at 0x7b707db67290>,
  <matplotlib.lines.Line2D at 0x7b707dc84620>,
  <matplotlib.lines.Line2D at 0x7b707dc85bb0>,
  <matplotlib.lines.Line2D at 0x7b707dc87290>],
 'means': []}
No description has been provided for this image

Evolution of the network in plot

We see the evolution of the network using some plots:

The plots below are taken from the experiment 0.2-2-722393.

$t=0$
No description has been provided for this image
$t=11$
No description has been provided for this image
$t=22$
No description has been provided for this image
$t=33$
No description has been provided for this image
$t=44$
No description has been provided for this image
$t=55$
No description has been provided for this image
$t=66$
No description has been provided for this image
$t=77$
No description has been provided for this image
$t=88$
No description has been provided for this image
$t=99$
No description has been provided for this image

Comparisons by plot

Effect of $\varepsilon$ on $eo$

No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

Effect of $\delta$ on $eb$

No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

Statistical tests

We use 0.01 as the significance threshold.

First, we test the whole of the data:

Out[72]:
ShapiroResult(statistic=np.float64(0.8520416237256954), pvalue=np.float64(2.7283808520452235e-34))
Out[74]:
ShapiroResult(statistic=np.float64(0.8373935865687203), pvalue=np.float64(1.461569510905002e-35))

Both has the normality. Thus we perform the paired $t$-test:

Out[75]:
TtestResult(statistic=np.float64(13.487619162553145), pvalue=np.float64(4.5596835533082914e-39), df=np.int64(1399))

Thus we can see that the two serieses of data are different statistically.

Next, we test the pairwise test. We perform:

  • paired $t$-test if two series of data have a normality;
  • Wilcoxon signed-rank test otherwise.
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_wilcoxon.py:181: RuntimeWarning: invalid value encountered in scalar divide
  z = (r_plus - mn) / se
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_wilcoxon.py:181: RuntimeWarning: invalid value encountered in scalar divide
  z = (r_plus - mn) / se
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_wilcoxon.py:181: RuntimeWarning: invalid value encountered in scalar divide
  z = (r_plus - mn) / se
/home/kataoka/research/sakere/aamas2026/20250413-BROD/.venv/lib/python3.12/site-packages/scipy/stats/_axis_nan_policy.py:592: UserWarning: scipy.stats.shapiro: Input data has range zero. The results may not be accurate.
  res = hypotest_fun_out(*samples, **kwds)
Out[76]:
  0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
1 0.102470 0.751286 0.563364 0.565695 0.795966 0.667303 0.044621 0.589087 0.566758 0.205343
2 0.033176 0.001108 0.031424 0.979049 0.680201 0.462860 0.594349 0.974582 0.323784 0.162685
3 0.000113 0.001523 0.008749 0.103340 0.082931 0.563703 0.388544 0.236236 0.261719 0.605826
4 0.000068 0.027520 0.001683 0.001594 0.004309 0.626748 0.577032 0.577032 0.162550 0.014089
5 0.000284 0.000365 0.000041 0.000000 0.029815 1.000000 0.317311 0.317311 nan nan
6 0.000000 0.000476 0.000000 0.000006 0.028369 0.317311 0.317311 1.000000 0.317311 0.329877
7 0.000171 0.000006 0.000027 0.000000 0.000338 0.563703 0.157299 nan 0.317311 0.157299

We could not see clear difference in general.

Conclusion

The hypothesis is supported on average.

This file can be retrieved from URL https://sake.re/20250413-BROD