Some quick commentary on Threshold Models of Collective Behavior (Granovetter 1978). The plots are implemented in d3. The interactive part is at the bottom of the page.

Granovetter describes collective behavior in which individuals each have a personal threshold. The threshold is the number of other people the individual needs to see partaking in the behavior before they will join in. This can cause cascading effects where huge numbers of people, even those who with very high thresholds, rapidly join in collective behaviors such as riots that they normally would not participate in.

The plot Granovetter uses to describe this is a cobweb plot, which is often unfamiliar to people. It plots an iterative function.

I don't know exactly what curve he uses in fig. 1, which illustrates the interpretation of the cobweb plot, but here's y = 3(x − 0.5)3 + 0.6 which is pretty close.


What the text describes in this section is not that curve but the CDF of the normal distribution, shown in the larger figure below. The normal distribution itself is plotted in the smaller figure. Since the plot is meant to relate the shape of the function to its behavior as a dynamical system, the line plotting F(x) = x is handy here, since that is the function where the value does not change. The value of x decreases when the curve is below this line and increases when it is above it. The cobweb shows the iteration. The value is computed, vertical arrow, and then we draw a horizontal arrow over to F(x) = x, then the process is repeated starting from the new system state.

x0 is the initial number of participants, say the instigators of the riot. Changing this won't do anything unless the cobweb is on.
σ is the standard deviation of the normal distribution.

Setting x0 to 0% and adjusting σ up, there is a sharp transition in behavior around σ = 0.12. Slight differences in the distribution of thresholds lead to the event dying out or blowing up.