Ricco Rakotomalala
[Link]
R.R. – Université Lyon 2 1
Tableaux et matrices
R est un « vrai » langage de programmation.
Le logiciel R propose de très nombreuses techniques statistiques
dont les résultats se présentent sous forme d’objets (avec un
ensemble de propriétés/attributs) que l’on peut manipuler.
Nous pouvons aller (nettement) plus loin en
programmant de nouvelles méthodes / procédures à
partir des résultats fournis par les techniques existantes.
R.R. – Université Lyon 2 2
Un exemple de technique statistique : la régression avec lm()
LES PROPRIÉTÉS DE L’OBJET
RÉGRESSION (LM)
R.R. – Université Lyon 2 3
L’objet « lm »
#chargement des données
data(mtcars)
#régression mpg vs. autres
variables
reg <- lm(mpg ~ ., data = mtcars)
print(reg)
print(class(reg))
#attributs de la régression
print(attributes(reg))
#accéder aux coefficients
print(reg$coefficients)
#quels coefficients sont > 0 ?
print(which(reg$coefficients > 0))
attributes() permet de connaître
les propriétés d’un objet R, qui
se présente comme une liste en
définitive
Ex. reg[[1]] reg$coefficients
R.R. – Université Lyon 2 4
L’objet [Link]
#summary d'une régression
[Link] <- summary(reg)
print([Link])
#ses attributs
print(attributes([Link]))
R.R. – Université Lyon 2 5
L’objet [Link] (suite)
#coefficient devient une matrice
print([Link]$coefficient)
#ex. colonne des p-value
print([Link]$coefficient[,4])
#accéder au R2
[Link]$[Link]
La 4ème colonne d’une
matrice est un vecteur…
Accès au R²
R.R. – Université Lyon 2 6
Recherche de la meilleure régression simple à partir d’un ensemble de
variables explicatives candidates
EXEMPLE : SÉLECTION DE
MODÈLES
R.R. – Université Lyon 2 7
Ecriture de la fonction
[Link] <- function(y,X){
#préparation vecteur recueil des R2
[Link] <- numeric(ncol(X))
#pour chaque variable candidate
• y : un vecteur représentant #on pourrait passer par un sapply() !
la variable cible. for (j in 1:ncol(X)){
z <- X[,j]
• X : data frame contenant reg.1 <- lm(y ~ z)
[Link].1 <- summary(reg.1)
un ensemble de variables [Link][j] <- [Link].1$[Link]
}
prédictives candidates. #nommer les R2 avec le nom des variables
• On cherche parmi ces names([Link]) <- colnames(X)
#affichage
variables celle qui prédit le print([Link])
#détection de l’indice de la meilleure variable
mieux y dans une régression [Link] <- [Link]([Link])
#récupération du nom de la variable
simple. [Link] <- names(X)[[Link]]
#formule pour la meilleure régression simple
formule <- paste("y",[Link],sep=" ~ ")
#régression avec la meilleure variable détectée
[Link] <- lm(formule,data=cbind(y,X))
return(summary([Link]))
}
R.R. – Université Lyon 2 8
Application sur les données « mtcars »
R² des régressions simples.
Prise individuellement, « wt »
se révèle être la meilleure
variable explicative.
Résultat détaillé de la
régression de « mpg » (y) sur
« wt ».
R.R. – Université Lyon 2 9
Conclusion - R est magique
De la documentation à profusion (n’achetez jamais des livres sur R)
Site du cours
[Link]
Programmation R
[Link]
Quick-R
[Link]
POLLS (Kdnuggets)
Data Mining / Analytics Tools Used
(R, 2nd ou 1er depuis 2010)
What languages you used for data mining / data analysis?
[Link]
(Août 2013, langage R en 1ère position)
Article New York Times (Janvier 2009)
“Data Analysts Captivated by R’s Power” - [Link]
computing/[Link]?_r=1
R.R. – Université Lyon 2 10