Freakonometrics

To content | To menu | To search

Tag - France

Entries feed - Comments feed

Saturday, November 10 2012

France versus Canada, part 1

Suite à plusieurs demandes, officielles (pour monter des ententes internationales) ou simplement d'étudiants (ou de collègues) curieux, je vais prendre un peu de temps pour faire des comparaisons entre les systèmes universitaires français et québécois . Ça risque d’être long, et compliqué, donc je vais prendre mon temps...

La première chose à comprendre est que les systèmes éducatifs sont fondamentalement différents. La France a adopté le système LMD (licence- maîtrise master -doctorat) il y a quelques années, ce qui s'est appelé le "système de Bologne" (cf wikipedia.org/). Cette réforme avait été adoptée sous prétexte d'uniformiser les systèmes universitaires entre les différents pays. Mais il ne concerne que l'Europe, l'Amérique du nord étant sur un fonctionnement un peu différent. En fait, le Québec est aussi sur un mode LMD (si on veut) mais en raisonnant ainsi, on oublie qu'il existe une formation en collège (CEGEP) avant d'intégrer l'université [*].

Plus précisément, si on veut vraiment comparer les systèmes... il faut remonter un peu plus tot que l'entrée à l'université,

année

France

Québec

Canada

U.S.A.


primaire
primaire
elementary

elementary
1 (6-7)

CP

1ere
1ere
1st
2 (7-8)

CE1
2e
2e
2nd
3 (8-9)

CE2
3e
3e
3rd
4 (9-10)

CM1
4e
4e
4th
5 (10-11)

CM2
5e

5e

5th


college


junior high
school
6 (11-12)

6e

6e
6e
6th



secondaire


junior high
school

7 (12-13)
5e I

7e
7th
8 (13-14)

4e
II


8e
8th



senior high
school

high school
9 (14-15)

3e
brevet
III


9e

9th



lycée



10 (15-16)

seconde

IV

10e
10th
11 (16-17)

première
V

11e
11th


college

12 (17-18)

terminale
baccalauréat


12e
12th


université

université
college
13 (18-19)

licence
DES

bachelor
bachelor



université

14 (19-20)



baccalauréat



15 (20-21)








16 (21-22)

master











graduate school
17 (22-23)



maitrise
master

master
18 (23-24)

doctorat






19 (24-25)



doctorat

doctorate

PhD
20 (25-26)








21 (26-27)








J'ai fait ici une comparaison avec l'Amérique du nord au sens large. Mon point est que les systèmes français et québécois sont différents. En particulier, un étudiant inscrit en premier année de maîtrise master en France sera un peu perdu en première année de maîtrise au Québec. Le niveau équivalent serait davantage la troisième année de baccalauréat.

Je laisse les commentaires ouverts pour accueillir les témoignages, et promis, je continue rapidement cette série de billets sur la comparaison entre les deux systèmes de formation... Et promis, j'essayerais d'expliquer le système des grandes écoles à mes collègues québécois !

Thursday, May 24 2012

French dataset: population and GPS coordinates

A short post today based on recent work by @3wen (Ewen Gallic, graduate Student in Rennes, spending a year in Montreal). Since we were working on a detailed French dataset (per commune), we needed a dataset containing a list all communes, with population and location. GPS coordinates were extracted from Google, using the following php file, inspired by http://www.andrew-kirkpatrick.com/ on Google geocoding api with php webpage. Population was interpolated from INSEE's datasets, i.e. http://www.insee.fr/ (since data are over a 35 year period, from 1975 to 2010, changes have been taken into account as carefully are possible - e.g. merges and splits of cities - based on that description). A spline model has been used for all cities (with three degrees of freedom, and null and negative interpolation became one, since we'll be using loglinear models afterwards). Names are from that dataset, still on INSEE's website, http://www.insee.fr/.

A zipped file can be downloaded here popfr19752010.zip, but it is also possible to use the code below (it is a 24Mo dataset). Since it was hard to find such a dataset online (different files can be found, but we found none with population and location), we have decided to upload that dataset. Please let us know if there are problems with those data...

> base=read.csv(
+
"http://freakonometrics.free.fr/popfr19752010.csv", + header=TRUE)

Using that code, it is possible to locate all the communes in France (metropolitan), for instance

> library(maps)
> map("france")
> points(base$long,base$lat,cex=.1,col="red",pch=19)
> points(base$long,base$lat,cex=2*base$pop_2010/
+ max(base$pop_2010),col="blue",pch=19)

Several additional lines of code on that dataset (and also others) will be uploaded, soon.

Cette oeuvre est mise à disposition sous licence Paternité - Partage à l'Identique 3.0 non transposé. Pour voir une copie de cette licence, visitez http://creativecommons.org/. Date : 24 mai 2012, par Ewen GALLIC. Sources : INSEE, API Google Maps v3 et GeoHack (coordonnées GPS), propres calculs (estimation de population à partir des données INSEE).
  • reg : code region INSEE (character)
  • dep : code departement INSEE (character, corse 201 et 202 au lieu de 2A et 2B)
  • com : code commune INSEE (character)
  • article : article du nom de la commune (character)
  • com_nom : nom de la commune (character)
  • long : longitude (numeric)
  • lat : latitude (numeric)
  • pop_i : estimation de la population à la date i (ramenée à 1 si <=0), i=1975,...,2010 (numeric)

Saturday, May 19 2012

Births and week-ends, in France

This week, I have seen on the internet (sorry, I cannot find proper references) the graph produced here on the right: which birthday is most likely ? The fact that I have no further information is important, since I do not know in which country such a graph was obtained. At least, I know it should not be France...

In France, I have already mentioned that there is a strong week-end effect: nowadays, there is 25% less deliveries during week-ends than during the week. Calot (1981) observed already that there were less deliveries on Sundays. This has been confirmed more recently, e.g. in http://www.lepoint.fr/ or http://www.prepabl.fr/, with a significant difference between week days, and week-ends. Here  is the number of birth per day, over 40 years, with in blue the average trend during the week, and in red, during week-ends,

naissance=read.table(
"http://freakonometrics.free.fr/naissanceFR2.txt")
attach(naissance)
date=as.Date(date)
plot(date, nbre,cex=.5)
t2=as.POSIXlt(date)
jour=t2$wday
X=naissance$date
Y=naissance$nbre
J=jour
df=data.frame(X,Y,J)
library(splines)
regs=lm(Y~bs(X,df=20),data=df[jour%in%c(0,6),])
Yp=predict(regs,newdata=df)
lines(X,Yp,col="red",lwd=3)
regs=lm(Y~bs(X,df=20),data=df[jour%in%1:5,])
Yp=predict(regs,newdata=df)
lines(X,Yp,col="blue",lwd=3)

If we look at the evolution of the ratio week-ends over weeks days, we have the following graph

t2=as.POSIXlt(date)
jour=t2$wday
jour=jour[1:(1982*7)]
nbre2=jour
for(i in 1:1982){
taux=sum(nbre[6:7+7*(i-1)])/
sum(nbre[1:5+7*(i-1)])/2*5
nbre2[1:5+7*(i-1)]=nbre[1:5+7*(i-1)]*taux
nbre2[6:7+7*(i-1)]=nbre[6:7+7*(i-1)]
nbre2[1:7+7*(i-1)]=
mean(nbre[1:7+7*(i-1)])/mean(nbre2[1:7+7*(i-1)])*
nbre2[1:7+7*(i-1)]
}
nbretaux=jour
for(i in 1:1982){
taux=sum(nbre[6:7+7*(i-1)])/
sum(nbre[1:5+7*(i-1)])/2*5
nbretaux[1:7+7*(i-1)]=taux
}
plot(date[1:length(nbre2)],nbretaux)
X= date[1:length(nbre2)]
Y=nbretaux
library(splines)
reg=lm(Y~bs(X,df=20))
Yp=predict(reg)
lines(X,Yp,col="red",lwd=3)

In the beginning of the 70's, during week-ends, there were 5% less deliveries, but 25% less around 2000. It is then possible to produce the same kind of graphs as the one above, per year of birth. And here, we clearly observe the importance of the week end effect (maybe also because of color choice)

naissance=read.csv(
"http://freakonometrics.free.fr/naissanceFR.csv",
sep=";")
M=as.matrix(naissance[,3:ncol(naissance)])
BIRTH=as.vector(t(M))
YEAR=rep(1968:2005,each=12*31)
MONTH=rep(rep(1:12,each=31),38)
DAY=rep(1:31,12*38)
X=NA
for(y in 1968:2005){
sbase=base[YEAR==y,]
X=c(X,sbase$BIRTH/sum(sbase$BIRTH,
na.rm=TRUE))
}
base=data.frame(YEAR,MONTH,DAY,
BIRTH,BIRTHDAYPROB=X[-1])
 
m1=min(base$BIRTHDAYPROB,na.rm=TRUE)
m2=max(base$BIRTHDAYPROB,na.rm=TRUE)
y=1980
colr=rev(heat.colors(100))
sbase=base[YEAR==y,]
plot(0:1,0:1,col="white",xlim=c(-1,12),
ylim=c(-31,1),axes=FALSE,xlab=
paste("Naissance en",y,sep=" "),ylab="")
for(x in 1:nrow(sbase)){
a=sbase$MONTH[x];b=sbase$DAY[x]
polygon(c(a-.9,a-.9,a-.1,a-.1),-c(b-.9,b-.1,
b-.1,b-.9),col=colr[(sbase$BIRTHDAYPROB[x]-m1)/
(m2-m1)*100],border=NA)
}
text((1:12)-.5,.5,c("J","F","M","A","M","J","J",
"A","S","O","N","D"),cex=.7)
text(-.5,-(1:31)+.5,1:31,cex=.7)

http://freakonometrics.free.fr/ANNIVFRANCE.gif

Wednesday, November 30 2011

ACT2040: une région géographique n'est pas une variable continue

En relisant les devoirs maisons, je me suis rendu compte que certains avaient tenté de regrouper les régions (géographiques) par régions homogènes. Sauf que les régions étaient codées par un numéro (selon la codification officielle). Par exemple, dans une des bases, nous avions des assurés dans 4 zones géographiques, à savoir la région 82 (région Rhône-Alpes en rouge) la région 54 (région Poitou-Charentes en vert) la région 73 (région Midi-Pyrénées en bleu) et enfin la région 41 (région Lorraine en mauve).

> unique(baseFREQ$region)
[1] 82 54 73 41

Une idée intéressante pour regrouper les régions pouvait être d'utiliser les arbres. Les régions étant des couleurs (on le voit bien sur la carte) et pas des variables quantitatives, il est normal de travailler sur des facteurs. D'ailleurs le code pour faire la carte est le suivant,

> library(maps)
>  france<-map(database="france")
>  dpt=c("Ain","Ardeche","Drome","Isere","Loire ","Rhone",
+ "Savoie","Haute-Savoie","Charente","Charente-Maritime",
+ "Deux-Sevres","Vienne","Ariege","Aveyron","Haute-Garonne",
+ "Gers","Lot","Hautes-Pyrenees","Tarn","Tarn-et-Garonne",
+ "Meurthe-et-Moselle","Meuse","Moselle","Vosges")
>  couleur=c(rep(2,8),rep(3,4),rep(4,8),rep(6,4))
>  match=match.map(france,dpt)
>  color=couleur[match]
>  map(database="france", fill=TRUE, col=color)

L'arbre sur les régions en tant que facteurs donne le découpage suivant

>  baseFREQ$fregion=as.factor(baseFREQ$region)
>  ARBRE1=tree(nombre~fregion,data=baseFREQ,split="gini")
>  plot(ARBRE1)
>  text(ARBRE1)

Bon, R a la mauvaise idée de recoder les classes (mais il garde l'ordre, i.e. a correspond à la région 41, b à 54, c à 73 et d à 82). Visuellement, on retient qu'il est possible de considérer deux grandes régions, ac (i.e. 41 et 73) et bd (i.e. 54 et 72). L'intérêt des arbres sur des variables qualitatives, des facteurs, c'est que tous les regroupements sont possibles. En revanche, si on fait un arbre sur la région qui est lue en tant que nombre (quantitatif), on obtient

>  ARBRE2=tree(nombre~region,data=baseFREQ,split="gini")
>  plot(ARBRE2)
>  text(ARBRE2)

Il est alors impossible de regrouper dans une même classe deux régions séparées par un nombre, i.e. on ne peut regrouper 41 et 82 dans la même classe. R suggère de distinguer peut être trois régions, à savoir 82 (à droite), puis 73 (au centre) et enfin de mettre éventuellement 41 et 54 ensemble. Ce qui n'est pas la stratégie optimale quand on regroupe des facteurs.

Monday, November 14 2011

Conference in Lyon on climate change and insurance

I will be in Lyon next Monday to give a talk on "Modeling heat-waves: return period for non-stationary extremes" in a workshop entitled "Changement climatique et gestion des risques". An interesting reference might be some pages from Le Monde (2010). The talk will be more a discussion about modeling series of temperatures (daily temperatures). A starting point might be the IPCC Third Assessment graph (on the left) which illustrates the effect on extreme temperatures when (a) the mean temperature increases, (b) the variance increases, and (c) when both the mean and variance increase for a normal distribution of temperature.

I will add here some code used to generate some graphs I will comment. The graph below it the daily minimum temperature,

TEMP=read.table("http://freakonometrics.blog.free.fr/
public/data/TN_STAID000038.txt"
,header=TRUE,sep=",") D=as.Date(as.character(TEMP$DATE),"%Y%m%d") T=TEMP$TN/10 day=as.POSIXlt(D)$yday+1 an=trunc(TEMP$DATE/10000) plot(D,T,col="light blue",xlab="Minimum daily temperature in Paris",ylab="",cex=.5) abline(R,lwd=2,col="red")

We can clearly see an increasing linear trend. But we do not care (too much) here about the increase of the average temperature, but more dispersion, and tails. Here are decenal box-plots

or quantile-regressions

library(quantreg)
PENTESTD=PENTE=rep(NA,99)
for(i in 1:99){
R=rq(T~D,tau=i/100)
PENTE[i]=R$coefficients[2]
PENTESTD[i]=summary(R)$coefficients[2,2]
}
m=lm(T~D)$coefficients[2]
plot((1:99)/100,(PENTE/m-1)*100,type="b")
segments((1:99)/100,((PENTE-2*PENTESTD)/m-1)*100,
(1:99)/100,((PENTE+2*PENTESTD)/m-1)*100,
col="light blue",lwd=3)
points((1:99)/100,(PENTE/m-1)*100,type="b")
abline(h=0,lty=2,col="red")

In order to get a better understanding of the graph above, here are slopes of quantile regressions associated to different probabilities,



The annualized maxima (of minimum temperature, i.e. warmest night of the year)

i.e. the regression of yearly maximas.

tail index of a Generalized Pareto distribution

Instead of looking at observation over a century (the trend is obviously linear), we can focus on seaonal behavior,

B=data.frame(Y=rep(T,3),X=c(day,day-365,day+365),
A=rep(an,3)) library(quantreg) library(splines) Q50=rq(Y~bs(X,10),data=B,tau=.5) Q95=rq(Y~bs(X,10),data=B,tau=.95) Q05=rq(Y~bs(X,10),data=B,tau=.05) YP95=predict(Q95,newdata=data.frame(X=1:366)) YP05=predict(Q05,newdata=data.frame(X=1:366)) I=(T>predict(Q95))|(T<predict(Q05)) YP50=predict(Q50,newdata=data.frame(X=1:366)) plot(day[I],T[I],col="light blue",cex=.5) lines(1:365,YP95[1:365],col="blue") lines(1:365,YP05[1:365],col="blue") lines(1:365,YP50[1:365],col="blue",lwd=3)

with on red series from 1900 till 1920, and on purple from 1990 till 2010. If we remove the linear trend, and the seasonal cycle, here are the residuals, assume to be stationary,

on during the year

Obviously, something has been missed,

The graph below is the volatility of the residual series, within the year,

Instead of looking at volatility, we can focus on tails, with tail index per month,

mois=as.POSIXlt(D)$mon+1
Pmax=Dmax=matrix(NA,12,2)
for(s in 1:12){
X=T3[mois==s]
FIT=gpd(X,5)
Pmax[s,1:2]=FIT$par.ests
Dmax[s,1:2]=FIT$par.ses
}
plot(1:12,Pmax[,1],type="b",col="blue",
ylim=c(-.6,0)) segments(1:12,Pmax[,1]+2*Dmax[,1],1:12,Pmax[,1]- 2*Dmax[,1],col="light blue",lwd=2) points(1:12,Pmax[,1],col="blue") text(1:12,rep(-.5,12),c("JAN","FEV","MARS", "AVR","MAI","JUIN","JUIL","AOUT","SEPT", "OCT","NOV","DEV"),cex=.7)

At the end of the talk, I will also mention multiple city models, e.g. Paris and Marseilles,

If we look at residuals (once we have removed the linear trend and the seasonal cycle) we observe some positive dependence

In order to study (strong) tail dependence, define

http://blogperso.univ-rennes1.fr/arthur.charpentier/public/perso3/Llatex2png.2.php.png
for lower left tail and
http://blogperso.univ-rennes1.fr/arthur.charpentier/public/perso3/Clatex2png.2.php.png
for upper right tail, where http://perso.univ-rennes1.fr/arthur.charpentier/latex/toclatex2png-12.2.php.png is the survival copula associated to http://perso.univ-rennes1.fr/arthur.charpentier/latex/toclatex2png-13.2.php.png, i.e.
http://perso.univ-rennes1.fr/arthur.charpentier/latex/toclatex2png-14.2.php.png
and
http://perso.univ-rennes1.fr/arthur.charpentier/latex/toclatex2png-15.2.php.png

It looks like there is no tail dependence (in the uper tail). But it is also possible to study weaker tail dependence, through

http://perso.univ-rennes1.fr/arthur.charpentier/latex/toc2latex2png.3.php.png
and
http://perso.univ-rennes1.fr/arthur.charpentier/latex/toc2latex2png.4.php.png


Slides can be visualized below, I will upload them soon,

Wednesday, May 11 2011

Maudits français

Tous les malouins le savent, Jacques Cartier est parti de Saint Malo pour découvrir le Canada en 1536 (si l'on considère son second voyage, c'est à dire celui où il a vraiment pénétré le royaume de Kanata en voguant sur le Saint Laurent). Il y a d'ailleurs un musée du Québec dans les remparts. Et comme s'en vente le musée, les québécois viennent de Saint-Malo.

Or, pour ceux qui ne connaissent pas Saint-Malo, c'est à deux pas du Mont Saint Michel, et du Couesnon qui sépare la Bretagne et la Normandie. Étant né en Normandie, avant de venir vivre à Rennes,  j'étais convaincu que j'avais des racines communes avec les Québécois*. Mais j'ai été surpris en voyant les noms de famille des copines de classe de ma fille: les noms ne m'étaient pas du tout familiers... Pourtant, si nous avons des racines communes, il ne serait pas surprenant que les noms de familles se retrouvent (c'est le principe de base de la généalogie, si j'ai bien tout suivi). Aussi j'ai voulu creuser davantage....

  • Que disent les experts en généalogie ?
http://freakonometrics.blog.free.fr/public/perso3/aunis.gifhttp://freakonometrics.blog.free.fr/public/perso3/bretagne.gifhttp://freakonometrics.blog.free.fr/public/perso3/Saintonge.gifhttp://freakonometrics.blog.free.fr/public/perso3/Normandie.gifhttp://freakonometrics.blog.free.fr/public/perso3/anjou.gif
On peut trouver des éléments de réponse ici ou là. Parmi les 3800 Français qui ont immigré (ou émigrer, ça dépend du point de vue) entre 1608 et 1700 :
  • La Normandie a fourni 1 pionnier sur 5.
  • Le Poitou, l'Aunis et la Saintonge ont, ensemble, donné 1 pionnier sur 4.
  • Paris et l'Ile-de-France, 1 pionnier sur 7.
  • La Bretagne, un peu plus de 3 pionniers sur 100.
  • L'Anjou, 3 pionniers sur 100.
  • La Champagne, presque 3 pionniers sur 100.
  • La Picardie, un peu plus de 2 pionniers sur 100.

Entre 1700 et 1765, près de 5000 autres hommes, femmes et enfants originaires de France viennent s'établir au Canada, mais "très peu proviennent de la Bretagne et des régions baignées par la mer". Ce sont d'ailleurs les ordres de grandeur que j'ai pu avoir dans l'ouvrage de Michel Lambert (qui n'est pas un livre de généalogie à proprement parler mais qui est incroyablement intéressant, même s'il ne donne pas de source - ou de détails sur le sens - pour ces chiffres),
  • Normandie, 22.6%
  • Aunis, 16.4%
  • Perche, 11.4%
  • Ile de France (région parisienne) 10.5%
  • Poitou, 7.5%
  • Maine, 5.2%
  • Saintonge 5.2%
  • Bretagne 3.5%
Moralité, même si Jacques Cartier est parti de Bretagne, rares semblent être les bretons qui ont émigrés au Québec.
  • Calculs de probabilités conditionnelles à partir des noms de famille
Il existe des sites qui donnent les "classements" des noms de familles, au Québec par exemple (ici, avec les 1000 noms les plus portés, avec les proportions respectives), ou dans les régions françaises (, où j'ai pris à chaque fois les 2000 noms les plus portés avec les proportions respectives, en changeant de région). Les données peuvent être récupérées avec le code suivant
quebec=read.table("http://freakonometrics.free.fr/nom-quebec2.txt",   
header=TRUE,dec=",")
bretagne=read.table("http://freakonometrics.free.fr/nom-bretagne.txt",
header=TRUE,dec=",",sep="\t")
poitou=read.table("http://freakonometrics.free.fr/nom-poitou.txt",
header=TRUE,dec=",",sep="\t")
normandie=read.table("http://freakonometrics.free.fr/nom-basse-normandie.txt",
header=TRUE,dec=",",sep="\t")
aquitaine=read.table("http://freakonometrics.free.fr/nom-aquitaine.txt",
header=TRUE,dec=",",sep="\t")
alsace=read.table("http://freakonometrics.free.fr/nom-alsace.txt",
header=TRUE,dec=",",sep="\t")
loire=read.table("http://freakonometrics.free.fr/nom-loire.txt",
header=TRUE,dec=",",sep="\t")
J'ai retenu 6 régions françaises, et j'ai calculé la proportions de québécois dont le nom de famille était dans le top 2000 d'une région donnée, i.e.
> head(quebec)
Rang Nomdefamille Pourcentage
1 1 Tremblay 1.076
2 2 Gagnon 0.790
3 3 Roy 0.753
4 4 Cote 0.692
5 5 Bouchard 0.530
6 6 Gauthier 0.522
 
> minquebec=tolower(quebec$Nomdefamille)
> rangquebec=quebec$Rang
> pctquebec=quebec$Pourcentage/sum(quebec$Pourcentage)
> head(bretagne)
Rang Patronyme Naissances
1 1 LE GALL 18126
2 2 LE GOFF 16093
3 3 LE ROUX 15905
4 4 THOMAS 15705
5 5 MARTIN 12094
6 6 TANGUY 12045
 
> minbretagne=tolower(bretagne$Patronyme)
> rangbretagne=bretagne$Rang
> pctbretagne=bretagne$Naissances/sum(bretagne$Naissances)
> I=minquebec%in%minbretagne
> sum(pctquebec[I])/sum(pctquebec)
[1] 0.2579641
Région Proportion
Bretagne 23,39%
Normandie 31,07%
Loire 32,83%
Aquitaine 27,65%
Poitou 32,50%
Alsace 9,71%
Si on retrouve peu de noms alsacien au Québec, on peut être un peu "surpris" que les régions qui ressortent le plus sont la Loire et le Poitou et pas la Bretagne et la Normandie.... Bon, j'en conviens, je travaille sur les noms de familles bruts, c'est à dire que je ne tiens pas compte du fait que certains noms se sont déformés. Il s'agit de la version simple... on peut bien entendu aller plus loin, par exemple en utilisant des modèles de mélange par exemple... à suivre donc...

*en fait, mes origines sont davantage bourguignonnes, de part mes quatre grands parents, comme le savent tous ceux qui m'ont déjà payé un verre de vin... mais ayant passé toute mon enfance en Normandie, je peux me considérer un peu comme normand. Et adorant la galette saucisse, je suis définitivement breton....

Tuesday, March 15 2011

Du sex-ratio en France

En novembre dernier, Baptiste @ m'avait envoyé un courriel correspondant à ce qu'il a mis en ligne sur son blog (ici) sur l'utilisation du fichier des prénoms français pour analyser le sex ratio à la naissance en France. J'attendais qu'il publie ses commentaires avant de mettre les miens (car le graphique qu'il a mis en ligne ce matin m'avait fait m'interroger).
Pour faire simple, la base de prénoms inclue un sexe. Mais si on regarde le rapport du nombre de garçon sur le nombre de filles, à la naissance, on a le graphique ci-dessous,
dat=read.table("nat2004.csv",sep=";",header=TRUE)
naissancesm=rep(NA,105)
for (i in 1900:2004) {
naissancesm[i-1899]=sum(dat[dat$annais==i&dat$sexe==1,"nombre"],
na.rm=TRUE)
}
naissancesf=rep(NA,105)
for (i in 1900:2004) {
naissancesf[i-1899]=sum(dat[dat$annais==i&dat$sexe==2,"nombre"],
na.rm=TRUE)
}
plot(1900:2004,naissancesm/naissancesf,col="red")

La tendance du début est très surprenante. Par exemple,  si on reprend les chiffres donnés par Pierre Simon Laplace sur les naissances à Paris entre 1750 et 1800 (mentionné hier, ici) on est déjà sur ratio de l'ordre de 1.05 (que l'on retrouve sur la fin de notre graphique, mais pas le début).
> 393386/377555
[1] 1.041930
 
> 251527/241945
[1] 1.039604
Donc il n'y a pas de raison d'avoir cette diff1rence. La conclusion semble être qu'il y a un soucis sur la base des prénoms. En effet, dans un rapport de Anouch Chahnazarian (ici), on retrouve l'évolution suivante,

que l'on peut rapprocher des données d'Éric Brian & Marie Jaisson (ici pour les données et quelques pages) utilisées dans leur ouvrage Le sexisme de la première heure, hasard et sociologie, qui mesure ici la fréquence de garçons à la naissance

Si l'on compare ces dernières données (via le fichier ici), calculé sur les données de l'INSEE et de l'INED, on retrouve un niveau très proche de celui que l'on a sur le fichier des prénoms, avec toutefois un biais constamment négatif.
b=read.table("http://freakonometrics.blog.free.fr/public/data/sex-ratio.txt")
X=b$V1
Y=b$V2/(100-b$V2)
lines(X,Y,col="blue")

Attention donc à la variable de sexe dans la base surtout avant guerre (en espérant que ce soit le seul soucis). Et je renvoie au blog de Baptiste qui publie toujours des choses très amusantes sur les prénoms, ici (je n'ai plus trop eu le temps de travailler dessus depuis les 5 billets en ligne ).

Tuesday, November 2 2010

Names of villages, in France

Keith Briggs published a post here on names of English place name element distribution, which contains almost twenty maps like the one where names ends by -bourn,bourne,burn (here) or -head (there). Actually, it is possible (Robin mentioned that already here) to do similar things in France... Consider the dataset containing the 35,250 commune names (here), it is an xls file containing the official name, the latitude, and on the longitude. To start with something simple, it is possible also to look at village containing "saint" in it

There are a lot, and there is no obvious geographic trend. For some simple geographic trend, t is possible to see where are villages having a name ending with "sur mer" (meaning literally "on the sea") below on the left. Obviously, we cannot find such places in the Alps. Similarly for names ending with "Seine" they are clearly on the Seine river, on the right

> ville=read.table("D:\\r-data\\ville.csv",sep=";",header=TRUE)
> nrow(ville)
[1] 35376
> ville$maj=as.character(ville$Nom.Ville)
> n=nchar(ville$maj)
> I=substr(ville$maj,pmax(0,n-8),n)
> Ind=I=="-sur-Mer "
> sum(Ind)
[1] 98
> library(maps)
> map('france', fill = FALSE)
> X=ville[Ind,]
> x=as.numeric(as.character(X$Longitude))
> y=as.numeric(as.character(X$Latitude))
> points(x,y,pch=19,col="blue",cex=.6)

In order to continue with some geographic pattern, consider the end of the names, such as "-gny" (below on the left, in red) or "-ac" (below on the right, in blue)

Some pretend that "-ac" comes from Gaelic, and can be found in Celtic regions (here in Brittany). Obviously, there is also an origin in Occitany (south west of France). And this gave also in Oïl region the "-gny" (in North and North-East regions). Consider similarly end of the names, such as "-an" (below on the left, in red) or "-ey" (below on the right, in blue)

Still about the end of the names, it is also possible to look for village ending either with "-a" (below on the left, in red) or "-o" (below on the right, in blue)

We are now in the southern part of France.... "-a" in Corse and Pyrénées, while "-o"can be found in Corse, and in Brittany. For the beginning "ker-" or "lan-"  (below on the left, in red) or "castel-" (below on the right, in blue),

"ker-" appears in 18,000 location names (as mentioned here) but only in some village names. It is similar to "castel-" in the southern part of France.
To go a bit further, 40 years ago, Georges Brassens sang a song entitled "La ballade des gens qui sont nés quelque part".

He says that people are usually extremely proud of their villages.... Actually, their are more people proud of living over something than under something: below are villages containing "sous" (i.e. under below on the left, in red) or "sur" (i.e. over below on the right, in blue)

On the other hand, villages containing "grand" or "grande" (i.e. tall or big below on the left, in red) or "petit" or "petite" (i.e. small below on the right, in blue) seem to be correlated: close to a city with "grand" there is a village with "petit" in it. For instance Virieu-le-Grand and Virieu-le-Petit, or  Essigny-le-Grand and Essigny-le-Petit.

And finally, I found surprising to see so many village containing "montagne" (ie mountain below on the left, in orange) or starting with "Mont" (below on the right, in purple) that are far from mountains,

You do not need to live close to some mountains to get mountains in it. Even in Brittany you can find dozen of villages starting with "Mont"....

Thursday, September 23 2010

Soccer, probabilité (et assurance) partie 3

La dernière fois (il y a quelques mois, ici) on avait évoqué le lien entre cote et probabilités risques neutres (induites). J'avais évoqué les cotes à un instant donné donné, et montré comment on pouvait construire la probabilité risque neutre associée. L'idée est ici de suivre l'évolution des probabilités pendant la coupe du monde, au fur et à mesure que les matchs révèlent de l'information sur le vrai niveau des équipes...
A l'aide des données "World Cup Group A Betting" ("Win Market") sur http://www.oddschecker.com/ (Vincent, alias @Vicnent, avait fait des sauvegarde régulières des pages html), on peut suivre les cotes toutes les 30 minutes, entre le 10 juin et le 22 juin, au sein du groupe de l'équipe de France.

Pour le premier site de pari (bet365), on a les probabilités suivantes, avec les probabilités associées à l'équipe de France (en bleu), à l'Afrique du Sud (en jaune), l'Uruguay (en rouge) et le Mexique (en vert),

On note que les probabilités sont stables en dehors des matchs, autrement dit seul le comportement sur le terrain semble intéresser les parieurs (les matchs ont lieu pendant les date où l'on observe des traits bleus clairs verticaux).
Pour le troisième, on observe quelque chose de très proche (les valeurs manquants signifient que le tableau en ligne était vide, ou que j'ai raté ma lecture du fichier html sous R), avec des variations du même ordre à la fin des matchs,

Pour le sixième on a

pour le neuvième,

et pour le douzième (je n'ai pas affiché tous les graphs)

On notera qu'à la fin, après les seconds matchs plus personnes ne semblait croire à l'équipe de France (en France en tous les cas), sa probabilité de gagner pour les parieurs est resté élevée, et ce, chez tous les sites de paris.... il aurait probablement été intéressant de parier à la fin sur le Mexique (même si je sais que rétrospectivement, il est toujours facile de dire ce qu'il fallait alors faire). Attendre le dernier moment pour faire des paris n'est pas forcément stupide...
La prochaine étape c'est de regarder non pas les pronostiques par poule, mais globalement, sur le futur vainqueur. Nous verrons en particulier comment les matchs des autres influences les probabilités d'une équipe....

Monday, August 23 2010

I want to fly away

Thursday, August 5 2010

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é...

Saturday, July 24 2010

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.

Wednesday, April 14 2010

Mais quand va-t-on enfin se décider à fermer les universités en France ?

J'ai été un peu titillé ce matin en voyant la une s'étaler sur la devanture du buraliste en bas de la fac,

Comme le dit Wikipedia, "l'expression grande école désigne en premier lieu les établissements d'enseignement supérieur français recrutant majoritairement sur concours parmi les élèves des classes préparatoires aux grandes écoles. Par extension, le terme est également associé à un petit nombre d'établissements de formation des hauts fonctionnaires français recrutant sur concours parmi les titulaires de la maîtrise ou d'un diplôme considéré comme equivalent. Enfin, de manière plus récente, le terme peut être associé à certains établissements d'enseignement supérieurs recrutant sur dossier ou concours directement, ou indirectement via des classes dites "préparatoires intégrées", au niveau du baccalauréat et délivrant un diplôme après généralement cinq années d'études postérieures au baccalauréat". Bref, au vu de cette dernière définition, j'ai du mal à voir clairement le lien entre la notion de "grande école" et celle d'élite, évoqué dans le premier paragraphe de de l'article, ou dans l'édito de la première page, 

ÉLITE, subst. fém.
I.− [Avec ou sans déterminant] Ce qu'il y a de meilleur dans un ensemble composé d'êtres ou de choses; produit d'une élection qui, d'un ensemble d'êtres ou de choses, ne retient que les meilleurs sujets. A.− Usuel. [À propos d'êtres hum.] 1. Au sing. Minorité d'individus auxquels s'attache, dans une société donnée, à un moment donné, un prestige dû à des qualités naturelles (race, sang) ou à des qualités acquises (culture, mérites).
2. Au plur. avec art. déf. (néol. début xxe s.). Classe minoritaire composée de gens qui, du fait de leur naissance et de leurs mérites, de leur culture et de leur capacité sont reconnus (ou se reconnaissent) comme les plus aptes soit à occuper les premières places de la société à laquelle ils appartiennent, soit à donner le ton à leur milieu
Moi qui ai enseigné dans de nombreuses grandes écoles, et dans plusieurs universités, je suis un peu agacé par cette ambiance actuelle de dévalorisation de l'université, car pour être honnête, j'ai eu à l'université plusieurs très bons élèves (meilleurs que des bons élèves d'école), et réciproquement, j'ai vu des élèves en école que je n'aurais jamais pensé avoir une licence à l'université... Bref, je trouve dangereux de mentir ainsi aux parents en dénigrant autant l'université (car ces journaux sont plus lus par les parents que par les lycéens qui s'interrogent - éventuellement - sur leur avenir). Ce qui me gêne également, c'est lorsque les décideurs politiques lisent ce genre d'article (voire certains responsable universitaires) et décident d'affecter des moyens colossaux dans des "écoles" (au détriment de l'université, car comme toujours depuis quelques années, le jeu est à somme nulle). Si vraiment l'université était si mauvaise que ça, je me demande ce qu'on attend pour toutes les fermer....
Fort heureusement, les recruteurs sont - pour l'instant - un peu moins bornés que certains.... Espérons que ça dure...