Tag Archives: accidents

Accidents de voiture et de deux roues à Paris

Il y a quelques mois, j’avais commencé à reprendre des codes que j’avais vu passer dans les projets de R que j’avais donnés pour la formation Data Science pour l’Actuariat. J’avais commencé avec un billet sur sur cartographier le vote pour le Brexit (qui avait été repris – et amélioré – sur le site des voisins de rgeomatic). Aujourd’hui, en rangeant un peu mon ordinateur, je suis tombé sur un code de Quentin sur les acccidents de la route à Paris.

Comme toujours on charge quelques packages

require(downloader)
require(ggmap)
require(stringr)
options(encoding = "UTF-8")

et on récupère les données, en ligne sur https://opendata.paris.fr

path="https://opendata.paris.fr/explore/dataset/accidentologie/download/?format=csv&timezone=Europe/Berlin&use_labels_for_header=true"
dest="test"
download(path,destfile=dest,mode="wb")
loc=paste(getwd(),"/",dest,sep="" )
obj <- read.csv(file = loc, stringsAsFactor = FALSE,sep=";")
file.remove(dest)

On peut commencer par regarder quand on eu lieu les accidents, quelle jour et à quelle heure. On va alors agréger les données

t=data.frame(obj,counter=1)
parJour=aggregate(t$counter, by=list(format(as.Date(t$Date),"%A")), sum)

et créer une base qui contient toutes les informations

vec_dat=data.frame();
vec_dat[ (1:3),1]=parJour$Group.1[3:5]
vec_dat[ (1:3),2]=parJour$x[3:5]
vec_dat[ 4,1]=parJour$Group.1[2]
vec_dat[ 4,2]=parJour$x[2]
vec_dat[ 5,1]=parJour$Group.1[7]
vec_dat[ 5,2]=parJour$x[7]
vec_dat[ 6,1]=parJour$Group.1[6]
vec_dat[ 6,2]=parJour$x[6]
vec_dat[ 7,1]=parJour$Group.1[1]
vec_dat[ 7,2]=parJour$x[1]

on va rajouter un nom, pour que ce soit plus clair

names(vec_dat)[1]="Jour";names(vec_dat)[2]="Nbsinistre"

On choisit éventuellement une palette de couleurs

Palette<-colorRampPalette(c("lightblue","darkblue"))

et on fait un barplot, pour compter le nombre d’accidents, par jour de la semaine, sur Paris

barplot(vec_dat$Nbsinistre,names.arg=vec_dat$Jour,main="Répartition du nombre d'accidents par jour de la semaine ", col=Palette(10), xlab="jour de la semaine", ylab="nombre d'accidents")

On peut ensuite regarder par heure de la journée (en données brutes, sans lissage)

parHeure=aggregate(t$counter, by=list(format(strptime(t$Heure,format="%H:%M"),"%H")), sum)
plot(parHeure,type="l", col=c("blue"), main=" Répartition du nombre d'accidents par heure de la journée", xlab="heure de la journee", ylab="nombre d'accidents")

Passons maintenant à de la géolocalisation

t2 = subset(t, Coordonnées!= "")
coord=data.frame(t(matrix(as.numeric(unlist(strsplit(t2$Coordonnées,"[,]"))),nrow=2)))
t2$lat=coord[,1]
t2$lon=coord[,2]
t2 = subset(t2, (
(48.81 <= lat) & (lat<=48.90) & (2.25<=lon) &(lon<=2.43) ) )

On peut regarder sur une carte où ont eu lieu les accidents

map<-get_map(location = "Paris", zoom=12, maptype="roadmap", color="bw")
vis <- ggmap(map) + geom_point(data = t2, aes(x=lon, y=lat, color=1)) + theme( legend.position="none") + labs(title="Cartographie des accidents à Paris")
vis

On peut tenter une densité (brute, non corrigée d’une densité de routes, ou de population)

overlay<-stat_density2d(data=t2, aes(x=lon, y=lat, fill=..level.., alpha=..level..), contour=T, n=100, geom="polygon")
densi<- ggmap(map) + overlay + scale_fill_gradient("Accident Density") +scale_alpha(range=c(0.4,0.75),guide=FALSE) + guides(fill=guide_colorbar(barwidth=1.5, barheight = 10))
densi = densi + labs(title="Densite des accidents à Paris")
densi

et non-corrigée ici d’effets de bords (ce qui donne l’illusion qu’il y a plus d’accidents intra-muros que sur le boulevard périphérique par exemple). On peut également regarder en fonction de variables explicatives, comme le type de véhicules impliqués, ou la gravité

densi_byGravUs<- densi + facet_wrap(~ Usager.1.Grav, nrow=2)
densi_byGravUs = densi_byGravUs + labs(title="Densité des accidents à Paris par gravité d'accident")
densi_byGravUs

Bref, on peut faire facilement plein de chose à partir de ces données.

Nombre de morts sur la route en baisse… et ? (partie 1)

Tout le monde semble se réjouir de la baisse du nombre de morts sur la route depuis quelques années (longtemps attribué à la présence de radars automatiques, mais qu’on pourrait aussi associer à l’instauration du permis à point). Et c’est tant mieux. Mais sans vouloir jouer les cyniques, et en tous les cas c’est une statistique qui intéresse probablement davantage les assureurs, il peut sembler intéressant de s’intéresser aussi aux accidents corporels graves….

image volée chez Andy Warhol

Le principal soucis méthodologique est qu’au 1er janvier 2005, la définition d’accidents graves ou encore de décès a changé. Avant 2005, un tué, était une victime décédée sur le coup ou dans les six jours qui suivent l’accident. A partir de 2005, les 6 jours passent à 30 jours. De même, un blessé grave était un blessé dont l’état nécessitait plus de six jours d’hospitalisation. Après 2005, cette classe disparait, et seuls restent les blessés qui ont passé plus de 24 heures à l’hôpital…. Bref, on est un peu bloqué pour vraiment analyser les tendances sur une longue période…

  • Nombre de morts sur la route

Le graphique suivant montre le nombre quotidien de morts sur les routes, passant d’une vingtaine en 2002 à une douzaine (en 2008).

On notera qu’il n’y a pas eu de réelle rupture en 2005, malgré la nouvelle définition de décès.

  • Nombre de blessés graves

En revanche, les statistiques sur les blessés (graves) ont connu une réelle rupture en 2005.

On peut essayer de corriger afin de rendre les séries comparables (au moins en terme d’ordre de grandeur),

Au delà de la tendance (et de la rupture de la forte baisse observée en 2002-2004), on notera que le cycle annuel est plus faible. De la même manière que les cycles dans les naissances semblent avoir diminué (comme je l’évoquais ici), on notera que le cycle dans les accidents graves (mais aussi dans une moindre mesure les décès) a fortement diminué…

L’équipe de France de foot devrait jouer seulement en semaine (ça sauverait des vies)

Il y a quelques semaines, le service de centralisation des statistiques de l’assurance accidents LAA, par l’intermédiaire de Stefan Scholz Odermatt, a publié une étude sur la survenance d’accident automobile les jours de match de foot.

Selon l’étude (mentionnée ici ou ) le nombre d’accidents les jours où il y a match est supérieur aux jours sans match,

Ayant réussi à récupérer une base presque exhaustive d’accidents corporels en France, je peux faire la même étude, entre janvier 2002 et décembre 2007. Les conclusions sont moins flagrantes que sur le cas suisse, en particulier les jours de semaine, où manifestement, personne ne s’intéresse aux matchs (où en tous les cas pas assez pour être moins vigilent au volant).

En revanche, le week end, l’effet devient plus prononcé

avec davantage d’accidents dans la journée où il y a un match de l’équipe de France.

Moralité, l’équipe de France de foot devrait jouer seulement en semaine, à chaque match, cela éviterait une vingtaine d’accidents de la route à chaque fois (et je ne parle que d’accidents corporels, ayant causé des blessures et ayant donné lieu à un constat de police) ! Comme le disait un copain à qui je racontais ça, “l’équipe de France devrait jouer, ça serait un début“…. mais c’est un autre sujet.