5D Library › Social Network Topology, Structural Holes and Complex Contagion · 中文

Chapter 6 Information Cascades and How to Break Them

Why rational people go wrong together

Two restaurants stand side by side; one is full, the other empty. You know nothing about either, except that a friend once said the empty one is good. You will probably still walk into the full one: so many people chose it that they may know something. The trouble is that they may all have reasoned in exactly the same way.

In 1992 Bikhchandani, Hirshleifer and Welch explained this phenomenon with a simple model (Bikhchandani, Hirshleifer, and Welch 1992); in the same year Banerjee independently proposed a similar model of “herd behaviour” (Banerjee 1992). Suppose something can be either good or bad, and each person privately receives a signal that is correct with probability p>1/2p > 1/2; people choose one after another, each seeing all earlier choices but not the earlier signals. Each person makes the choice that is best for him or her by Bayes’ rule.

The key point is this: once one side leads by two among the earlier choices, everyone who comes later follows the majority whatever his or her own signal says, because two pieces of public evidence outweigh one private signal. From that moment no one’s choice reveals his or her signal any longer, and people who come later learn nothing new from the choices before them. This is an information cascade. It can form very early, and it can be wrong: if the first two people happen to receive wrong signals, everyone after them will follow them into the error.

Volume 6 of 5D Library, The Economics of Attention, has already implemented the basic form of the model. This chapter computes the exact probabilities of a cascade and of a wrong cascade, and compares several ways of breaking a wrong cascade.

Calculation

An exact calculation by state transitions. Before a cascade forms every choice reveals a signal, so the state is the “lead” dd of the public signals; a cascade forms when |d|=2|d| = 2. A person whose own signal exactly cancels the lead is indifferent: under the “coin” rule, as in Bikhchandani and colleagues’ paper, he or she tosses a coin; under the “own” rule he or she follows his or her own signal (the counting rule in Anderson and Holt’s experiment). Finally 200,000 simulations check the exact calculation.

# Information cascades in the Bikhchandani-Hirshleifer-Welch (1992) model.
# The true state is "good" (assumed here; the other case is symmetric). Each
# person privately gets a signal that is right with probability p, sees all
# earlier choices, and chooses by Bayes' rule. Before a cascade every choice
# reveals a signal, so the state is the lead d = (good signals) - (bad signals)
# shown so far. Once |d| = 2 everyone imitates: an up (correct) or down (wrong)
# cascade. A person whose own signal exactly cancels the lead is indifferent:
#   "coin": flips a coin, as in BHW;   "own": follows the own signal.
import random

def cascade_probs(p, n, rule):
    st = {-1: 0.0, 0: 1.0, 1: 0.0, "up": 0.0, "down": 0.0}
    for _ in range(n):
        new = {-1: 0.0, 0: 0.0, 1: 0.0, "up": st["up"], "down": st["down"]}
        new[1] += st[0] * p; new[-1] += st[0] * (1 - p)
        h = 0.5 if rule == "coin" else 0.0    # chance an indifferent person herds
        new["up"] += st[1] * (p + (1 - p) * h); new[0] += st[1] * (1 - p) * (1 - h)
        new["down"] += st[-1] * ((1 - p) + p * h); new[0] += st[-1] * p * (1 - h)
        st = new
    return st["up"], st["down"]

def limit_wrong(p, rule):
    if rule == "coin":
        return 1 - p * (1 + p) / (2 * (1 - p + p * p))
    return (1 - p) ** 2 / (p * p + (1 - p) ** 2)

for rule in ("coin", "own"):
    print(f"rule '{rule}': P(cascade started) / P(wrong cascade) after n people")
    print("   p     n = 2        n = 4        n = 10       n = 20    limit (wrong)")
    for p in (0.6, 0.7, 0.8):
        cells = []
        for n in (2, 4, 10, 20):
            up, down = cascade_probs(p, n, rule)
            cells.append(f"{up + down:.2f}/{down:.3f}")
        lim = limit_wrong(p, rule)
        print(f"  {p:.1f}   " + "   ".join(cells) + f"    {lim:.3f}")

rng = random.Random(12)
def simulate(p, n, rule):        # check by brute force with explicit counting
    d = 0
    for _ in range(n):
        good = rng.random() < p
        if d >= 2 or d <= -2:
            continue
        s = 1 if good else -1
        if d + s == 0 and d != 0:
            herd = rule == "coin" and rng.random() < 0.5
            d = d + (2 * d if herd else s)    # herd: |d| becomes 2 (cascade)
        else:
            d += s
    return d <= -2
sims = 200000
wrong = sum(simulate(0.7, 20, "coin") for _ in range(sims)) / sims
print(f"Monte Carlo check (p = 0.7, n = 20, coin): wrong cascade {wrong:.3f},"
      f" exact {cascade_probs(0.7, 20, 'coin')[1]:.3f}")
# rule 'coin': P(cascade started) / P(wrong cascade) after n people
#    p     n = 2        n = 4        n = 10       n = 20    limit (wrong)
#   0.6   0.76/0.280   0.94/0.347   1.00/0.368   1.00/0.368    0.368
#   0.7   0.79/0.195   0.96/0.236   1.00/0.247   1.00/0.247    0.247
#   0.8   0.84/0.120   0.97/0.139   1.00/0.143   1.00/0.143    0.143
# rule 'own': P(cascade started) / P(wrong cascade) after n people
#    p     n = 2        n = 4        n = 10       n = 20    limit (wrong)
#   0.6   0.52/0.160   0.77/0.237   0.97/0.300   1.00/0.307    0.308
#   0.7   0.58/0.090   0.82/0.128   0.99/0.153   1.00/0.155    0.155
#   0.8   0.68/0.040   0.90/0.053   1.00/0.059   1.00/0.059    0.059
# Monte Carlo check (p = 0.7, n = 20, coin): wrong cascade 0.246, exact 0.247

Take p=0.7p = 0.7 and the coin rule: once just two people have chosen, the probability that a cascade has already formed is 0.79, and the probability of a wrong cascade 0.195; by the tenth person a cascade has almost certainly formed, the probability of a wrong cascade is 0.247, and it changes no further. Even though everyone’s private information is right seven times out of ten, the group as a whole has about a one-in-four chance of going wrong together, and once it has gone wrong it does not correct itself. The rule of following one’s own signal produces fewer wrong cascades (0.155), because indifferent people still reveal their signals and cascades form more slowly. The more accurate the signals, the fewer the wrong cascades, but even with p=0.8p = 0.8 the coin rule gives 14 % wrong cascades. The simulation (0.246) agrees with the exact calculation (0.247).

The model also reveals another property of cascades: they are fragile. People in a cascade follow not because they are sure but because two pieces of public evidence only just outweigh one private signal; a little new public information, such as an independent report, may be enough to break the cascade or even reverse it (Bikhchandani, Hirshleifer, and Welch 1992).

Experimental evidence

Evidence

The urn experiment. Anderson and Holt reproduced the model in the laboratory: of two urns, one held two balls marked a and one marked b, the other one a and two b, and one of them was chosen at random; six participants in turn privately drew one ball from it (so each signal was correct with probability 2/3) and then announced publicly which urn they thought it was, earning money for a correct guess. In the 56 cases in which earlier announcements produced an imbalance sufficient for a cascade, a cascade formed 41 times (Anderson and Holt 1997).

Evidence

Cascades correct themselves. Goeree and colleagues repeated such experiments with longer sequences and varying signal accuracy. They found that cascades often form, break and form again; and when a cascade reverses, it mostly moves from the wrong direction to the right one. They explained these results with a “quantal response equilibrium” model in which people occasionally make mistakes (Goeree et al. 2007).

The two studies give a gentler picture than pure theory: cascades do form, but real people do not always follow strictly, and some go “against the current” on the strength of their own signals; these deviations provide new information to those who come later, giving the group a chance to correct its mistakes.

Evidence

Social influence and unpredictability. Salganik, Dodds and Watts set up an online “music market” in which more than fourteen thousand participants could listen to and download 48 songs by unknown bands. In the “independent” condition participants could not see how often others had downloaded each song; in the “social influence” condition participants were randomly assigned to one of eight separate “worlds” and could see the download counts in their own world. Social influence made success both more unequal and more unpredictable: the same song could rank very differently in different worlds (Salganik, Dodds, and Watts 2006).

Evidence

The wisdom of crowds and social influence. Lorenz and colleagues asked participants estimation questions with objective answers and, between rounds, told them what others had estimated. Knowing others’ estimates quickly narrowed the range of the group’s estimates without making the group mean more accurate, while participants’ confidence rose (Lorenz et al. 2011). An experiment by Becker, Brackbill and Centola adds a complement: in decentralised networks without a central figure, mutual influence improved the accuracy of group estimates; in centralised networks, where one person sits at the centre and influences everyone, the group’s accuracy depended on that central person’s initial estimate (Becker, Brackbill, and Centola 2017).

How to break a wrong cascade

The root of a cascade is lost information: the choices of earlier people are seen, their reasons are not. This suggests several remedies.

Calculation

Three procedures compared. A group of nn people each hold an independent private signal that is correct with probability 0.7. A: people speak in turn, each choosing after hearing all the earlier choices, and the group adopts the majority choice; B: everyone first writes down a choice privately, the votes are sealed and then counted; C: people speak in turn, but each states his or her signal (the reason), so the last speaker has all nn signals. Then a second situation: a wrong cascade has formed, and kk new independent signals are made public (say, kk blind reviews written without knowledge of one another). What is the probability that the group ends up in the correct cascade?

# How to stop a wrong cascade: three procedures for a group of n people who
# each hold an independent private signal that is right with probability p
# (same model as p11, indifferent people follow their own signal).
#   A  speak in turn, each choosing after hearing all earlier CHOICES;
#      the group adopts the majority of the choices
#   B  write a private vote first, count the sealed votes (majority)
#   C  speak in turn but each person states his or her SIGNAL (the reason),
#      so nothing is lost; the last speaker then knows all n signals
# Then: a wrong cascade is under way; k fresh independent signals (say, blind
# reviews) are made public. How often does the group end up right?
import math, random
P = 0.7
rng = random.Random(13)

def run_sequential(n, p):
    d, choices = 0, []
    for _ in range(n):
        s = 1 if rng.random() < p else -1
        if d >= 2: c = 1
        elif d <= -2: c = -1
        else:
            c = 1 if d + s > 0 else -1 if d + s < 0 else s
            d += c                                   # choice reveals the signal
        choices.append(c)
    return sum(choices) > 0

def majority_exact(n, p):
    return sum(math.comb(n, k) * p ** k * (1 - p) ** (n - k)
               for k in range(n // 2 + 1, n + 1))

SIMS = 100000
print(f"signal accuracy p = {P}; share of groups that reach the right answer")
print("   n    A: choices in turn   B: sealed votes   C: reasons in turn")
for n in (5, 9, 15):
    a = sum(run_sequential(n, P) for _ in range(SIMS)) / SIMS
    b = majority_exact(n, P)
    print(f"  {n:2d}         {a:.3f}              {b:.3f}            {b:.3f}")

def eventual_up(lead, p, people=60):
    st = {lead: 1.0}
    for _ in range(people):
        new = {}
        for d, pr in st.items():
            if abs(d) >= 2:
                new[d] = new.get(d, 0) + pr; continue
            for s, ps in ((1, p), (-1, 1 - p)):
                nd = d + (1 if d + s > 0 else -1 if d + s < 0 else s)
                new[nd] = new.get(nd, 0) + pr * ps
        st = new
    return sum(pr for d, pr in st.items() if d >= 2)

print("a wrong cascade is under way (lead -2); k fresh signals are made public:")
for k in (1, 2, 3, 5, 9):
    tot = 0.0
    for g in range(k + 1):
        w = math.comb(k, g) * P ** g * (1 - P) ** (k - g)
        lead = -2 + g - (k - g)
        if lead >= 2: up = 1.0
        elif lead <= -2: up = 0.0
        else: up = eventual_up(lead, P)
        tot += w * up
    print(f"   k = {k}: chance the group ends in the correct cascade {tot:.3f}")
# signal accuracy p = 0.7; share of groups that reach the right answer
#    n    A: choices in turn   B: sealed votes   C: reasons in turn
#    5         0.821              0.837            0.837
#    9         0.843              0.901            0.901
#   15         0.843              0.950            0.950
# a wrong cascade is under way (lead -2); k fresh signals are made public:
#    k = 1: chance the group ends in the correct cascade 0.414
#    k = 2: chance the group ends in the correct cascade 0.414
#    k = 3: chance the group ends in the correct cascade 0.588
#    k = 5: chance the group ends in the correct cascade 0.694
#    k = 9: chance the group ends in the correct cascade 0.819
Left: probability of a wrong cascade as a function of how many people have chosen (own-signal rule), for signal accuracies p of 0.6, 0.7 and 0.8. Wrong cascades lock in within the first few people. Right: probability that the group is right, as a function of group size, with signal accuracy 0.7. With sealed votes, larger groups are more accurate; with choices announced in turn, accuracy stalls at about 0.84 and enlarging the group does not help.

When people announce their choices in turn, the probability that the group is right stalls at about 0.84: 0.821 with 5 people and 0.843 with both 9 and 15, so enlarging the group hardly helps, since once a cascade has formed later people merely repeat earlier ones. With sealed votes, larger groups are more accurate: 0.837 with 5, 0.901 with 9 and 0.950 with 15, which is exactly the condition that Condorcet’s jury theorem requires: independent judgments. Stating reasons rather than just conclusions (C) keeps all the information, and the judgment of the last speaker is as accurate as the majority of the sealed votes.

If a wrong cascade has already formed, making one new independent signal public raises the chance of ending up right only to 0.414, because one signal cancels only one of the two votes of the lead; three signals give 0.588, five 0.694 and nine 0.819. Breaking a wrong cascade once it has formed takes more independent information than it took to form it. Independence before the fact is much cheaper than correction after it.

Note

The limits of the model. The people in the model are identical and rational, with signals of the same accuracy; in real groups some people are more experienced, some more eager to perform, and those who speak first are often the most senior or the most confident. These differences may make cascades easier to form (people are more willing to follow seniors) or easier to break (someone sticks to his or her own view). The trial in Chapter 8 is designed to test, in real teams, whether the procedure of “first writing judgments down independently, then making them public” really reduces a group’s anchoring on its first speakers.

Hypothesis · not established

Reasons cascade less easily than conclusions (not yet established). In groups that announce their judgments in turn, if everyone must state at least one concrete piece of supporting evidence along with the conclusion, the share of later speakers who follow the majority will fall and the group’s accuracy will rise. Testable prediction: in judgment tasks with objective answers, groups in the “conclusion plus evidence” condition are more accurate than groups in the “conclusion only” condition, and the difference is largest among later speakers. If the two conditions are equally accurate, or if stating reasons merely makes later speakers follow with more confidence, the hypothesis is weakened.

Chapter summary

Information cascades come from lost information: people see the choices of those before them but not their reasons; once one side leads by two, later people ignore their own signals and follow, and a cascade can lock in the wrong direction within the first few people. Exact calculation shows that even when each person’s signal is right seven times out of ten, the group has about a one-in-four (coin rule) or one-in-seven (own-signal rule) chance of going wrong together. Experiments show that cascades do form, but real people deviate and cascades also correct themselves; social influence makes outcomes more unequal and harder to predict, and can narrow the diversity of opinion without improving accuracy. Sealed votes and stated reasons preserve independent information; a wrong cascade that has already formed takes several new independent signals to break.

References

Anderson, Lisa R., and Charles A. Holt. 1997. “Information Cascades in the Laboratory.” American Economic Review 87 (5): 847–62.
Banerjee, Abhijit V. 1992. “A Simple Model of Herd Behavior.” Quarterly Journal of Economics 107 (3): 797–817. https://doi.org/10.2307/2118364.
Becker, Joshua, Devon Brackbill, and Damon Centola. 2017. “Network Dynamics of Social Influence in the Wisdom of Crowds.” Proceedings of the National Academy of Sciences 114 (26): E5070–76. https://doi.org/10.1073/pnas.1615978114.
Bikhchandani, Sushil, David Hirshleifer, and Ivo Welch. 1992. “A Theory of Fads, Fashion, Custom, and Cultural Change as Informational Cascades.” Journal of Political Economy 100 (5): 992–1026. https://doi.org/10.1086/261849.
Goeree, Jacob K., Thomas R. Palfrey, Brian W. Rogers, and Richard D. McKelvey. 2007. “Self-Correcting Information Cascades.” Review of Economic Studies 74 (3): 733–62.
Lorenz, Jan, Heiko Rauhut, Frank Schweitzer, and Dirk Helbing. 2011. “How Social Influence Can Undermine the Wisdom of Crowd Effect.” Proceedings of the National Academy of Sciences 108 (22): 9020–25. https://doi.org/10.1073/pnas.1008636108.
Salganik, Matthew J., Peter Sheridan Dodds, and Duncan J. Watts. 2006. “Experimental Study of Inequality and Unpredictability in an Artificial Cultural Market.” Science 311 (5762): 854–56. https://doi.org/10.1126/science.1121066.

Fan, Y. (2026). Social Network Topology, Structural Holes and Complex Contagion: From the Strength of Weak Ties and Preferential Attachment to Information Cascades, Read Beside Classical Chinese Diplomacy [社会网络拓扑、结构洞与复杂传染的数学模型] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23764990 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).