4. Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la
manipulation de donn´ees, des op´erations ´el´ementaires, la
vraie partie stat est parfois (souvent) tr`es faible...
5. Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la
manipulation de donn´ees, des op´erations ´el´ementaires, la
vraie partie stat est parfois (souvent) tr`es faible...
• Parce qu’on est pas des programmeurs ! Banane !
6. Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la
manipulation de donn´ees, des op´erations ´el´ementaires, la
vraie partie stat est parfois (souvent) tr`es faible...
• Parce qu’on est pas des programmeurs ! Banane !
→ Python et pas C ou Fortran qui sont plus hard
→ On fait plus de programmation qu’on pense, autant le
faire dans un langage pr´evu pour ¸ca.
7. Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la
manipulation de donn´ees, des op´erations ´el´ementaires, la
vraie partie stat est parfois (souvent) tr`es faible...
• Parce qu’on est pas des programmeurs ! Banane !
→ Python et pas C ou Fortran qui sont plus hard
→ On fait plus de programmation qu’on pense, autant le
faire dans un langage pr´evu pour ¸ca.
• Finalement, n’est-ce pas un biais culturel qui nous pousse
ver R ?
9. Introduction
But de la pr´esentation
• Une saine critique : R ne doit pas ˆetre compar´e qu’`a SAS
• Pr´esenter Python et ses atouts
• Parler de l’interface R et Python
10. Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une comparaison pratique : travail sur l’enquˆete patrimoine
2010
12. Python
C’est quoi ?
• Un langage de programmation simplifi´e.
• Libre et gratuit
• Utilis´e plus par des physiciens, financiers que des biologistes
• Et utilis´e pour g´en´erer des interfaces graphiques et des
applications
14. Python
Ses forces
• Lisible
• indentation obligatoire (pas d’accolade)
• conventions d’´ecriture bien partag´ees
• programmes courts
• noms explicites
• pas de d´eclaration de type
15. Python
Ses forces
• Lisible
• indentation obligatoire (pas d’accolade)
• conventions d’´ecriture bien partag´ees
• programmes courts
• noms explicites
• pas de d´eclaration de type
• Rapide
• Ne calcule que ce dont il a besoin (permet de renommer `a
loisir)
• Spontan´ement rapide (aucune comparaison entre une
boucle R et une boucle Python)
• Rapide `a ´ecrire.
18. Python
Ses forces
• Facile `a apprendre
• Possibilit´e de rentabiliser son travail
• La structure de classes
19. Python
Ses forces
• Facile `a apprendre
• Possibilit´e de rentabiliser son travail
• La structure de classes
• Plein de petites choses
• assert
• travail simple sur les chaines de caract`eres
• bons ´editeurs
• bonnes documentations ( + stackoverflow)
22. Python
Quelques faiblesses
• Visualisation des tables
• Plusieurs ´editeurs (a priori bons mais c’est plus simple
quand on n’a pas de choix, n’est-ce pas ?)
• Num´erote `a partir de z´ero
• Deux versions 2.7 et 3.3
• Doit convaincre, comme R `a ses d´ebuts
23. Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une comparaison pratique : travail sur l’enquˆete patrimoine
2010
25. Python pour les statisticiens
Les libraires in´evitable
• Numpy : la gestion des tableaux (tr`es rapide et l´eger)
26. Python pour les statisticiens
Les libraires in´evitable
• Numpy : la gestion des tableaux (tr`es rapide et l´eger)
• Pandas
• Index
• Subset
• Pas de probl`eme avec les valeurs manquantes
• Vecteur, DataFrame, TimeSeries
• et progresse
27. Python pour les statisticiens
Python et R
• package : rpy2
• lecture ´ecriture de table
• Appeler les fonctions de R
• A l’inverse possibilit´e de lancer Python depuis R.
28. Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une comparaison pratique : travail sur l’enquˆete patrimoine
2010
30. Plein de bonus avec Python
Des libraires
• Big Data
• Interface avec office (dont excel) : pywin32
• Utiliser Latex (Pytex)
• Webscrapping : scrapy
• Cartographie ?
• Ecrire en c, c++
• Interface avec YAML
• Documentation automatique (Sphinx)
• Analyse du temps de calcul (RunSnake)
Et ¸ca ´evolue sans cesse !
31. Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une comparaison pratique : travail sur l’enquˆete patrimoine
2010
34. Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissocier ce dont on a besoin et ce qu’on a
35. Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissocier ce dont on a besoin et ce qu’on a
→ Pr´evoir des imputations pour compl´eter les bases de
donn´ees
36. Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissocier ce dont on a besoin et ce qu’on a
→ Pr´evoir des imputations pour compl´eter les bases de
donn´ees
Concr`etement :
• Enquˆete patrimoine 2010
• Base ´etendue (dupliqu´ee) `a plus de 11 millions de lignes
37. Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissocier ce dont on a besoin et ce qu’on a
→ Pr´evoir des imputations pour compl´eter les bases de
donn´ees
Concr`etement :
• Enquˆete patrimoine 2010
• Base ´etendue (dupliqu´ee) `a plus de 11 millions de lignes
• Data cleaning
38. Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissocier ce dont on a besoin et ce qu’on a
→ Pr´evoir des imputations pour compl´eter les bases de
donn´ees
Concr`etement :
• Enquˆete patrimoine 2010
• Base ´etendue (dupliqu´ee) `a plus de 11 millions de lignes
• Data cleaning
• Imputation de d´eclarations fiscales, d’´etat de sant´e, etc.
• Fermeture de l’´echantillon (associer `a chaque enfants de la
base des parents fictifs dans la base).
40. Une comparaison
En R
• Un fichier central qui en appelle d’autres
• Des lapply(as.integer)
• une boucle sur 15 variables (cydeb1-cydeb15) prend
beaucoup de temps
• Taille de la base de donn´ees limitante (pour un probl`eme
quadratique)
• Gal`eres innommables pour la duplication des m´enages et la
gestions de identifiants (pour ne pas faire de groupby)
• Des load et des save un peu partout pour ne pas tout refaire
`a z´ero `a chaque modif mais avec les diff´erentes options c’est
pas g´enial
42. Une comparaison
En Python
• Une classe Data, les donn´ees n´ecessaires
• Contient certaines m´ethodes(=fonction) : extension de la
base, maitrise des formats de donn´ees,
43. Une comparaison
En Python
• Une classe Data, les donn´ees n´ecessaires
• Contient certaines m´ethodes(=fonction) : extension de la
base, maitrise des formats de donn´ees,
• Une sous-classe Patrimoine, l’ann´ee d’enquˆete est un
param`etre pour l’instant
• Contient la lecture, les corrections, le recodage de variables,
les imputations, etc.
44. Une comparaison
En Python
• Une classe Data, les donn´ees n´ecessaires
• Contient certaines m´ethodes(=fonction) : extension de la
base, maitrise des formats de donn´ees,
• Une sous-classe Patrimoine, l’ann´ee d’enquˆete est un
param`etre pour l’instant
• Contient la lecture, les corrections, le recodage de variables,
les imputations, etc.
• Pas de probl`eme m´emoire, ni de groupby bien g´er´es par
pandas.
• Des v´erifications (assert) dans le programme bien rassurant
• Beaucoup plus rapide qu’en R (environ 1min30 contre
7min30)
46. Python pour les statisticiens - Conclusion
Mon ressenti
• Pas plus compliqu´e que R du tout (peut-ˆetre mˆeme plus
simple)
• Moins de librairies orient´ee stat qu’en R
• Plus performant que R.
• Lecture des programmes beaucoup plus facile, mˆeme quand
ils sont complexes
Si je dois d´ebuter un projet aujourd’hui, je pr´ef`ere le
commencer en Python plutˆot qu’en R.
47. L’avenir de R s’´ecrit-il en Python ?
Alexis Eidelman
Institut des politiques publiques
FLtauR
Paris – 3 octobre 2013