Statistique a deux variables

On se limite au cas ou il existe deux variables représentées par deux vecteurs sans effectifs. Généralement il existe une variable

explicative x, \(t\), ... et une variable à expliquer \(y\), \(z\), ... , il faut bien distinguer les deux variables. Etudions l'exemple suivant, en commençant par le nuage de points.

Nuage de points

1
x<-c(90 ,120,150,180,210,240, 270,300 )
2
z<-c(5.77, 5.55, 5.31, 5.10 ,4.89 ,4.65, 4.42, 4.23)
3
plot(x,z,main="nuage de pts de z en fonction de x")

Coefficient de corrélation

1
x<-c(90 ,120,150,180,210,240, 270,300 )
2
z<-c(5.77, 5.55, 5.31, 5.10 ,4.89 ,4.65, 4.42, 4.23)
3
r<-cor(x,z)

Droite de régression

C'est le modèle linéaire qui est utilise par R-Project (Linear Model ou lm), basée sur la méthode des moindres carres.

1
resultat<-lm(z~x)
2
resultat

Nous avons crée une variable résultat qui contient tous les résultats réalisés par notre modèle.

On s'aperçoit que l'exécution de cette fonction donne les deux coefficients de la droite de régression : une valeur est affichée sous Intercept (elle correspond à l'ordonnée à l'origine) et une valeur sous la lettre \(x\) qui correspond au coefficient directeur de la droite de regréssion.

Remarque

Les équations de droite sont généralement notées : \(y = a+bx\), d'ou l'origine de la fonction abline. Pour tracer, avec R, la droite d'equation \(y = 2x + 1 = 1 + 2x\), il suffit de saisir abline(a=1,b=2) ou tout simplement abline(1,2).

La pente et l'ordonnée a l'origine

On peut isoler les paramètres de la droite de régression de la manière suivante :

1
resultat<-lm(z~x)
2
ord<- resultat$coefficients[1]
3
pente<-resultat$coefficients[2]

Tracé de la droite de régression

Pour tracer la droite de régression, il faut reprendre le programme de départ et le compléter par abline comme ceci :

1
x<-c(90 ,120,150,180,210,240, 270,300 )
2
z<-c(5.77, 5.55, 5.31, 5.10 ,4.89 ,4.65, 4.42, 4.23)
3
plot(x,z,main="nuage de pts de z en fonction de x")
4
abline(resultat)
5
grid(20)

Ajout d'une courbe dans un graphique existant ( avec add=TRUE ou add =T)

1
x<-c(90 ,120,150,180,210,240, 270,300 )
2
z<-c(5.77, 5.55, 5.31, 5.10 ,4.89 ,4.65, 4.42, 4.23)
3
plot(x,z,main="deux reprsentations graphiques ")
4
abline(resultat,col='red',lwd=2.5)
5
curve(log(x), 90, 300, add=T, col='green') # ajouter la courbe de x--->xexp(-2x) sur [90,300]
6
grid(100)

Remarque

Les réels 90 et 300 sont les bornes de l'intervalle dans lequel la fonction doit être étudiée.

Ajout d'une légende a un dessin avec la fonction legend

1
x <- seq(-6,6,length=200)
2
y <- sin(x)
3
z <- cos(x)
4
plot(y~x, type='l', lwd=3,
5
ylab='', xlab='angle', main="Fonctions trigonomtriques",col='green')
6
abline(h=0,lty=3)
7
abline(v=0,lty=3)
8
lines(z~x, type='l', lwd=3, col='blue')
9
legend(-6,-1, yjust=0,c("Sinus", "Cosinus"),lwd=3, lty=1, col=c('green', 'blue'))

On peut colorier des parties du dessin a l'aide de la commande polygon

1
ColorDessin <- function (f, g, xmin, xmax, col, N=200) {
2
x <- seq(xmin,xmax,length=N)
3
fx <- f(x)
4
gx <- g(x)
5
plot(0,0, type='n',
6
xlim=c(xmin,xmax),
7
ylim=c( min(fx,gx), max(fx,gx) ) )
8
polygon( c(x,rev(x)), c(fx,rev(gx)), col=rgb(1,0,1), border=0 )
9
lines(x,fx,lwd=3,col='blue')
10
lines(x,gx,lwd=3,col='green')
11
}
12
ColorDessin( function(x) cos(x), function(x) sin(x), -6, 6)
13
legend(-6,-1, yjust=0,c("S", "C"),lwd=3, lty=1, col=c('green', 'blue'))
14
grid(10)
15
arrows(-6,0,6.3,0,length = 0.1,lty='dashed')
16
arrows(0,-6,0,1.1,length = 0.1,lty='dashed')

Hachurer un domaine plan en vue de calculer son aire

1
domaine<- function (f, xmin, xmax,a,b, col, N=200) {
2
N<-200
3
curve(f(x),xmin,xmax)
4
intervalle <-seq(a,b,l=N)
5
fx <- f(intervalle)
6
gx <- rep(0,N)
7
polygon( c(intervalle,rev(intervalle)), c(fx,rev(gx)), col='light blue', border=0 )
8
grid(50)
9
}
10
domaine(function(x) x*exp(-x), 0, 10,a=0,b=5)