Here’s the R code you need for the simulation I discuss in the essay ‘Why inequality is bad’

# You need a library called ‘ineq’ that calculates the Gini index for you

install.packages(“ineq”)

library(ineq)

# Let there be k countries from each of which we sample n inhabitants

# Within each let income be drawn from N(10000, sigma) where sigma varies from country to country

# Let the health outcome be related to income by h=sqrt(x) + E, where E~N(0, 10)

# The following function willproduce a scatterplot of the type you see in The Spirit Level

wilkinson=function(){

k=30

n=100

inequality=seq(500, 5000, length.out=k)

mean.health=NULL

ginis=NULL

for (country in 1: k){

incomes=rnorm(n, mean=10000, sd=inequality[country])

incomes[incomes<=0]=1

health=sqrt(incomes) + rnorm(n, 4)

ginis[country]=ineq(incomes, type=”Gini”)

mean.health[country]=mean(health)

}

mean.health=10+(mean.health-mean(mean.health))/sd(mean.health)

plot(mean.health~ginis, xlab=”Gini coefficient”, ylab=”Average health outcome”, ylim=c(6, 12), xlim=c(0, 0.3),

las=1, pch=19)

abline(lm(mean.health~ginis))

}

# Now call the function

wilkinson()