Académique Documents
Professionnel Documents
Culture Documents
fr/~ricco/cours
Fichier de donnes
Prdiction de la consommation de vhicules
Prdire la consommation des vhicules partir de ses caractristiques Diagnostic de la rgression avec les graphiques des rsidus Dtection et traitement des points atypiques Dtection de la colinarit Slection de variables
prix 11600 12490 10450 17140 14825 13730 19490 285000 183900 92500 25000 22350 36600 22500 31580 28750 22600 20300 19900 39800 19740 38990 50800 36200 31990 47700 36950 26950 36400 50900 49300 cylindree 846 993 899 1390 1195 658 1331 5474 5987 2789 1597 1761 2165 1983 1984 1998 1580 1390 1396 2435 1242 2972 2958 2497 1998 2496 1998 1997 1984 2438 2473 puissance 32 39 29 44 33 32 55 325 300 209 74 74 101 85 85 89 65 54 66 106 55 107 150 122 66 125 89 92 85 97 125 Poids 650 790 730 955 895 740 1010 1690 2250 1485 1080 1100 1500 1075 1155 1140 1080 1110 1140 1370 940 1400 1550 1330 1300 1670 1560 1240 1635 1800 1570 conso 5.7 5.8 6.1 6.5 6.8 6.8 7.1 21.3 18.7 14.5 7.4 9.0 11.7 9.5 9.5 8.8 9.3 8.6 7.7 10.8 6.6 11.7 11.9 10.8 7.6 11.3 10.8 9.2 11.6 12.8 12.7
modele Daihatsu Cuore Suzuki Swift 1.0 GLS Fiat Panda Mambo L VW Polo 1.4 60 Opel Corsa 1.2i Eco Subaru Vivio 4WD Toyota Corolla Ferrari 456 GT Mercedes S 600 Maserati Ghibli GT Opel Astra 1.6i 16V Peugeot 306 XS 108 Renault Safrane 2.2. V Seat Ibiza 2.0 GTI VW Golt 2.0 GTI Citroen ZX Volcane Fiat Tempra 1.6 Liberty Fort Escort 1.4i PT Honda Civic Joker 1.4 Volvo 850 2.5 Ford Fiesta 1.2 Zetec Hyundai Sonata 3000 Lancia K 3.0 LS Mazda Hachtback V Mitsubishi Galant Opel Omega 2.5i V6 Peugeot 806 2.0 Nissan Primera 2.0 Seat Alhambra 2.0 Toyota Previa salon Volvo 960 Kombi aut
Histogrammes
prix
25 15
Botes moustaches
puissance
15
cylindree
prix
6000
cylindree
puissance
250000
20
5000
10
4000
10
Frequency
Frequency
Frequency
150000
3000
10
2000
50000
1000
100000
200000
300000
0 1000
3000 autos[, j]
5000
50
150 autos[, j]
250
350
autos[, j]
poids
conso
poids
conso
2000
Frequency
Frequency
1500
1000
1500 autos[, j]
2000
10
15
20
autos[, j]
1000
1000
3000
5000
10
15
20
1000
2000 250000
5000
1000
3000
cylindree
Nuages de points (2 2)
2000
poids
1000
conso
100000
250000
50
150
250
10
15
20
10
15
20
50
150
puissance
250
100000
prix
50
100
150
200
15
250
300
Objet rsum de la rgression . On peut accder ses champs, que lon peut aussi manipuler directement (ex. les coefficients de la rgression, les carts-type des coefficients estims, le t de Student, le R, R ajust, etc.)
Exemple de manipulation directe des coefficients issus de la rgression partir de lobjet rsum . Ici on affiche lcarttype de la constate, de deux manires diffrentes
-1.0
-0.5
0.0
0.5
1.0
1.5
Quantiles observs
Le graphique QQ-plot permet de vrifier la normalit dune distribution. Il prend comme point de dpart la fonction de rpartition observe et compare (en abscisse) les quantiles observs et (en ordonne) les quantiles obtenus si la distribution suivait une loi normale. Sils concordent (forment une droite), on peut dire que la distribution est compatible avec la loi normale. Nous nous en servons pour vrifier si lhypothse de normalit des rsidus la base de tout le dispositif infrentiel de la rgression est crdible sur nos donnes : il semble que OUI.
1.5
0.5
Rsidus
-0.5
-1.5
-1.5 1000
-0.5
0.5
1.5
2000
3000
4000
5000
6000
cylindree
1.5
0.5
Rsidus
-0.5
-1.5
-1.5
-0.5
0.5
1.5
1000
1500 poids
2000
puissance
Les graphiques des rsidus (en ordonne) vs. les variables de ltude (en abscisse) permet de dtecter visuellement les points atypiques : (1) tant sur les variables (les points la priphrie en abscisse) que dans la rgression (les points la priphrie en ordonne). Ex. pour la variable endogne CONSO, que se passe-t-il pour ces points ?
Rsidus
-0.5
0.5
1.5
(2)
-1.5
10 conso
15
20
#mettre en vidence les points atypiques dans le graphique for (i in 1:nrow(ab.standard)){ #on rcupre une chane de carac., la dsignation du vhicule vehicule <- row.names(ab.standard)[i] #on place le point atypique (au sens du rsidu standardis) dans le graphique text(autos[vehicule,"conso"],res.standard[vehicule],vehicule) }
Ferrari 456
res.standard
Ajout dans ce graphique des limites permettant de statuer sur le caractre atypique dun rsidu
0
Dtection automatique des observations atypiques au sens du rsidu standardis Ajout de la dsignation de ces observations dans le graphique
-1 -2
Ferrari 456
res.student
-2
-1
Par rapport aux deux premiers indicateurs (rsidu standardis et rsidu studentis) : (a) Ferrari et Mercedes restent atypiques, ils sont la fois atypiques dans la description comme dans la prdiction de la consommation (b) Maserati apparat comme atypique (sur les exognes) (c) Mitsubishi et Hyundai nont pas une description trs (significativement) diffrente des autres
10
Adoptons une rgle drastique (et terriblement fruste) : un point au moins une fois atypique au sens des critres ci-dessus est limin de la base. Alors que prcdemment, prix, puissance et poids taient significatifs 5%, dans cette seconde rgression, sans les 5 points atypiques , seul poids semble peser rellement sur la consommation.
11
Dtection de la colinarit
Rgle de Klein
#dtection de la colinarit - Rgle de Klein #calculer la matrice des corrlations croises mcxx <- cor(autos.clean[,c(1,2,3,4)]) #monter au carr mcxx <- mcxx^2 #affichage mcxx Rgle de Klein : il y a suspicion de colinarit si le carr de la corrlation entre deux au moins des exognes est proche du coefficient de dtermination de la rgression, gal 0.926
12
Dtection de la colinarit
Facteur dinflation de la variance (VIF)
#prparer le vecteur de rsultats des R2 r2 <- double(4) #4 parce qu'il y a 4 exognes candidates #pour chaque exogne for (j1 in 1:4){ #l'ide est de construire une chane de caractre reprsentant la formule str_formule <- paste(names(autos.clean[j1]),"~") for (j2 in 1:4){ if (j2 != j1){ str_formule <- paste(str_formule,names(autos.clean[j2]),"+") } } #enlever le dernier " +" la fin de la chane str_formule <- substr(str_formule,1,nchar(str_formule)-2) #transformer la chane en objet de type formule formule <- as.formula(str_formule) #lancer la rgression regtest <- lm(formule,data=autos.clean) #rcuprer le rsum resume.regtest <- summary(regtest) #et le R2 dans le rsum r2[j1] <- resume.regtest$r.squared } #calculer le VIF partir du R2 vif <- 1/(1-r2) #attribuer les noms des exognes pour l'affichage names(vif) <- names(autos.clean)[1:4] #afficher print(vif) Le VIF est une sorte de gnralisation multivarie de la rgle de Klein. Elle tudie la liaison, non plus entre les exognes 2 2, mais entre chaque exogne et toutes les autres. Le VIF de la variable Xj est dduit du coefficient de dtermination de la rgression de Xj avec tous les autres X. On considre quil y a un srieux problme ds lors que VIF > 10. Conclusion : il ny a que des problmes dans ce fichier !!! R.R. Universit Lyon 2
13
Slection de variables
Base sur le critre AIC
#chargement de la librairie MASS library(MASS) #recherche backward reg <- lm(conso ~ prix + cylindree + puissance + poids, data = autos.clean) stepAIC(reg,trace=TRUE,direction="backward") #recherche forward reg <- lm(conso ~ 1,data=autos.clean) stepAIC(reg,scope=list(upper=~prix+cylindree+puissance+poids,lower=~1),direction=" forward",trace=TRUE) Le critre AIC (Akaike) met en balance la qualit de lapproximation (via le SCR ou RSS en anglais) et la complexit du modle (via le nombre de variables). Il permet de mettre en comptition des modles avec un nombre de variables diffrent.
Recherche backward et recherche forward aboutissent au mme rsultat : le poids et la cylindre sont les variables pertinentes pour expliquer la consommation des vhicules
14
15