Cours Air : les Vecteurs, les matrices et les fichiers


Télécharger Cours Air : les Vecteurs, les matrices et les fichiers

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Introduction au logiciel R

R est un logiciel libre, clone d’un autre logiciel très célèbre dans la communauté statisticienne S+. Il peut être téléchargé gratuitement sur .

Sur ce site vous trouverez également des documentations très complètes, notamment le manuel d’Emmanuel Paradis, chercheur en biologie à…Montpellier

Comme tous les logiciels libres, le développement et l’amélioration de R peuvent être effectués par tout un chacun. Les développeurs insistent sur le fait que R permet un calcul vectoriel lui ouvrant des applications dans d’autres domaines que les statistiques.

Outre les diverses procédures intégrées, R est très connu pour son interface graphique souple et qui permet d’exporter des graphiques de très bonne qualité à des formats variés très simplement. Enfin, contrairement à d’autres logiciels « boîtes noires », R oblige son utilisateur à une programmation minimale.

Avant de commencer :

3     Les lignes de commandes peuvent être rappelées avec les flèches « haut » et « bas », comme sous Unix. L’ensemble des commandes que vous passez est gardée en mémoire dans un fichier .history

4     Vous allez créer des « objets » (variables, fonctions…). Tout est stocké dans un gros fichier générique nommé .Rdata. Mais vous avez bien sûr la possibilité de stocker vos données dans des fichiers propres (Ex : tp.Rdata). Créez vous ce fichier dans un répertoire personnel.

5     Le nom d'un objet doit obligatoirement commencer par une lettre et peut comporter outre des lettres, des chiffres et des points. Il faut également savoir que R distingue, pour les noms des objets, les majuscules des minuscules. L'objet de base est le vecteur.

6     En cas de doute ou de problème sur la syntaxe d’une commande, vous pouvez obtenir l’aide en ligne de façon très simple ; il suffit de taper le nom de la commande précédé de « ? ». Vous pouvez également utiliser l’aide html (onglet « Help »).

Que fait la commande demo? Pensez à utiliser l'aide!

A/ Vecteurs

Un objet peut être créé avec l'opérateur "assigner" qui s'écrit avec une flèche composée d'un signe inférieur (ou supérieur) accolé au signe moins, ce symbole pouvant être orienté dans un sens ou dans l'autre.

>n<-15    #affecte à l'objet de nom n la valeur 15

>n           # le nom de l'objet affiche son contenu [1] 15

>5->x      #affecte à l'objet de nom x la valeur 5

>x

[1] 5

>x<-n

Que vaut x? n?

>n<-3+gamma(5)     #gamma(5)=4 factoriel

>choose(6,3)            #combinaison de k parmi n

>is.vector(x)             #est-ce que x est un vecteur?

Création de vecteurs

Testez les lignes de commandes suivantes

> x<-1:6

> y<-c(1,4,2,5,4,3)

> z<-paste("X",1:10,sep="")

> rep("a",3)

> rep(1,4)

> rep(c(2,3),4)

> rep(c(2,3),c(4,4))

> rep(1:4,2)

> rep(1:4,1:4)

> seq(from=1,to=10,by=0.5)

> seq(from=1,to=10,length=19) > rev(6:12)

Opération arithmétiques sur les vecteurs

+, -, *, ^, /,sqrt(), log(), exp(), abs()

> z<-c(-2,-5,3,6)

> 2*sqrt(abs(z)^2+3)

[1]  5.291503 10.583005  6.928203 12.489996

Opération logiques sur les vecteurs

Testez les lignes de commandes suivantes

> x<-1:6

> y<-c(1,4,2,5,4,3)

> x<y

> x>y

> x==y

> x!=y

> (x<=3)&(y>3) > (x<=3)|(y>3)

Autres fonctions utilisables sur les vecteurs. A essayer!

> min(y)

> max(y) > sum(y)

> sort(y)

> prod(y)

> length(y) > rank(y)

Extraction d'éléments

> y[2]

> y[length(y)]

> y[2:4]

> y[2]<-0

> y

B/ Matrices

Création de matrices

> x<-1:12

> Z<-matrix(x,ncol=3)



> Z

     [,1] [,2] [,3]

[1,]    1    5    9

[2,]    2    6   10

[3,]    3    7   11

[4,]    4    8   12

> Zbis<-cbind(Z,c(rep(8,4)))

Regardez ce que vaut à présent Zbis!

> colnames(Zbis)<-c("col1","col2","col3","col4") > rownames(Zbis)<-paste("Y",1:4,sep="")

Et maintenant?

Que fait la ligne suivante?

> c(Zbis)

Extraction d'éléments

Testez les lignes de commandes suivantes

> Zbis[2,]

> Zbis[,2]

> Zbis[2,2]

Opérations sur les matrices

Testez les lignes de commandes suivantes

> t(Zbis)

> dim(Zbis)

> ncol(Zbis)

> nrow(Zbis)

> Zbis%*%Z

C/ Entrées/Sorties par fichiers

-      Possibilité de sauvegarde dans le répertoire de travail de la variable dat dans le fichier monfichier en utilisant un espace comme séparateur :

> write.table(dat,file="",sep=" ")

-      Possibilité de récupérer les données d'un fichier dans le dossier de travail : > recupdonnées<-read.table("") - La commande source permet la lecture et l'éxécution de commandes stockées dans un fichier :

> source("mescommandes.R")

Pensez à utiliser l'aide de ces fonctions pour plus d'infos notamment sur les possibles paramètres.

D/ Graphiques sous R

x<-seq(0,10,length=50)

y<-sqrt(x) plot(x,y)

plot(x,y,type="l")      #Essayer aussi type="s","h"

par(mfrow=c(2,2))

plot(x,y,type="l",xlab="abscisses",ylab="ordonnées",main="mon premier

graphe partitionné avec R",las=1,=0.7) plot(x,y,type="s") plot(x,y,pch="s") plot(x,y,pch=17)

La gestion des graphiques sous R pourrait à elle seule donner l’occasion d’une séance de TD bien remplie. On distingue dans R

7     des commandes graphiques « haut-niveau » qui vont créer un graphe ou la base d’un graphe : plot, pairs, hist, pie, etc…

8     des commandes graphiques « bas-niveau » qui se rajoutent à un graphe existant : points, lines, abline, legend, locator…

Les paramètres graphiques (taille des caractères, couleurs, axes, arrière plan, etc) peuvent être directement entrés en option des commandes de haut niveau ou être gérés globalement par la commande par() (68 paramètres différents).

Sauvegarde des graphiques : Les graphiques peuvent être sauvegardés en ps, pdf, jpeg... Regardez l'aide des commandes ps, pdf, jpeg...

E/ Simulation de variables aléatoires

Elle est enfantine sous R. Simulation de n variables pour quelques lois célèbres (R peut simuler 18 lois différentes) :

Loi

Commande

Poisson(m)

rpois(n,m)

Binomiale(k,p)

rbinom(n,k,p)

Poisson(l)

rpois(n,l)

Uniforme(a,b)

runif(n,a,b)

Normale(m,s²)

rnorm(n,m,s)

Exponentielle(m)

rexp(n,m)

En remplaçant r par d, p ou q devant le nom de la loi , on peut également obtenir les valeurs



9   de la densité (Ex : dnorm(1))

10   de la fonction de répartition (Ex : pnorm(0)) 11           des quantiles (Ex : qnorm(1.96))

x<-rnorm(50,0,1) y<-rep(0,50) plot(x,y,pch=20)

1/ Effectuez quelques autres tentatives en changeant les paramètres (50,0,1)

2/ Réiterez avec quelques unes des lois mentionnées dans le tableau ci-dessus et vues en cours.

Exemple:

x<-runif(50,0,1) y<-rep(0,50) plot(x,y,pch=20)

3/ Que se passe-t-il en reprenant la même séquence pour des variables aléatoires discrètes ? Essayez alors par exemple :

x<-rpois(50,5) plot(x)

4/ Tapez dpois(1,5). A quoi cela correspond-il? Retrouvez la valeur mathématiquement.

5/

x<-seq(0,1,length=1000) y1<-dunif(x,0,1) y2<-punif(x) par(mfrow=c(1,2)) plot(x,y1,type="l") plot(x,y2,type="l")

A quoi correspond le graphe ainsi obtenu?

Et celui-ci?

x<-seq(0,1,length=1000)

y1<-qnorm(x) xp<-dnorm(y1) par(mfrow=c(1,2)) plot(y1,xp,type="l") plot(y1,x,type="l")

 ou encore celui-ci?

y1b<-qnorm(x,0,0.7) xpb<-dnorm(y1,0,0.7) par(mfrow=c(2,2)) plot(y1,xp,type="l") plot(y1,x,type="l")

plot(y1b,xpb,type="l",xlim=c(-3,3)) plot(y1b,x,type="l",xlim=c(-3,3))

F/ La représentation des données

Nous allons voir que R peut, grâce à son interface graphique, nous permettre de représenter les données simulées.

x<-rnorm(200,0,1) hist(x) hist(x,freq=FALSE) hist(x,freq=FALSE,breaks=5) plot(density(x))

Que se passe-t-il sur ces deux dernières commandes ?

lines permet de superposer un plot à une figure déjà existante. Essayez alors

hist(x,freq=FALSE,breaks=5) lines(density(x),col="red") En fait la fonction hist n’est pas bien adaptée à la représentation des variables discrètes. x<-rpois(50,5) eff<-table(x) barplot(eff)

Vous obtenez un diagramme en bâtons.

Premier exemple de fonction

Recopiez la petite fonction ci-dessous et dites quelle est son utilité.

po<-function(n,lambda){ p<-0

for (i in 1:n) p[i]<-dpois(x=i,lambda=lambda) plot(p,type="h")} puis effectuez po(20,5) et recommencez en variant les exemples. Généralisez à d’autres lois discrètes.

Vecteurs aléatoires de taille 2.

x<-rnorm(200,0,1) y<-rnorm(200,0,0.2) plot(x,y)

Que fait-on ici ? Comparez avec :

plot(x,y,xlim= c(-2,2),ylim= c(-2,2),pch=20)

Qu’a-t-on fait ?

z1<-(x+y)/sqrt(2) z2<-(x-y)/sqrt(2)

plot(z1,z2,xlim= c(-3,3),ylim= c(-3,3),pch=20)

Et maintenant ?

Essayez de « retrouver » ce qui se passe d’un point de vue mathématique, c'est-à-dire trouvez la loi des vecteurs (x  y)' et (z1  z2)'.

Tracez quelques autres nuages de points (vecteurs aléatoires de dimension 2) a partir d’autres types de variables aléatoires que la loi normale ? Que remarquez-vous avec la loi uniforme ?

Statistiques descriptives

1/ Dans un amphi, 52 étudiants ont les cheveux noirs, 143 sont bruns, 37 sont roux et 81 sont blonds. Que proposeriez vous pour représenter ces données?

2/ Récupérez dans R le jeu de données trees.

Que proposeriez vous pour représenter ces données?



458