r versur python

47
L’avenir de R s’´ ecrit-il en Python ? Alexis Eidelman Institut des politiques publiques FLtauR Paris – 3 octobre 2013

Upload: francoismarical

Post on 30-Jun-2015

2.188 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: R versur Python

L’avenir de R s’ecrit-il en Python ?

Alexis Eidelman

Institut des politiques publiques

FLtauRParis – 3 octobre 2013

Page 2: R versur Python

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 requetes, de lamanipulation de donnees, des operations elementaires, lavraie partie stat est parfois (souvent) tres 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 lefaire dans un langage prevu pour ca.

• Finalement, n’est-ce pas un biais culturel qui nous poussever R ?

Page 3: R versur Python

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 requetes, de lamanipulation de donnees, des operations elementaires, lavraie partie stat est parfois (souvent) tres 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 lefaire dans un langage prevu pour ca.

• Finalement, n’est-ce pas un biais culturel qui nous poussever R ?

Page 4: R versur Python

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 requetes, de lamanipulation de donnees, des operations elementaires, lavraie partie stat est parfois (souvent) tres 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 lefaire dans un langage prevu pour ca.

• Finalement, n’est-ce pas un biais culturel qui nous poussever R ?

Page 5: R versur Python

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 requetes, de lamanipulation de donnees, des operations elementaires, lavraie partie stat est parfois (souvent) tres 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 lefaire dans un langage prevu pour ca.

• Finalement, n’est-ce pas un biais culturel qui nous poussever R ?

Page 6: R versur Python

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 requetes, de lamanipulation de donnees, des operations elementaires, lavraie partie stat est parfois (souvent) tres 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 lefaire dans un langage prevu pour ca.

• Finalement, n’est-ce pas un biais culturel qui nous poussever R ?

Page 7: R versur Python

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 requetes, de lamanipulation de donnees, des operations elementaires, lavraie partie stat est parfois (souvent) tres 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 lefaire dans un langage prevu pour ca.

• Finalement, n’est-ce pas un biais culturel qui nous poussever R ?

Page 8: R versur Python

Introduction

But de la presentation

• Une saine critique : R ne doit pas etre compare qu’a SAS

• Presenter Python et ses atouts

• Parler de l’interface R et Python

Page 9: R versur Python

Introduction

But de la presentation

• Une saine critique : R ne doit pas etre compare qu’a SAS

• Presenter Python et ses atouts

• Parler de l’interface R et Python

Page 10: R versur Python

Roadmap

1 Introduction

2 Presentation de Python

3 Python pour les statisticiens

4 Plein de bonus avec Python

5 Une comparaison pratique : travail sur l’enquete patrimoine2010

Page 11: R versur Python

Python

C’est quoi ?

• Un langage de programmation simplifie.

• Libre et gratuit

• Utilise plus par des physiciens, financiers que des biologistes

• Et utilise pour generer des interfaces graphiques et desapplications

Page 12: R versur Python

Python

C’est quoi ?

• Un langage de programmation simplifie.

• Libre et gratuit

• Utilise plus par des physiciens, financiers que des biologistes

• Et utilise pour generer des interfaces graphiques et desapplications

Page 13: R versur Python

Python

Ses forces

• Lisible• indentation obligatoire (pas d’accolade)• conventions d’ecriture bien partagees• programmes courts• noms explicites• pas de declaration de type

• Rapide• Ne calcule que ce dont il a besoin (permet de renommer a

loisir)• Spontanement rapide (aucune comparaison entre une

boucle R et une boucle Python)• Rapide a ecrire.

Page 14: R versur Python

Python

Ses forces

• Lisible• indentation obligatoire (pas d’accolade)• conventions d’ecriture bien partagees• programmes courts• noms explicites• pas de declaration de type

• Rapide• Ne calcule que ce dont il a besoin (permet de renommer a

loisir)• Spontanement rapide (aucune comparaison entre une

boucle R et une boucle Python)• Rapide a ecrire.

Page 15: R versur Python

Python

Ses forces

• Lisible• indentation obligatoire (pas d’accolade)• conventions d’ecriture bien partagees• programmes courts• noms explicites• pas de declaration de type

• Rapide• Ne calcule que ce dont il a besoin (permet de renommer a

loisir)• Spontanement rapide (aucune comparaison entre une

boucle R et une boucle Python)• Rapide a ecrire.

Page 16: R versur Python

Python

Ses forces

• Facile a apprendre

• Possibilite de rentabiliser son travail• La structure de classes

• Plein de petites choses• assert• travail simple sur les chaines de caracteres• bons editeurs• bonnes documentations ( + stackoverflow)

Page 17: R versur Python

Python

Ses forces

• Facile a apprendre

• Possibilite de rentabiliser son travail• La structure de classes

• Plein de petites choses• assert• travail simple sur les chaines de caracteres• bons editeurs• bonnes documentations ( + stackoverflow)

Page 18: R versur Python

Python

Ses forces

• Facile a apprendre

• Possibilite de rentabiliser son travail• La structure de classes

• Plein de petites choses• assert• travail simple sur les chaines de caracteres• bons editeurs• bonnes documentations ( + stackoverflow)

Page 19: R versur Python

Python

Ses forces

• Facile a apprendre

• Possibilite de rentabiliser son travail• La structure de classes

• Plein de petites choses• assert• travail simple sur les chaines de caracteres• bons editeurs• bonnes documentations ( + stackoverflow)

Page 20: R versur Python

Python

Quelques faiblessesIl faut parfois se battre avec Python...

Page 21: R versur Python

Python

Quelques faiblessesIl faut parfois se battre avec Python...

Page 22: R versur Python

Python

Quelques faiblesses

• Visualisation des tables

• Plusieurs editeurs (a priori bons mais c’est plus simplequand on n’a pas de choix, n’est-ce pas ?)

• Numerote a partir de zero

• Deux versions 2.7 et 3.3

• Doit convaincre, comme R a ses debuts

Page 23: R versur Python

Roadmap

1 Introduction

2 Presentation de Python

3 Python pour les statisticiens

4 Plein de bonus avec Python

5 Une comparaison pratique : travail sur l’enquete patrimoine2010

Page 24: R versur Python

Python pour les statisticiens

Les libraires inevitable

• Numpy : la gestion des tableaux (tres rapide et leger)

• Pandas• Index• Subset• Pas de probleme avec les valeurs manquantes• Vecteur, DataFrame, TimeSeries• et progresse

Page 25: R versur Python

Python pour les statisticiens

Les libraires inevitable

• Numpy : la gestion des tableaux (tres rapide et leger)

• Pandas• Index• Subset• Pas de probleme avec les valeurs manquantes• Vecteur, DataFrame, TimeSeries• et progresse

Page 26: R versur Python

Python pour les statisticiens

Les libraires inevitable

• Numpy : la gestion des tableaux (tres rapide et leger)

• Pandas• Index• Subset• Pas de probleme avec les valeurs manquantes• Vecteur, DataFrame, TimeSeries• et progresse

Page 27: R versur Python

Python pour les statisticiens

Python et R

• package : rpy2

• lecture ecriture de table

• Appeler les fonctions de R

• A l’inverse possibilite de lancer Python depuis R.

Page 28: R versur Python

Roadmap

1 Introduction

2 Presentation de Python

3 Python pour les statisticiens

4 Plein de bonus avec Python

5 Une comparaison pratique : travail sur l’enquete patrimoine2010

Page 29: R versur Python

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 !

Page 30: R versur Python

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 !

Page 31: R versur Python

Roadmap

1 Introduction

2 Presentation de Python

3 Python pour les statisticiens

4 Plein de bonus avec Python

5 Une comparaison pratique : travail sur l’enquete patrimoine2010

Page 32: R versur Python

Une comparaison

Contexte

• Produire une statistique mais potentiellement a partir dedifferents jeux de donnees→ Dissocier ce dont on a besoin et ce qu’on a→ Prevoir des imputations pour completer les bases dedonnees

Concretement :

• Enquete patrimoine 2010

• Base etendue (dupliquee) a plus de 11 millions de lignes

• Data cleaning

• Imputation de declarations fiscales, d’etat de sante, etc.

• Fermeture de l’echantillon (associer a chaque enfants de labase des parents fictifs dans la base).

Page 33: R versur Python

Une comparaison

Contexte

• Produire une statistique mais potentiellement a partir dedifferents jeux de donnees

→ Dissocier ce dont on a besoin et ce qu’on a→ Prevoir des imputations pour completer les bases dedonnees

Concretement :

• Enquete patrimoine 2010

• Base etendue (dupliquee) a plus de 11 millions de lignes

• Data cleaning

• Imputation de declarations fiscales, d’etat de sante, etc.

• Fermeture de l’echantillon (associer a chaque enfants de labase des parents fictifs dans la base).

Page 34: R versur Python

Une comparaison

Contexte

• Produire une statistique mais potentiellement a partir dedifferents jeux de donnees→ Dissocier ce dont on a besoin et ce qu’on a

→ Prevoir des imputations pour completer les bases dedonnees

Concretement :

• Enquete patrimoine 2010

• Base etendue (dupliquee) a plus de 11 millions de lignes

• Data cleaning

• Imputation de declarations fiscales, d’etat de sante, etc.

• Fermeture de l’echantillon (associer a chaque enfants de labase des parents fictifs dans la base).

Page 35: R versur Python

Une comparaison

Contexte

• Produire une statistique mais potentiellement a partir dedifferents jeux de donnees→ Dissocier ce dont on a besoin et ce qu’on a→ Prevoir des imputations pour completer les bases dedonnees

Concretement :

• Enquete patrimoine 2010

• Base etendue (dupliquee) a plus de 11 millions de lignes

• Data cleaning

• Imputation de declarations fiscales, d’etat de sante, etc.

• Fermeture de l’echantillon (associer a chaque enfants de labase des parents fictifs dans la base).

Page 36: R versur Python

Une comparaison

Contexte

• Produire une statistique mais potentiellement a partir dedifferents jeux de donnees→ Dissocier ce dont on a besoin et ce qu’on a→ Prevoir des imputations pour completer les bases dedonnees

Concretement :

• Enquete patrimoine 2010

• Base etendue (dupliquee) a plus de 11 millions de lignes

• Data cleaning

• Imputation de declarations fiscales, d’etat de sante, etc.

• Fermeture de l’echantillon (associer a chaque enfants de labase des parents fictifs dans la base).

Page 37: R versur Python

Une comparaison

Contexte

• Produire une statistique mais potentiellement a partir dedifferents jeux de donnees→ Dissocier ce dont on a besoin et ce qu’on a→ Prevoir des imputations pour completer les bases dedonnees

Concretement :

• Enquete patrimoine 2010

• Base etendue (dupliquee) a plus de 11 millions de lignes

• Data cleaning

• Imputation de declarations fiscales, d’etat de sante, etc.

• Fermeture de l’echantillon (associer a chaque enfants de labase des parents fictifs dans la base).

Page 38: R versur Python

Une comparaison

Contexte

• Produire une statistique mais potentiellement a partir dedifferents jeux de donnees→ Dissocier ce dont on a besoin et ce qu’on a→ Prevoir des imputations pour completer les bases dedonnees

Concretement :

• Enquete patrimoine 2010

• Base etendue (dupliquee) a plus de 11 millions de lignes

• Data cleaning

• Imputation de declarations fiscales, d’etat de sante, etc.

• Fermeture de l’echantillon (associer a chaque enfants de labase des parents fictifs dans la base).

Page 39: R versur Python

Une comparaison

En R

• Un fichier central qui en appelle d’autres

• Des lapply(as.integer)

• une boucle sur 15 variables (cydeb1-cydeb15) prendbeaucoup de temps

• Taille de la base de donnees limitante (pour un problemequadratique)

• Galeres innommables pour la duplication des menages et lagestions de identifiants (pour ne pas faire de groupby)

• Des load et des save un peu partout pour ne pas tout refairea zero a chaque modif mais avec les differentes options c’estpas genial

Page 40: R versur Python

Une comparaison

En R

• Un fichier central qui en appelle d’autres

• Des lapply(as.integer)

• une boucle sur 15 variables (cydeb1-cydeb15) prendbeaucoup de temps

• Taille de la base de donnees limitante (pour un problemequadratique)

• Galeres innommables pour la duplication des menages et lagestions de identifiants (pour ne pas faire de groupby)

• Des load et des save un peu partout pour ne pas tout refairea zero a chaque modif mais avec les differentes options c’estpas genial

Page 41: R versur Python

Une comparaison

En Python

• Une classe Data, les donnees necessaires

• Contient certaines methodes(=fonction) : extension de labase, maitrise des formats de donnees,

• Une sous-classe Patrimoine, l’annee d’enquete est unparametre pour l’instant

• Contient la lecture, les corrections, le recodage de variables,les imputations, etc.

• Pas de probleme memoire, ni de groupby bien geres parpandas.

• Des verifications (assert) dans le programme bien rassurant

• Beaucoup plus rapide qu’en R (environ 1min30 contre7min30)

Page 42: R versur Python

Une comparaison

En Python

• Une classe Data, les donnees necessaires

• Contient certaines methodes(=fonction) : extension de labase, maitrise des formats de donnees,

• Une sous-classe Patrimoine, l’annee d’enquete est unparametre pour l’instant

• Contient la lecture, les corrections, le recodage de variables,les imputations, etc.

• Pas de probleme memoire, ni de groupby bien geres parpandas.

• Des verifications (assert) dans le programme bien rassurant

• Beaucoup plus rapide qu’en R (environ 1min30 contre7min30)

Page 43: R versur Python

Une comparaison

En Python

• Une classe Data, les donnees necessaires

• Contient certaines methodes(=fonction) : extension de labase, maitrise des formats de donnees,

• Une sous-classe Patrimoine, l’annee d’enquete est unparametre pour l’instant

• Contient la lecture, les corrections, le recodage de variables,les imputations, etc.

• Pas de probleme memoire, ni de groupby bien geres parpandas.

• Des verifications (assert) dans le programme bien rassurant

• Beaucoup plus rapide qu’en R (environ 1min30 contre7min30)

Page 44: R versur Python

Une comparaison

En Python

• Une classe Data, les donnees necessaires

• Contient certaines methodes(=fonction) : extension de labase, maitrise des formats de donnees,

• Une sous-classe Patrimoine, l’annee d’enquete est unparametre pour l’instant

• Contient la lecture, les corrections, le recodage de variables,les imputations, etc.

• Pas de probleme memoire, ni de groupby bien geres parpandas.

• Des verifications (assert) dans le programme bien rassurant

• Beaucoup plus rapide qu’en R (environ 1min30 contre7min30)

Page 45: R versur Python

Python pour les statisticiens - Conclusion

Mon ressenti

• Pas plus complique que R du tout (peut-etre meme plussimple)

• Moins de librairies orientee stat qu’en R

• Plus performant que R.

• Lecture des programmes beaucoup plus facile, meme quandils sont complexes

Si je dois debuter un projet aujourd’hui, je prefere lecommencer en Python plutot qu’en R.

Page 46: R versur Python

Python pour les statisticiens - Conclusion

Mon ressenti

• Pas plus complique que R du tout (peut-etre meme plussimple)

• Moins de librairies orientee stat qu’en R

• Plus performant que R.

• Lecture des programmes beaucoup plus facile, meme quandils sont complexes

Si je dois debuter un projet aujourd’hui, je prefere lecommencer en Python plutot qu’en R.

Page 47: R versur Python

L’avenir de R s’ecrit-il en Python ?

Alexis Eidelman

Institut des politiques publiques

FLtauRParis – 3 octobre 2013