Télécharger - Cours en Ligne

Transcription

Télécharger - Cours en Ligne
Introduction à R
R est un logiciel libre de calcul statistique basé sur un environnement orienté objet et sur
le langage de programmation S. Il est constitué d’un noyau de base et de multiples packages
développés et mis à disposition de tous par des utilisateurs.
Dans sa version de base il est utilisable en mode commande, mais plusieurs packages fournissent
un mode interfacé.
De nombreuses introductions, documentations et tutoriaux sont disponibles en français et en
anglais sur internet.
1
Installation
Télécharger R sur le site http://www.r-project.org/ (Download, CRAN, mirror, Windows,
base, R-nnn-win.exe) et procéder à l’installation.
Télécharger et installer Rstudio (RStudio.org).
Ouvrir Rstudio.
En version de base, seuls quelques packages les plus courants sont disponibles. Pour des analyses
plus spécialisées on peut avoir accès aux fonctions d’autres packages. Pour cela il faut les charger
s’ils ont déjà été installés, ou les installer sinon (onglet Packages dans la fenêtre en bas à gauche).
2
Aide
R possède une aide très sophistiquée, accessible par l’onglet Help dans la fenêtre en bas à
gauche. Les exemples proposés à la fin de la description des fonctions aident beaucoup en
général à comprendre leur fonctionnement.
3
Scripts
R marche en mode commande mais la plupart du temps pour des programmes un peu longs
on utilise un fichier script. Pour créer un nouveau script ou en ouvrir un nouveau on utilise
l’éditeur disponible dans la fenêtre en haut à droite. On peut exécuter une commande de cette
fenêtre en plaçant le curseur sur la ligne et en cliquant sur le bouton Run, ou un groupe de
commandes en les surlignant et en cliquant sur le bouton Run.
4
Lecture de données
Copier le fichier Promo-Agro93.xls dans votre répertoire de travail. Le convertir en fichier txt
(séparateur tab) et csv (séparateur ” ;”) .
Sous R il faut d’abord se placer dans le répertoire de trvail
setwd(’N:/Monrepertoire/TDStat/’)
Lecture des fichiers :
AGRO = read.csv(’Promo-Agro93.csv’,header=TRUE,sep=’;’)
names(AGRO)
AGRO = read.table(’Promo-Agro93.txt’,skip=1)
names(AGRO) = c(’Date’,’Promo’,’Taille’,’Poids’,’Pointure’,’Age’,’Sexe’)
1
Affichage des données
AGRO
AGRO$Age
attach(AGRO);Age
Attention : éviter d’attacher plusieurs fois de suite un tableau de données. Pour détacher les
données
detach(AGRO)
5
Objets
R travaille avec des objets. Les données, les graphiques, les fonctions, les résultats d’analyse
sont des objets. Les objets les plus courants sont :
vector vecteur composé d’une seule variable
data.frame tableau de données. Il contient le nom des variables.
list liste d’objet, généralement le résultat d’une analyse. Chaque élément de la liste est accessible en tapant le nom de la liste suivi du symbole $ et du nom de l’élément.
La plupart des objets ont un attribut de classe. Les plus courants sont numeric, logical, integer,
factor, character, data.frame, ....
objects()
class(AGRO)
class(Sexe)
class(Pointure)
class(Pointure/10)
6
6.1
Langage de commandes
Opérateurs
Opérateurs mathématiques : +, ∗, /, −,ˆ
Poids/(Taille/100)^2
Opérateurs logiques : & (et), | (ou), ! (négation), == (identité)
(Poids < 50) & (Sexe ==’M’)
Fonctions mathématiques : sqrt(), log(), exp(), ...
sqrt(Poids)
Fonctions statistiques : min(), max(), sum(), mean(), var(), median(), range(), order(), ...
mean(Poids)
var(Poids)
min(Age)
range(Age)
summary(AGRO)
sort(Taille)
2
Opérations vectorielles :
concaténation éléments : c(), colonnes : cbind(), lignes : rbind()
c(3,5,-1)
cbind(Poids,Taille,Poids/(Taille/100)^2)
extraction vec[i], mat[i, j], mat[, j]
(i : ligne, j : colonne)
Poids[9]
Poids[Sexe==’F’]
AGRO[5,2]
AGRO[,5]
AGRO[Promo==1994,5]
suppression vec[−i]
AGRO[,-5]
multiplication matricielle % ∗ %
fonctions sur des colonnes d’un tableau : apply(tab,2,fun), sur les lignes : apply(tab,1,fun)
apply(AGRO[,3:6],2,max)
tapply(Taille,Sexe,mean)
6.2
Création de variables
Au départ R utilisait les symboles <− pour l’affectation. Mais les versions récentes admettent
également le symbole = pour l’affectation.
IMC <- Poids/(Taille/100)^2
IMC = Poids/(Taille/100)^2
Le résultat n’est plus affiché. Pour le visualiser il suffit de taper son nom, ou d’utiliser la fonction
print.
IMC
print(IMC)
6.3
Fonctions
Une fonction associe un objet (la sortie) à un ensemble d’objets (les arguments d’entrée).
Les arguments d’entrée peuvent être définis par défaut. Ils sont associés à un nom générique
qui peut être omis si l’ordre des arguments est celui de la définition. L’objet en sortie est le
plus souvent une liste. La description des fonctions de R est accessible par l’aide en ligne en
tapant ?nomdelafonction.
?seq
seq(1,10)
seq(to=10,from=1,by=1)
seq(to=10,from=1,l=10)
seq(1,10,2)
seq(1,10,l=5)
tri = sort(Taille, index.return=TRUE)
tri$x;tri$ix
3
6.4
programmation
Boucles et tests
boucles
for (indices in vecindices){ instructions }
while (condition) { instructions }
tests
if (condition){ instructions
} else { instructions }
fonction
sortie = function(arg1=defaut1,arg2=defaut2,...){
instructions
return(sortie) }
fIMC = function(pds,taille){
vMessage=c(’Denutrition’,’Maigreur’,’Normal’,’Surpoids’,
’Obesite moderee’,’Obesite severe’,’Obesite massive’)
seuils = c(16.5,18.5,25,30,35,40)
imc = pds/(taille/100)^2
indMes = findInterval(imc,seuils)
IMCres = list(imc=imc,message=vMessage[indMes+1])
return(IMCres)
}
fIMC(Poids,Taille);fIMC(58,165)
7
Graphiques
Le graphique de base est obtenu par la fonction plot(x,y) qui admet de multiples options.
plot(Taille, Poids)
couleur = rep(’blue’,length(Taille))
couleur[Sexe ==’F’]=’deeppink’
plot(Taille, Poids, pch=20, cex=0.8, col=couleur, xlab=’Taille (cm)’,
ylab=’Poids (Kg)’, main=’Promos 94, 95 et 96’)
legend(’topleft’,legend=c(’Garcons’,’Filles’),pch=20,col=c(’blue’,’deeppink’),
cex=1.2)
x=seq(150,205);y=x-110
lines(x,y,lwd=2)
points(mean(Taille),mean(Poids),cex=1.5,pch=20)
text(175,90,"Garçons")
text(155,60,"Filles")
8
Sauvegarde
R propose à la fin de chaque session de sauvegarder tout l’espace de travail. Celui-ci est en
général énorme et contient beaucoup d’objets intermédiaires inutiles. Pour sauvegarder uniquement quelques objets, utiliser la fonction save(). Pour charger les données sauvegardées utiliser
la fonction load().
4
save(Taille,Poids,IMC,file=’sauve.res’)
rm(IMC); IMC;
load(’sauve.res’); IMC
Pour sauvegarder un tableau de donnéees au format ASCII utiliser la fonction write.table()
tab = cbind(Sexe,round(IMC,2))
write.table(tab,file=’IMC.txt’,quote=FALSE,row.names=FALSE,col.names=c(’Sexe’,’IMC’))
Pour sauvegarder un graphique on peut utiliser le menu de la fenêtre graphique (fichier,sauver
sous).
9
Distributions et simulations
R donne les lois de probabilités, les quantiles et permet la simulation de nombreuses distributions. Si nomloi est le nom de la loi (par exemple norm pour normale, binom pour binomiale...)
les fonctions qnomloi(), pnomloi(), dnomloi(), rnomloi() donnent les quantiles, la fonction de
réparition, la densité, et des simulations de la loi nomloi.
qnorm(0.95)
pnorm(1.96)
# simulation d’une loi exponentielle
#----------------------------------n = 100
u = rexp(n)
hist(u,probability=TRUE)
x=seq(0,5,0.1)
y = dexp(x)
lines(x,y,col=’red’)
10
Régression et ANOVA
La fonction de base pour le modèle linéaire est lm(formula, ...) (pour Linear Model). Mais il
en existe d’autres telles que aov() pour Analysis Of Variance, glm() pour Generalized Linear
Model. formula décrit le modèle sous la forme
variable expliquée ∼ variables explicatives
avec les conventions suivantes :
V 1 + V 2 : pas d’interaction,
V 1 : V 2 interaction de V1 et V2,
V 1 ∗ V 2 = V 1 + V 2 + V 1 : V 2.
boxplot(Taille ~ Sexe)
cor(Taille,Poids)
cor(Taille[Sexe==’F’],Poids[Sexe==’F’])
cor(AGRO[,3:6])
pairs(AGRO)
# test d’egalite
#--------------5
var.test(Taille~Sexe)
t.test(Taille~Sexe)
t.test(Taille~Sexe,var.equal=TRUE)
# Regression Poids sur Taille
#---------------------------regressionF = lm(Poids ~Taille,subset = Sexe==’F’)
summary(regressionF)
opar = par(mfrow = c(2,2), oma = c(0, 0, 1.1, 0))
plot(regressionF)
par(opar)
newTaille = data.frame(Taille=seq(140,185,5))
predicF = predict(regressionF,newTaille,interval=’prediction’)
plot(Taille[Sexe==’F’],Poids[Sexe==’F’],pch=19,
main=’Intervalles de prediction’,xlab=’Taille (cm)’,ylab=’Poids (Kg)’)
matplot(newTaille$Taille,predicF,add=TRUE,lty=c(1,2,2),type=’l’)
# Regression multiple
#-------------------cor(AGRO[Sexe==’F’,3:6])
regMultF = lm(Poids ~ Taille + Pointure + Age, subset=Sexe==’F’)
summary(regMultF)
plot(regMultF)
# Analyse de la variance
#----------------------ClAge = Age
ClAge[Age>=25]=25
ClAge = as.factor(ClAge)
table(Sexe,ClAge)
AnovaF = lm(Poids ~ Sexe*ClAge)
summary(AnovaF)
anova(AnovaF)
# Analyse de la covariance
#------------------------Anaco = lm(Poids ~ Sexe*Taille)
summary(Anaco)
anova(Anaco)
6

Documents pareils