Régression linéaire
Langage R
Définition
• L'analyse de régression est un outil statistique
très largement utilisé pour établir un modèle
de relation entre deux variables.
– variable prédictive (indépendante) dont la valeur
est collectée par des expériences
– variable réponse (dépendante) dont la valeur est
dérivée de la variable de prédictive.
Equation
• L'équation mathématique générale pour une
régression linéaire est :
y = a + bx
Voici la description des paramètres utilisés
• y est la variable réponse.
• x est la variable prédictive.
• a et b sont constantes et nommées des
coefficients (intercept et pente).
Étapes pour établir une régression
• Un exemple simple de régression est la
prédiction du poids d’une personne lorsque sa
taille est connue.
• Pour ce faire, nous devons établir un lien entre
la taille et le poids d’une personne.
Les étapes pour créer la relation
• Réaliser l'expérience de collecte d'un échantillon
des valeurs de hauteur et de poids
correspondants observées.
• Créer un modèle de relation à l'aide de la
fonction lm() dans R.
• Obtenez un résumé du modèle de relation pour
connaître l'erreur moyenne dans la prédiction ou
les résidus.
• Pour prédire le poids de nouvelles personnes,
utilisez la fonction predict() dans R.
Données d’entrée
• Vous trouverez ci-dessous des exemples de
données représentant les observations:
– Valeurs de taille et de poids
taille 151 174 138 186 128 136 179 163 152 131
poids 63 81 56 91 47 57 76 72 62 48
Fonction lm()
Syntaxe
• lm(formula,data)
– formula est un symbole représentant la relation
entre x et y.
– data est le vecteur sur lequel la formule sera
appliquée.
Fonction lm()
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152,
131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
plot(x,y,col = "blue",main = “Regression de Taille &
Poids ",xlab = “Taille en cm",ylab = “Poids en
Kg")
# Apply the lm() function.
relation <- lm(y~x)
print(relation)
plot(x,y,col = "blue",main = “Regression de Taille &
Poids ",xlab = “Taille en cm",ylab = “Poids en Kg")
> print(relation)
Call:
lm(formula = y ~ x)
Coefficients:
(Intercept) x
-38.4551 0.6746
Obtenez le résumé de la relation
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152,
131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
# Apply the lm() function.
relation <- lm(y~x)
print(summary(relation))
> print(summary(relation))
Call:
lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-6.3002 -1.6629 0.0412 1.8944 3.9775
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -38.45509 8.04901 -4.778 0.00139 **
x 0.67461 0.05191 12.997 1.16e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.253 on 8 degrees of freedom
Multiple R-squared: 0.9548, Adjusted R-squared: 0.9491
F-statistic: 168.9 on 1 and 8 DF, p-value: 1.164e-06
Fonction predict()
Syntaxe
• predict(object, newdata)
• Voici la description des paramètres utilisés :
– object est la formule déjà créée à l'aide de la
fonction lm ().
– newdata est le vecteur contenant la nouvelle
valeur de la variable prédictive.
Prédire le poids de nouvelles
personnes
# The predictor vector.
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152,
131)
# The resposne vector.
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
# Apply the lm() function.
relation <- lm(y~x)
# Find weight of a person with height 170.
a <- [Link](x = 170)
result <- predict(relation,a)
print(result)
Prédiction
> a <- [Link](x = 170)
>a
x
1 170
> result <- predict(relation,a)
> result
1
76.22869
> print(result)
1
76.22869
Visualiser la régression graphiquement
# Create the predictor and response variable.
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152,
131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
relation <- lm(y~x)
# Plot the chart.
plot(x,y,col = "blue",main = “Regression de Taille &
Poids", abline(lm(y~x)),xlab = « Taille en
cm",ylab = "Poids en Kg")
Exemple
• Nous examinerons le taux d’intérêt des prêts
auto pour quatre ans et les données que nous
utilisons proviennent des taux moyens de la
Réserve fédérale américaine.
• Ici, il n'y a que cinq paires de nombres.
Chacune des cinq paires consiste en une
année et le taux d'intérêt moyen :
• > year <- c(2000 , 2001 , 2002 , 2003 , 2004)
• >rate <- c(9.34 , 8.50 , 7.62 , 6.93 , 6.60)
• La prochaine chose que nous faisons est de
regarder les données. Nous commençons par
tracer les données en utilisant un nuage de points
et remarquons qu’elles ont l’air linéaire. Pour
confirmer nos soupçons, nous trouvons ensuite la
corrélation entre l'année et les taux d'intérêt
moyens :
• > plot(year,rate, main="Commercial Banks
Interest Rate for 4 Year Car Loan", sub=“Statistics
department")
• La commande pour effectuer la régression des
moindres carrés est la commande lm.
• la ligne de régression peut être écrite sous la
forme pente-intercept :
– taux=(pente)année+(intercept)
• Que cette relation soit définie dans la
commande lm :
– > fit <- lm(rate ~ year)
– > fit
• Si vous souhaitez tracer la ligne de régression
sur le même tracé que votre nuage de points,
vous pouvez utiliser la fonction abline avec
votre ajustement variable:
– > plot(year,rate, main="Commercial Banks Interest
Rate for 4 Year Car Loan", sub=“Statistics
department")
– > abline(fit)
• Enfin, pour illustrer les types d’analyses que
vous pourrez voir plus tard, vous pouvez
obtenir les résultats d’un test F en demandant
à R un résumé de la variable d’ajustement. :
• > summary(fit)
Exercice
• Étant donné ces six paires de valeurs (x, y),
X 1 2 3 3 4 5
Y 8 4 5 2 2 0
• (a) Tracer le diagramme de dispersion.
• (b) Calculer les estimations des moindres
carrés et
• (c) Déterminez la ligne ajustée et tracez la
ligne sur le diagramme de dispersion.
Example: Income vs Consumption
Expenditure
Consumption
Income (x)
Expenditure (y)
1 7
5 6
9 9
13 8
17 10
Questions
• Construire un nuage de points; déterminer si
le modèle linéaire est approprié.
• Si c'est le cas…? trouver la ligne de prédiction
des moindres carrés
• Estimez les dépenses de consommation dans
une maison ayant un revenu de (i) 6 000 USD
(ii) de 25 000 USD.
Exercice 3
• Considérez le jeu de données bivarié suivant:
(1, 2) (3, 1.8) (5, 1).
1. Déterminer les estimations des moindres carrés
b0 et b1 des paramètres de la droite de
régression
y=b0 + b1x.
1. Tracer sur une figure le nuage de points des
données et la droite de régression estimée y=b0
+ b1x.
Exercice : fossiles
Il existe 6 spécimens de fossiles d'un
animal éteint et ces spécimens sont
de tailles différentes.
On pense que si ces animaux
appartiennent à la même espèce, il
doit exister une relation linéaire
entre la longueur de deux de leurs
os, le fémur et l'humérus.
Voici les données de ces longueurs
en cm pour les 5 spécimens
possédant ces deux os intacts: