“Je préfère le McDo!” “OK, tu vas au McDo en face. Nous, on va chez Quick. Et on se retrouve après pour aller au parc.” Là où il y a un Quick, on trouve sûrement un McDonald’s pas loin. On a souvent cette impression par rapport à l’implantation de Quick. Afin de vérifier si c’est vrai, j’ai fait quelques analyses par rapport aux emplacements de ces deux enseignes.
Afin de comparer l’implantation de plusieurs commerces, on peut visualiser sur le plan suivant les restaurants Quick, McDonald’s, Hipoputamus, et les magasins La Halle.
load("geodata.RData")
m=leaflet() %>% addTiles() %>%
addCircleMarkers(lng=qf$lng, lat=qf$lat,radius=5,color = "red",
stroke = FALSE, fillOpacity = 0.9,group="Quick",popup=qf$name) %>%
addCircleMarkers(lng=mc$lon, lat=mc$lat,radius=5,color = "green",
stroke = FALSE, fillOpacity = 0.9,group="McDonald's",popup=mc$noms)%>%
addCircleMarkers(lng=hippo$lon, lat=hippo$lat,radius=5,color = "purple",
stroke = FALSE, fillOpacity = 0.9,group="Hippopotamus",popup=hippo$cp)%>%
addCircleMarkers(lng=halle$lng, lat=halle$lat,radius=5,color = "black",
stroke = FALSE, fillOpacity = 0.9,group="LaHalle",popup=halle$nom)%>%
addLayersControl(
overlayGroups = c("Quick", "McDonald's","Hippopotamus","LaHalle"),
options = layersControlOptions(collapsed = FALSE)
)%>%
addLegend(colors = c("red","green","purple","black"),
labels = c("Quick","McDonald's","Hippopotamus","Lahalle"), opacity = 1)
m
Pour chaque point de vente, on peut calculer la distance du proche point de vente, ensuite tracer la distribution.
dis <- function(long1, lat1, long2, lat2) {
long1=long1*pi/180
lat1=lat1*pi/180
long2=long2*pi/180
lat2=lat2*pi/180
R <- 6371000 # Earth mean radius [km]
delta.long <- (long2 - long1)
delta.lat <- (lat2 - lat1)
a <- sin(delta.lat/2)^2 + cos(lat1) * cos(lat2) * sin(delta.long/2)^2
c <- 2 * asin(sqrt(a))
d = R * c
return(d) # Distance in km
}
dqq=rep(0,nrow(qf))
for (i in 1:nrow(qf)){
dqq[i]=sort(dis(qf[i,]$lng,qf[i,]$lat,qf$lng,qf$lat))[2]
}
dmm=rep(0,nrow(mc))
for (i in 1:nrow(mc)){
d=sort(dis(mc[i,]$lon,mc[i,]$lat,mc$lon,mc$lat))
d=d[d>0]
dmm[i]=d[1]
}
dhh=rep(0,nrow(hippo))
for (i in 1:nrow(hippo)){
dhh[i]=sort(dis(hippo[i,]$lon,hippo[i,]$lat,hippo$lon,hippo$lat))[2]
}
dhh2=rep(0,nrow(halle))
for (i in 1:nrow(halle)){
d=sort(dis(halle[i,]$lng,halle[i,]$lat,halle$lng,halle$lat))
d=d[d>0]
dhh2[i]=d[1]
}
ddist=data.table(distance=c(dqq,dmm,dhh,dhh2),
lib=c(rep("Quick",length(dqq)),
rep("McDo",length(dmm)),
rep("Hippo",length(dhh)),
rep("Lahalle",length(dhh2))))
ggplot(ddist, aes(distance,colour=lib)) +
geom_density()+xlim(0,10000)
On voit que les Hippopotamus sont plus dispersés, et les Lahalle sont plus concentrés. Lahalle est plus concentré que McDonald’s, cela est sans doute lié au fait qu’un nombre important de McDonald’s sont situés à côté des autoroutes.
En analysant les distances entre eux, on voit que les Hippopotamus sont très proches des McDonald’s. En effet, il semble que McDonald’s s’est bien implanté dans les 4 coins de la France.
Les deux enseignes Quick et McDonald’s ont sensiblement le même “taux de concentration”.
median(dqq)
## [1] 3639.452
median(dmm,na.rm = T)
## [1] 3748.69
median(dhh,na.rm = T)
## [1] 5658.204
median(dhh2,na.rm = T)
## [1] 2646.085
Pour savoir à quel point les Quick sont implantés à proximité des McDonald’s, j’ai calculé la distance du McDonald’s le plus proche pour chacun des Quick. Ainsi on peut ensuite tracer des distributions de ces distances minimales.
dqm=rep(0,nrow(qf))
for (i in 1:nrow(qf)){
dqm[i]=min(dis(qf[i,]$lng,qf[i,]$lat,mc$lon,mc$lat),na.rm = T)
}
ddist=data.table(distance=c(dqq,dqm,dmm),
lib=c(rep("Quick",length(dqq)),
rep("Quick-McDo",length(dqm)),
rep("McDo",length(dmm))))
ggplot(ddist, aes(distance,colour=lib)) +
geom_density()+xlim(0,10000)
## Warning: Removed 455 rows containing non-finite values (stat_density).
On peut découper la France selon un maillage, et regarder les zones où le nombre de McDonald’s dépasse 2.
maille_mc=pts[pts$freqmc>2,]
pal <- colorNumeric(
palette = "Spectral",
domain = maille_mc$freqmc
)
m=leaflet(data=maille_mc) %>%
addTiles() %>%
addRectangles(
lng1=~x-pas/2, lat1=~y-pas/2,
lng2=~x+pas/2, lat2=~y+pas/2,
color=~pal(freqmc),
popup=~as.character(freqmc))%>%
addMarkers(lng=~x, lat=~y,popup=~as.character(freqmc))
m
Dans un quartier animé, on n’a pas un seul McDonald’s, mais plusieurs. Ainsi, je me suis demandé s’il y a des quartiers où il y a plusieurs McDonald’s, mais il n’y a pas de Quick.
J’ai tracé des carrés partout en France, et j’ai compté là où il y a plus de 3 McDonald’s, et 0 Quick. Le maillage a été fixé de façon arbitraire, selon le point de départ, le résultat pourrait être différent. Avec ce maillage donné, j’ai ainsi trouvé 8 quartiers inoccupés par Quick.
manque_quick=pts[pts$freqmc>2,]
manque_quick=manque_quick[manque_quick$freqq==0,]
nrow(manque_quick)
## [1] 8
pal <- colorNumeric(
palette = "Spectral",
domain = manque_quick$freqmc
)
m=leaflet(data=manque_quick) %>%
addTiles() %>%
addRectangles(
lng1=~x-pas/2, lat1=~y-pas/2,
lng2=~x+pas/2, lat2=~y+pas/2,
color=~pal(freqmc),
popup=~as.character(freqmc))%>%
addMarkers(lng=~x, lat=~y,popup=~as.character(freqmc))
m
“Un article sur Quick et McDonald’s ? Je pensais que tu travaillais dans l’assurance…” “Si on remplace les restaurants par les contrats d’assurance habitation, des études très intéressantes pourront être faites !… Mais là, je crois que j’ai trouvé l’opportunité de rêve: on va créer une franchise Quick à proximité du parc de la Villette. Il y a 5 McDonald’s et pas de Quick!”
Copyright © 2016 Blog de Kezhan Shi