Vous êtes sur la page 1sur 47

R, une alternative à Sas ?

Arnaud Bringé, Ined


Atelier Sas Les-Matisse
10 mars 2005
Les petits déjeuners de l’Atelier Les-Matisse …
Sas® vous semble indigeste ?
Envie de prendre un bol d’R ?
Plan de la présentation
• Historique des logiciels libres
• Les différents types de logiciels libres
• La place des logiciels libres aujourd’hui
• Logiciels libres et statistiques
• Présentation du logiciel R
• Essai de comparatif R vs Sas
Etude Ined
• Stagiaire 2004, S. Thiebault, univ. Paris5
• Travail synthétique
• Focalisation sur l’apport de R
• Présentation inspirée de ce travail
Introduction aux logiciels libres
• Le projet GNU
• Caractérisation d’un logiciel libre
• Logiciels libre et open source
• Notion de copyleft
Le projet GNU
• Richard Stallman
• Environnement logiciel
• 1991 : Arrivée de Linux
• 1984 : Création de la FSF
Concept des logiciels libres
• Règles d’utilisation. 4 libertés
• Liberté d'exécuter le programme, pour tous les usages.
• Liberté d'étudier le fonctionnement du programme, et de
l'adapter à ses besoins.
• Liberté de redistribuer des copies.
• Liberté d'améliorer le programme et de publier ses
améliorations, pour en faire profiter toute la communauté..

• Manifeste GNU :
– http://www.gnu.org/gnu/manifesto.fr.html
Différents types de licences
• Licence GPL : General Public Licence
– http://www.gnu.org/licenses/gpl.html
– http://www.gnu.org/licenses/gpl-faq.fr.html

• Autres licences :
http://www.gnu.org/licenses/license-list.fr.html

• Licence CeCILL :
http://www.cecill.info/index.fr.html
Autres types de licence
• Freeware, gratuiciel
• Shareware, partagiciel
Licences et logiciels libres
• Logiciels Open Source
• Exemple de fracture :
– Environnements KDE et GNOME
Apport des logiciels libres
• Bien plus qu’un apport technique :
– Apport d’un cadre juridique
– Apport d’un modèle économique alternatif

• Développement par et grâce à Internet.


• Système économiquement viable ?
Internet et les logiciels libres
• Canal de distribution à coût nul
• Facilité pour travail coopératif
• Interactivité avec les utilisateurs
Avenir du modèle économique ?
• Support de grandes entreprises : Ibm, Sun
• Profits sur les services
• Nouveaux acteurs du marché
– Exemple : RedHat
• Développement des pays du Sud
• Pérennité des standards
Freins au développement des LL
• Coût de migration
• Pas encore complètement « User-Friendly »
• Risque de tensions entreprises-développeurs
• Brevets logiciels
Pourquoi utiliser des LL ?
• Coût du logiciel
• Evolutivité du logiciel
• Intégration dans une communauté
• Perennité des formats de fichiers
• Plus grande sécurité des logiciels.
Pourquoi ne pas utiliser des LL ?
• Coût de formation/migration important
• Frein intellectuel à l’innovation
• Travail en équipe, ou inter-institution
• Interfaçage pas encore « user-friendly »
Quelques exemples de LL
• Système :
– Linux, Cygwin
• Bureautique :
– OpenOffice
• Bases de données :
– MySQL, Postgre SQL
Quelques exemples de LL
• Retouche d’image :
– Gimp
• Navigateur Internet :
– Firefox, Mozilla
• Outil de messagerie :
– Thunderbird
Logiciels libres et statistiques
• R:
– http://www.r-project.org/
• TDA :
– http://www.stat.ruhr-uni-bochum.de/tda.html
• GRETL :
– http://gretl.sourceforge.net/
• ADDAD ?
Logiciels libres et statistiques
• Octave (maths)
– http://www.octave.org/
• Scilab (maths – Inria)
– http://scilabsoft.inria.fr/
Logiciels non GPL
• EpiInfo :
http://www.cdc.gov/epiinfo/

• CSPRO :
– Saisie d’enquêtes
– http://www.census.gov/ipc/www/cspro/
R : Principes
• Fenêtres de travail
• Langage de commandes
• Langage interprété
• Langage orienté objet
• Utilisation d’opérateurs et de fonctions
• Package de base et packages spécialisés
R : Contraintes
• Objets chargés en mémoire
• Sensible à la casse des caractères
R : aides
• Aide en ligne
• Forums utilisateurs
• Documentations associées

• Sites Web :
http://www.r-project.org/
http://cran.r-project.org/
R : Les objets
• Caractérisation
• Quelques types d’objets
R : Les objets (2)
• Caractérisation :
– Nom
– Attributs : mode et longueur

• Mode : Type des éléments de l’objet


• Types simples :
– Numérique / Caractère / Logique / Complexe.
• Longueur : Nombre d’éléments de l’objet
R : Gestion des objets
• Assignation
• Affichage du contenu d’un objet
• Affichage de la liste des objets disponibles
• Idem avec structure
• Descriptif du mode d’un objet
• Effacement d’un objet
R : Objets complexes
• Vecteur : Ensemble de données de même mode.
• Facteur : Représentation d'une variable catégorielle.
• Matrice : Tableau à 2 dimensions, tous les éléments étant
de même mode
• Array : Généralisation d'une matrice à des tableaux de
dimension supérieure à 2
• Data frame : Ensemble de vecteurs ou facteurs, de même
longueur, mais de modes différents.
• Liste : Ensemble pouvant contenir n'importe quel type
d'objet, y compris des objets de type liste.
• ts : Ensemble de séries temporelles.
R : Données Vecteur
• Création d’un vecteur :
– fonctions c, rep, seq, notation x:y
• Opérations sur les vecteurs
– Arithmétique, statistique, logique, tri
• Accès aux éléments d’un vecteur
R : Données Matrice
• Création d’une matrice :
– Fonction matrix
• Opérations sur une matrice :
– Opérations arithmétiques
– Multiplication matricielle
• Accès aux éléments d’une matrice
R : Données facteur
• Création d’un facteur
• Utilisation d’un facteur
R : Données Data Frame
• Création d’un data frame
• Exemples de data frame
• Accès aux entités d’un data frame
• Fusion de datas frames
• Concaténation de data frames
R : Calculs agrégés
• Fonctions apply, sapply, tapply
R : Importation
• Lecture de fichiers Sas
• Lecture de fichiers Stata
• Lecture de fichiers Excel
• Lecture de fichiers Ascii
R : Exportation
R : Traitements graphiques
• EDA très bien implanté
• Fonctions graphiques :
– Plot, pairs, hist
• Eléments graphiques :
– Légende, label,
R : Exemple graphique
• plot(1:5,1:20) # Nuage de points
• plot(1:5,1:20,type="l") # Points reliés par des lignes
• plot(1:5,1:20,type="l",main="Formation R ") # titre du graphique
• plot(1:5,1:20,type="l", xlab="Axe des abscisses) # titre axe horizontal

• load("idf.Rdata")
• barplot(table(idf$d)
• mean(idf[idf$d=="75",'ptot90'])
• boxplot(as.integer(idf$ptot90)~as.factor(idf$d))
• pairs(idf[,c('ptot75','ptot82','ptot90')])

• data(USArrests)
• attach(USArrests)
• plot(Murder,UrbanPop,cex=0.1)
• text(Murder,UrbanPop,rownames(USArrests),cex=0.7)
• plot(Murder,UrbanPop,cex=0.1,xlim=c(3,12)) # Zoom sur certaines valeurs
• text(Murder,UrbanPop,rownames(USArrests),cex=0.7)
• plot(Murder,UrbanPop,cex=0.1,xlim=c(5,7)) # Zoom sur certaines valeurs
• text(Murder,UrbanPop,rownames(USArrests),cex=0.7)
• load("idf.Rdata")
R : Eléments de Modélisation

• Modèle linéaire
• Modèle non linéaire
R : Modèle linéaire
• Fonction lm(formule,objet)
• Fonctions supplémentaires :
– Summary.lm: Résultats détaillés de la régression
– Predict.lm: Valeurs prédites par le modèle
– Residuals.lm: Résidus individuels de la régression
– Plot.lm: Aides à l'interprétation graphique de la
régression
– Coef : Coefficients du modèle
R : Modèle logistique
• Syntaxe :
– glm(formule,family=(binomial),data=objet)
R : Applications
• Etude n°1 :
– Pays du monde
• Etude n°2 :
– Exploitation enquête EHF
Problèmes rencontrés sous R
• Volumétrie des données
• Syntaxe compliquée
• Coût d’entrée important
Pourquoi préférer Sas
• Plus adapté aux masses de données
importantes
• Gestion des données plus aisée
• Traitements statistiques exploratoires plus
simples à mettre en oeuvre
Pourquoi préférer R
• Sources des fonctions disponibles
• Analyse exploratoire de données
• Evolutivité du logiciel
• Communauté d’utilisateurs active
• Communauté d’utilisateurs axée recherche
et enseignement
• Adapté à Linux
Sas vs R
• Alternatifs ou complémentaires ?
• Nécessité d’étudier les transferts de données

?
Liens Web
• Framasoft :
– http://www.framasoft.net
• Léa :
– http://lea-linux.org/
• April :
– http://www.april.org/
• Je Suis Libre :
– http://www.jesuislibre.org/
Questions ??