Tag Archives: crime

Visualising a Circular Density

This afternoon, Jean-Luc asked me some help about an old post I did publish, minuit, l’heure du crime; and some graphs published a few days after, where I used a different visualisation, in another post.

The idea is that the hour can be seen as circular, in the sense that 23:58 is actually very close to 00:03. So when we use a nonparametric kernel estimator of time events, we have to take into account that property. More specifically, consider the density of an angle, i.e. a function http://freakonometrics.blog.free.fr/public/perso2/circ-01.gif such that

http://freakonometrics.blog.free.fr/public/perso2/circ-02.gif

with a circular relationship, in the sense that http://freakonometrics.blog.free.fr/public/perso2/circ-03.gif.

In the dataset sent by Jean-Luc, we have some thefts in a big city, in France. The dataset is a simple spreadsheet with one columns, with ’00:20′ or ’17:45′ inside. Those are more or less reported time of thefts, as declared to the police.

B=read.table("Temp_Heures_VV.csv",header=TRUE,
  sep=";")
HM=as.character(B[,1])
H=substr(HM,1,(nchar(HM)-3))
M=substr(HM,(nchar(HM)-1),(nchar(HM)))
X=as.numeric(H)+as.numeric(M)/60

The time is a number from 0 to 24.

U=seq(0,1,by=1/250)
O=U*2*pi
U12=seq(0,1,by=1/24)
O12=U12*2*pi
OM=2*pi*X/24
XL=c(X-24,X,X+24)
d=density(X)
d=density(XL,bw=d$bw,n=1500)
I=which((d$x>=6)&(d$x<=30))
Od=d$x[I]/24*2*3.141592-3.141592/2
Dd=d$y[I]/max(d$y)+1

The idea to get a nice density estimation is to use a simple mirror technique : we have three versions of the data, one for today, one for yesterday, and one for tomorrow. Of course, we have to use a shorter bandwidth.

R=1/24/max(d$y)/3+1 
plot(cos(O),-sin(O),xlim=c(-2,2),ylim=c(-2,2),
     type="l",axes=FALSE,xlab="",ylab="")
for(i in 3.14159/12*(0:12)){ 
  segments(-cos(i),-sin(i),cos(i),sin(i),col="grey")} 
segments(.9*cos(O12),.9*sin(O12),
         1.1*cos(O12),1.1*sin(O12))
text(.7,0,"6")
text(-.7,0,"18")
text(0,-.7,"12")
text(0,.7,"24")
R=1/24/max(d$y)/3+1
lines(R*cos(O),R*sin(O),lty=2)
AX=R*cos(Od);AY=-R*sin(Od)
BX=Dd*cos(Od);BY=-Dd*sin(Od)
COUL=rep("blue",length(AX))
COUL[R<Dd]="red"
CM=cm.colors(200)
a=trunc(100*Dd/R)
COUL=CM[a]
segments(AX,AY,BX,BY,col=COUL,lwd=2)
lines(Dd*cos(Od),-Dd*sin(Od),lwd=2)

The dotted line would be a uniform distribution over the day. The true distribution is the black bold line. The area in purple is when we have more crimes, and the blue line is when we have less crimes. The blue area is equal to the purple one. There is a clear symmetry in the evening around midnight (but not during the day : 6 am is not the same as 6 pm). This graph is the circular visualisation of the kernel density estimator, the same way the rose diagram is the circular visualisation of the histogram.

Minuit, l’heure du crime ?

Il y a quelques jours, j’étais invité par Rémi pour me rendre au poste de police pour discuter de la possibilité de consulter quelques données. Et Rémi m’a donné un historique de près d’un million d’appels téléphonique d’urgence, sur Montréal, passés au cours des six dernières années. Histoire de prendre un peu en main les données, j’ai voulu regarder (inspiré par une remarque de Rémi) si minuit était vraiment une heure de crime1

Ce dont je dispose ce sont les heures d’appels d’urgence (le fameux 911), avec un code (formellement, le code indiqué par la personne lors de l’appel, pas celui établi par la patrouille une fois sur place). Globalement, la distribution des appels (par seconde) au cours de la journée ressemble à ça,

avec les six années en noir, 2005 en bleu et 2010 en rouge (histoire de visualiser une stabilité temporelle).
On peut aussi se focaliser sur les causes données lors de l’appel, afin de voir quel criminel commet un crime à minuit. Par exemple, pour les alarmes consécutives à un cambriolage, on obtient la répartition suivante,

Manifestement, minuit est un creux en matière de cambriolage. N’en déplaise à Arsène Lupin. Les hold-ups, eux aussi surviennent pendant la journée,

Les intrusions-effractions aussi

Sinon, de manière générale, les infractions au code criminel surviennent en fin de journée (mais baissent en fin de soirée)

et les conflits, suivent la même distribution

Autrement dit, les conflits surviennent quand on rentre du travail… mais pas à minuit. En revanche, si on commence à regarder les appels pour signaler descoups de feux, ils surviennent un peu après les conflits… mais un peu avant minuit.

Ah, mais finalement je crois que j’ai trouvé le crime qui survient à minuit,

Et dans ma base, cela correspond au code 063, ce qui signifie trouble à la paix. Autrement dit, si un appel arrive au 911 à minuit, c’est rarement pour signaler un (vrai) crime (au sens de ceux qu’on trouve dans les polars), mais plus pour signaler un problème de beuverie (que l’on peut aussi trouver chez Ian Rankin d’ailleurs). Damned ! Moi qui pensait résoudre des crimes avec mes séries de chiffres…
.
1 Je n’ai pas réussi à trouver d’où pouvait sortir cette idée reçue. En lisant le dernier Ian Rankin (ou plutôt la dernière enquête de John Rebus), je me suis fait la réflexion que dans beaucoup d’enquêtes, les policiers arrivaient vers minuit. J’ai eu l’impression que c’était aussi souvent le cas dans bon nombre d’épisodes de séries télé “policières” (CSI, Castle, Bones, ). En fait si quelqu’un sait où je pourrais trouver une base avec des dates de décès des personnages dans les séries policières ou des polars, je suis preneur.