Vous êtes sur la page 1sur 13

Le logiciel R a été créé par Robert Gentleman et Ross Ihaka .

C’est une implémentation gratuite de Splus.


Le logiciel R Le logiciel R est disponible sur le site

http://cran.r-project.org/
Anne PHILIPPE
Il existe des versions
Université de Nantes,
Laboratoire de Mathématiques Jean Leray Windows
MacOS
Journées académiques 2009 de l’IREM des Pays de la Loire
Linux.
Nantes, le 29 juillet 2010
Outils disponibles :
un langage de programmation orienté objet
des fonctions de ”base”
Email : Anne.philippe@univ-nantes.fr
www.math.sciences.univ-nantes.fr/∼philippe des librairies complémentaires (1800 sur le site CRAN)

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 1 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 2 / 50

Documentations

Initiation au logiciel R :
www.math.sciences.univ-nantes.fr/∼ philippe/R.html
Site consacré aux graphiques
addictedtor.free.fr/graphiques/
Collection spécifique UseR chez Springer
Plus de 80 livres,
par exemple
Introductory Statistics With R
Bayesian Computation With R
Applied Statistical Genetics With R :
Generalized Additive Models : An Introduction with R
Extending the Linear Model With R
Time Series Analysis And Its Applications : With R Examples

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 3 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 4 / 50
Le langage R Le langage R

Plan Objets

Fonctions
1 Le langage R Vecteurs, Matrices, etc
Listes : C’est une structure qui regroupe des objets (pas
2 Graphiques
nécessairement de même type).
3 Statistique descriptive Example
>rdn=list(serie=c(1:100),taille=100,type="arithm")
4 Autour des lois de probabilités Cette liste contient

un vecteur dans serie


5 Tests
un scalaire dans taille
6 Régression une chaı̂ne de caractères dans type

...

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 5 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 6 / 50
Le langage R Le langage R

Quelques fonctions usuelles


P Q
1 sum() (somme i xi ), prod() (produit i xi ), mean() (moyenne
Les opérations + - / * sont des opérations terme à terme 1
P n
i=1 xi )
n
Idem por les fonctions : max(), min()
length(), ncol(), nrow()
sqrt square root Ces fonctions retournent un scalaire.
abs absolute value Pn
sin cos tan trigonometric functions (radians)
2 cumsum() (sommes cumulées (x1 , x1 + x2 , . . . , i=1 xi ), cumprod()
exp log exponential and natural logarithm (produits cumulés),
log10 common logarithm sort (tri), order, unique
gamma lgamma gamma function and its natural log remarque : sort(x) = x[order(x)]
fft() (transformé de Fourier)

Example Ces fonctions retournent un vecteur.


Soit A = (ai,j ) t une matrice, exp(A) retourne une matrice constituée des
éléments e ai,j .

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 7 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 8 / 50
Le langage R Le langage R

Structures de contrôles et Itérations Importer/exporter des données

Instructions conditionnelles
if (condition) {instructions}
if (x>0) y=x*log(x) else y=0 1 Importer une suite : x=scan("data.dat") : pour créer un vecteur
Itérations à partir de données stockées dans un fichier, ici data.dat.
> for ( i in 1:10) { ...... } 2 Importer un tableau : x=read.table("data.dat")
> while (i< 11) {........}
3 Exporter : write, write.table
4 Importer / exporter aux formats des différents logiciels commerciaux
> repeat { .... ; if (i> 10) break } (SAS , matlab , minitab SPSS etc )

La fonction apply() permet d’effectuer des opérations sur les


lignes ou les colonnes d’une matrice.

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 9 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 10 / 50
Le langage R Le langage R

Créer des fonctions Exemple

>PF = function(n)
La structure générale d’une fonction est {
u=runif(n) #nb aléatoire suivant Unif(0,1)
>myname=function(liste_des_paramètres) pf=(u>1/2)
{ freq=sum(pf)/n
commandes list(pile.face=pf, size=n, freq.pile=freq)}
}
list(variables-retournées-par la fct)
}
>PF(5)
$pile.face
Les accolades { et } définissent le début et la fin de la fonction. [1] TRUE TRUE TRUE FALSE FALSE
La dernière instruction contient le nom de l’objet retourné par la
$size
fonction. [1] 5
On peut donner des valeurs par défaut aux paramètres
$freq.pile
[1] 0.6

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 11 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 12 / 50
Graphiques Graphiques

Plan Fonction ”centrale” plot

Le graphique produit par la fonction plot(x) dépend de la classe de


1 Le langage R l’objet x.

2 Graphiques > methods(plot)


[1] plot.acf* plot.add plot.data.frame*
[4] plot.Date* plot.decomposed.ts* plot.default
3 Statistique descriptive [7] plot.dendrogram* plot.density plot.ecdf
[10] plot.factor* plot.formula* plot.hclust*
[13] plot.histogram* plot.HoltWinters* plot.isoreg*
4 Autour des lois de probabilités
[16] plot.ker plot.lm plot.medpolish*
[19] plot.mlm plot.POSIXct* plot.POSIXlt*
5 Tests [22] plot.ppr* plot.prcomp* plot.princomp*
[25] plot.profile.nls* plot.spec plot.spec.coherency
[28] plot.spec.phase plot.stepfun plot.stl*
6 Régression [31] plot.table* plot.ts plot.tskernel*

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 13 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 14 / 50
Graphiques Graphiques

plot( ) demo(graphics)
plot(... ) pie(... ) boxplot(... )

plot(cars) plot(sin, -pi, 2*pi)


Simple Use of Color In a Plot A Sample Color Wheel
-1.0 -0.5 0.0 0.5 1.0
0 20 40 60 80 100

8 7 6 5

2
9 4
10 3
sin (x)

11 2
dist

1
12 1
13 24

0
14 23

-1
15 22
16 21
17 18 19 20
5 10 15 20 25 -2 0 2 4 6

-2
speed x 0 10 20 30 40 50

Just a Whisper of a Label (Use this as a test of monitor linearity)

plot(table(rpois(100,5))) plot(x, type = "s")


January Pie Sales Notched Boxplots
20

2
x <- sort(rnorm(47))

Cherry
table(rpois(100, 5))

15

6
1

Blueberry

4
10

2
5

Apple Vanilla Cream


-1

0
Other
0

Boston Cream

-2
1 2 3 4 5 6 7 8 9 11 0 10 20 30 40

Index 1 2 3 4 5 6 7 8 9

(Don't try this at home kids) Group

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 15 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 16 / 50
Graphiques Graphiques

polygon(x,y,..) plot(x... ) hist(x..) biplot : pairs(matrice, ....)

Distance Between Brownian Motions The Level of Interest in R Edgar Anderson's Iris Data
2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5
2.0

4.5 5.5 6.5 7.5


5

1.5
Sepal.Length
Distance

1.0
0

0.5
-5

2.0 2.5 3.0 3.5 4.0


0.0

0 20 40 60 80 100 Jan Mar May Jul Sep Nov Sepal.Width


Time 1996

1 2 3 4 5 6 7
1000 Normal Random Variates
50 100 150 200

Petal.Length
Frequency

0.5 1.0 1.5 2.0 2.5


Petal.Width
0

-4 -2 0 2 4
4.5 5.5 6.5 7.5 1 2 3 4 5 6 7
x

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 17 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 18 / 50
Graphiques Statistique descriptive

contour(x, y, matrice.... ) image( ) persp( ) Plan


Maunga Whau Volcano
600

Le langage R
500

1
400

2 Graphiques
300

z
y

200

x
3 Statistique descriptive
100

100 200 300 400 500 600 700 800

x 4 Autour des lois de probabilités

5 Tests
z

6 Régression
y

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 19 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 20 / 50
Statistique descriptive Statistique descriptive

Les données Island Statistique descriptive pour les données islands


islands data: area (sq. miles)
Africa Antarctica Asia
11506 5500 16988
Asia Australia Axel Heiberg Baffin
Africa
North America 2968 16 184
South America
Antarctica Banks Borneo Britain boxplot
Europe data : sqrt(islands)
Australia 23 280 84
Greenland
New Guinea Celebes Celon Cuba
Borneo

120
Madagascar
Baffin
73 25 43 > mean(x)
Sumatra Devon Ellesmere Europe
Honshu [1] 3.734162

100
Britain 21 82 3745
Victoria
Ellesmere Greenland Hainan Hispaniola > var(x)
Celebes
New Zealand (S) 840 13 30

80
Java [1] 9.134685
New Zealand (N) Hokkaido Honshu Iceland
Newfoundland
Cuba 30 89 40 > quantile(x,c(.25,.5,.75))

60
Luzon
Iceland Ireland Java Kyushu
Mindanao 33 49 14 25% 50% 75%
Ireland

40
Novaya Zemlya Luzon Madagascar Melville
Hokkaido 1.794741 2.990066 4.326417
Hispaniola 42 227 16
Sakhalin

20
Moluccas Mindanao Moluccas New Britain
Tasmania
Celon 36 29 15
Banks

0
Devon New Guinea New Zealand (N) New Zealand (S)
Tierra del Fuego
Southampton 306 44 58
Melville
Axel Heiberg Newfoundland North America Novaya Zemlya
Spitsbergen
New Britain 43 9390 32
Taiwan
Kyushu Prince of Wales Sakhalin South America
Timor
Prince of Wales 13 29 6795
Hainan
Vancouver Southampton Spitsbergen Sumatra
16 15 183
0 5000 10000 15000 Taiwan Tasmania Tierra del Fuego
14 26 19
Anne PHILIPPE (U. Nantes) Logiciel R Timor 29 juillet 2010
Vancouver 21 / 50
Victoria Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 22 / 50
Statistique descriptive 13 12 82 Statistique descriptive

histogramme histogramme : le choix du nombre de classes


equidistant breaks NON - equidistant breaks
1000 Normal Random Variates
0.15
0.00 0.02 0.04 0.06

0.4

0.4
19
0.10

0.3

0.3
On simule un échantillon suivant
Density

Density

Density

Density
11

0.2

0.2
0.05

5
la loi gaussienne de taille 1000

0.1

0.1
32
1 0 0 2 3 2
0.00

0.0

0.0
0 20 40 60 80 100 140 0 20 40 60 80 100 140 -4 -2 0 2 4 -4 -2 0 2 4
2 On trace l’histogramme pour
sqrt(islands) sqrt(islands) x x
différentes valeurs du nombre de
WRONG histogram 0.4
classes.

0.4
3 On compare l’histogramme avec
15

0.3

0.3
Frequency

Density

Density
la densité théorique de loi
10

0.2

0.2
0.1

0.1
5

gaussienne (courbe en rouge)


0.0

0.0
0

0 20 40 60 80 100 140 -4 -2 0 2 4 -4 -2 0 2 4

x x
sqrt(islands)

hist(x, nclass=100 ) ou hist(x) par défaut le nombre de


hist(sqrt(islands), breaks = 12)
hist(sqrt(islands), breaks = c(4*0:5, 10*3:5, 70, 100, 140)) classes est optimisé pour des échantillons gaussiens
hist(sqrt(islands), breaks = c(4*0:5, 10*3:5, 70, 100, 140) ,freq=TRUE)
Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 23 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 24 / 50
Statistique descriptive Autour des lois de probabilités

Estimation de la densité par l’estimateur à noyau Plan

On compare sur des données simulées suivant la loi gaussienne deux


estimateurs de la densité (hist / density) avec la densité théorique de la loi 1 Le langage R
Histogram of dat

2 Graphiques
0.4
Density

0.2

3 Statistique descriptive
0.0

-3 -2 -1 0 1 2 3 4

dat #calcul de l’estimateur


>hist(dat) 4 Autour des lois de probabilités
density.default(x = dat)
> y=density(dat)
0.4

> plot(y) 5 Tests


Density

0.2

6 Régression
0.0

-4 -2 0 2 4

N = 1000 Bandwidth = 0.2179

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 25 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 26 / 50
Autour des lois de probabilités Autour des lois de probabilités

Généralités Quelques lois disponibles

Soit X une variable aléatoire de loi PX


(P 1 Lois discrètes
x∈A P(X = x) loi discrète Loi binomiale (n,p) binom
PX (A) = P(X ∈ A) = R Loi hypergéométrique (N,n,k) hyper
A f (x)d
.x loi continue
Loi de Poisson (a) pois
Loi géométrique (p) geom
Pour les lois classiques, des fonctions R existent pour
Loi à support fini {(ai , pi ), i = 1...m} sample
calculer ( 2 Lois continues
P(X = x) pour les lois discrètes
la densité Loi Gaussienne (m,σ 2 ) norm
f (x) pour les lois continues Loi uniforme sur [a, b] unif
la fonction de répartition F (x) = P(X ≤ x) Loi de Student à ν degrés de liberté t
les quantiles F − (u) = inf{x : F (x) ≥ u} Loi du χ2 à ν degrés de liberté chisq
simuler des nombres aléatoires suivant la même loi que X .

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 27 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 28 / 50
Autour des lois de probabilités Autour des lois de probabilités

Exemple : loi gaussienne de moyenne 0 et de variance 1 Simuler le résultat d’un dé à 6 faces
dnorm(x,0,1) : densité au point x
pnorm(x,0,1) : fonction de répartition au point x > DE = sample((1:6),100,replace =TRUE)
> DE
qnorm(α,0,1) : quantile d’ordre α [1] 3 2 5 3 4 5 4 4 2 4 2 5 2 6 5 6 4 3 5 4 5 3 5
rnorm(n,0,1) : échantillon de taille n [24] 3 5 4 4 5 5 4 4 4 3 5 5 2 5 3 5 4 3 1 3 1 3 4
Gaussian N(0,1) distribution
[47] 2 5 6 2 1 5 1 6 2 1 2 3 5 1 3 4 2 3 1 2 6 1 6
cdf
density
[70] 6 4 1 3 4 5 6 1 6 3 5 4 1 5 2 2 2 3 3 2 2 6 6
0.0 0.1 0.2 0.3 0.4

0.0 0.2 0.4 0.6 0.8 1.0


[93] 6 4 2 5 5 1 5 4
1OO lancers
dnorm(x)

pnorm(x)
> table(DE)
DE

20
1 2 3 4 5 6
-4 -2 0 2 4 -4 -2 0 2 4

x x 12 17 17 19 23 12

15
> plot(table(DE))

table(DE)
quantile function random values

10
0.0 0.5 1.0 1.5 2.0
4
2

rnorm(10)
qnorm(u)

5
-4 -2 0

0
0.0 0.2 0.4 0.6 0.8 1.0 2 4 6 8 10 1 2 3 4 5 6

u Index DE

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 29 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 30 / 50
Autour des lois de probabilités Autour des lois de probabilités

Comportement asymptotique des fréquences empiriques Sondages


lancer=function(n) On considère les résultats des élections européennes
{ résultats des elections

DE = sample((1:6),n,replace =TRUE) 27.9

plot(table(DE), ,lwd=3) ; abline(h=n/6,lwd=1)

25
}

20
16.5 16.3

prob

15
nb de lancers 50 nb de lancers 100 nb de lancers 500
100
8 10 12 14

20

10
80

8.5
15

60

6.34
table(DE)

table(DE)

table(DE)

6
5.4 5 5.2
10

5
6

40

2.86
4

20
2

2 4 6 8 10
0

candidat
1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6

DE DE DE

nb de lancers 1000 nb de lancers 5000 nb de lancers 10000

> prob=c(27.9,16.5,16.3, 8.5, 6.34,6,5.4,5,5.2,2.86)


800

1500
150

> plot(prob,type="h",lwd = 3)
600

1000

> points(prob )
table(DE)

table(DE)

table(DE)
100

400

> title(’résultats des elections ’)


500
50

200

> text(1:10,prob+.5,prob,col="red")
0

1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6

DE DE DE

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 31 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 32 / 50
Autour des lois de probabilités Autour des lois de probabilités

Simuler les résultats d’un sondage Erreur d’estimation des proportions


erreur sur un sondage de taille 1000

1.0
On simule un échantillon de taille 1000 suivant la loi multinomiale

0.5
0.0
-0.5
> prob=c(27.9,16.5,16.3, 8.5, 6.34,6,5.4,5,5.2,2.86)

-1.0
> size = 1000

-1.5
> (Sondage = rmultinom(1, size, prob/100) ) 2 4 6

candidat
8 10

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 296 152 174 89 51 63 56 40 51 28 Classement estimé
classement des candidats

10
Estimation par les fréquences empiriques

8
classements

6
> estimation = Sondage /size*100

4
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]

2
[1,] 29.6 15.2 17.4 8.9 5.1 6.3 5.6 4 5.1 2.8 2 4 6 8 10

candidats

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 33 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 34 / 50
Autour des lois de probabilités Autour des lois de probabilités

Second tour d’une élection présidentielle


: A 51% contre B 49% Résultat des sondages simulés :
estimation du score de A

Quel est la probabilité d’annoncer le candidat gagnant en réalisant un


0.71

0.54
sondage sur un échantillon de taille 1000 ?

0.52
Le résultat d’un sondage est obtenu en simulant un nombre aléatoire

0.50
x suivant la loi binomiale (1000, .51)
On simule les résultats de N sondages

0.48
x=rbinom(N, 1000,0.51) 0.29
On calcule la fréquence de l’événement ”X>500” 0 100 200 300 400 500

sondage

y = (x>500) 71 % des sondages donnent A gagnant


sum(y)/length(y)
0.71

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 35 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 36 / 50
Autour des lois de probabilités Autour des lois de probabilités

on augmente la taille de l’échantillon On change


Sondage sur des échantillons de taille 5000 les résultats
0.912
estimation du score de A
les résultats sont 53% contre 47 %
les sondages sont réalisés sur des échantillons de taille 1000

0.53
0.912

0.52
estimation du score de A

0.51
0.50

0.58
0.088

0.49
0.962

0.56
0 100 200 300 400 500

sondage

0.54
Sondage sur des échantillons de taille 10000

0.52
estimation du score de A
0.525

0.98
0.520

0.50
0.038
0.515
0.510

0.48
0.505

0 100 200 300 400 500

sondage
0.500

0.02
0.495

0 100 200 300 400 500


Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 37 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 38 / 50
Tests
sondage
96 % des sondages donnent A gagnant
Tests

Plan Tests classiques :


Test sur la moyenne : test de Student
t.test(x,mu=5,alt="two.sided")
1 Le langage R t.test(x,y,alt="less", conf=.95)
Test sur la variance
2 Graphiques
var.text(x,y) # comparaison variance
cor.test(x,y) # non correlation
3 Statistique descriptive Box.test(z, lag = 1) #non correlation
Test χ2
4 Autour des lois de probabilités
chisq.test(x,y) #independance
chisq.test(x) #ajustement à une loi donnée
5 Tests
Test d’ajustement

6 Régression ks.test(x,"pnorm") #normalité K-S


ks.test(x,y) # m^
eme distribution

shapiro.test(x) #normalité

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 39 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 40 / 50
Tests Tests

Exemple : Test de Student t.test() Test d’ajustement du χ2 : lancer d’un dé

X1 , . . . , Xn iid N (1, 1) nb de lancers 50 50 lancers

10
Y1 , . . . , Ym iid Expo(1) 3
2

>tab = table(de)

8
1

Test H0 : E (X ) = E (Y ) vs H1 : E (X ) 6= E (Y )

table(DE)
1 2 3 4 5 6

6
4

4
6
10 7 5 10 10 8

2
5
>chisq.test(tab)

0
> x = rnorm(100,1,1) Chi-squared test for given probabilities
1 2 3 4 5 6
> y = rexp(200,1) DE data: table(de)
> t.test(x,y) X-squared = 2.56, df = 5, p-value = 0.7674
nb de lancers 500

Welch Two Sample t-test 2


500 lancers

80
data: x and y 3 1

60
table(DE)
t = -0.2178, df = 178.446, p-value = 0.8278 1 2 3 4 5 6

40
alternative hypothesis: true difference in means is not equal to 0 4
6
84 82 94 84 76 80

20
95 percent confidence interval: 5
Chi-squared test for given probabilities

0
-0.2648092 0.2121608 1 2 3 4 5 6
data: table(DE)
sample estimates: mean of x : 0.9544127 mean of y : 0.9807369 DE
X-squared = 2.176, df = 5, p-value = 0.8243

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 41 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 42 / 50
Tests Tests

Test d’ajustement à une gaussienne Test de normalité. n = 1, 2, 5


On simule une loi normale en utilisant le TCL sur des variables iid suivant One-sample Kolmogorov-Smirnov test Shapiro-Wilk normality test
la loi uniforme.
data: X data: X
Méthode de simulation non exacte .... D = 0.0682, p-value = 0.0001841 W = 0.9523, p-value < 2.2e-16

U = U1 , . . . , Un iid suivant la loi uniforme data: X data: X


D = 0.0325, p-value = 0.2401 W = 0.9924, p-value = 5.496e-05
n
√ 1 1X
12n(Ūn − ) ⇒ X ∼ N(0, 1) Ūn = Ui data: X data: X
2 n D = 0.0296, p-value = 0.3439 W = 0.9975, p-value = 0.1354
i=1
n= 1 n= 2 n= 5

Le générateur s’écrit

0.4

0.4

0.4
simU<-function(size,n)
0.3

0.3

0.3
{
Density

Density

Density
0.2

0.2

0.2
y = matrix(runif(n*size),ncol=n)
(apply(y,1,mean)-1/2)*sqrt(n*12)
0.1

0.1

0.1
}
0.0

0.0

0.0
-2 -1 0 1 2 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3

N = 1000 Bandwidth = 0.2251 N = 1000 Bandwidth = 0.2247 N = 1000 Bandwidth = 0.2334

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 43 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 44 / 50
Régression Régression

Plan Régression linéaire


Lien linéaire entre les variables x et Y

1 Le langage R Yi = axi + b + i
où (i )i est une suite de variables aléatoires iid, centrées et L2 .
2 Graphiques
Pour réaliser une régression linéaire, par la méthode des moindres carrés,
on utilise la fonction lm :
3 Statistique descriptive Si les données sont sous la forme de 2 vecteurs X et Y (de même taille)
r=lm(Y~X)
4 Autour des lois de probabilités
Call:
5 Tests lm(formula = Y ~ X)

Coefficients:
6 Régression (Intercept) X
1.368 1.031

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 45 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 46 / 50
Régression Régression

plot(X,Y) plot(r$residual, type="h") Ajustement polynomial : r=lm(Y∼poly(X,deg)))


abline(r)

qqnorm(r$residual)
abline(0,1) acf(r$residuals)
deg = 1 deg = 2

0 20 40 60 80 100

0 20 40 60 80 100
10 15 20 25

dist

dist
1
r$residual

0
Y

-1

5 10 15 20 25 5 10 15 20 25

speed speed
5

-2

5 10 15 20 25 5 10 15 20 25
deg = 3 deg = 4
X Index
0 20 40 60 80 100

0 20 40 60 80 100
Normal Q-Q Plot Series r$residuals
dist

dist
0.8
1
Sample Quantiles

0.4
ACF
0

5 10 15 20 25 5 10 15 20 25

speed speed
0.0
-1

-0.4
-2

-2 -1 0 1 2 0 2 4 6 8 10 12 plot(cars)
Anne PHILIPPE (U. Nantes)
Theoretical Quantiles Logiciel R Lag 29 juillet 2010 47 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 48 / 50
Régression Régression

Généralisation Conclusion

Peut on utiliser R pour l”enseignement ?


Difficulté : Langage à apprendre
Solutions :
régression multiple lm(v ∼ v1 + v2 + v3) proposer des fonctions boite noire
régression linéaire généralisée glm utiliser des librairies avec interface graphique
sélection de modèles, anova
Exemple : la librairie Rcmdr
approche non paramétrique par noyau
lissage
polynômes locaux

Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 49 / 50 Anne PHILIPPE (U. Nantes) Logiciel R 29 juillet 2010 50 / 50