Archive for the ‘Uncategorized’ Category

Ocean drifters



The map shows tracks of drifting buoys deployed in the southern ocean between 2005 and 2016. The underlying dataset consists of 15-minute gps data collected from 4608 buoys, available from NOAA Colour indicates speed of drift.

This is simply a visualisation of the raw drifter data with no further analysis or modelling. Nevertheless all of the well-known features of the surface circulation in the southern ocean emerge; Antarctic Circumpolar Drift, western boundary currents along the western coasts of South America (Brazil Current) and Africa (Agulhas),  powerful Agulhas Return Current in the Southern Indian Ocean, South Atlantic gyre (centred NorthEast of the Falkland Islands) etc.

R code

A dataframe buoydata was created using fread(),

transformed to a stereographic coordinates using spTransform()

and plot using geom_path()

Note the use of transparency (alpha). This can be varied to highlight different aspects of the flow.


Simulating abrupt political change

A person’s political opinion is influenced by opinions of those in their network of associates. Networks overlap, and therefore a person’s politics is also influenced indirectly by opinions of those far beyond their immediate network. It is known from statistical physics that collective effects and phase transitions are commonplace in systems with large numbers of discrete interacting elements. For this reason, it is possible that abrupt changes in political opinion might arise in response to small external changes.

q-state Potts models are a simple type of interacting spin (discrete state) model. Each site i on a graph or lattice has state s_i in 0,1 \cdots ,q-1. The site ‘energy’ is determined by the number of neighbours j which agree with s_i. The total energy of a configuration \{ s_i \} is,

(1)   \begin{equation*}H=-\beta \sum_{\langle i,j \rangle } \delta_{s_i s_j}\end{equation*}

where \delta_{s_i s_j} =1 if s_i=s_j and 0 otherwise. The sum is over “neighbours” \langle i j \rangle. According to the simple rules of statistical physics, the probability of a particular configuration \{ s_i \} follows Boltzmann’s law,

(2)   \begin{equation*}P\big(\{ s_i \}\big) \propto e^{-H(\{ s_i \}) } \end{equation*}

Instead of spins, the states can be re-interpreted as representing q flavours of political opinion. The coupling \beta determines how strongly associates influence each others’ opinions. If \beta is close to zero, then opinions are independent and randomly distributed. When \beta >> 1 groupthink dominates. In a population of economists or social misfits who like to disagree with one another, \beta <0. However \beta \sim 1 is probably the most relevant and certainly most interesting case.

Much is known about Potts models and equations (1) & (2) are easy to simulate using Gibbs sampling (results below were obtained in C++ linked to R using Rcpp). For simplicity, I took the case of a square lattice with nearest-neighbour coupling. This means that each opinion-holder has four associates, and each person’s network overlaps with four other networks. Results for the average agreement (i.e. the average number of associates with whom each person agrees, a number between 0 and 4) on 50\times50 and 100\times100 lattices are shown below. The coupling \beta was slowly increased from -2 to +2 with up to 60,000 thermalisation sweeps at each step. At \beta = 1.342\ldots there is a sharp jump in the level of agreement (from about 2 to 3).


The transition can also be seen in opinion percentages. Below, opinion favourable to the blue candidate jumps from 12.5% to over 50% at the transition. All other candidates follow the pink line.


There is no model bias favouring the blue candidate. Their selection is a case of “spontaneous symmetry breaking”. The jump is already very sharp at N=10000 and becomes a true mathematical discontinuity when N\to\infty.

In this model an opinion poll carried out at \beta =1.33 has nothing to say about which candidate would emerge if \beta increased to 1.36 by election day. Is this one reason why opinion polls often turn out mysteriously wrong?