Conclusion pour l`axe 1
Transcription
Conclusion pour l`axe 1
ACP Voitures ¾ Réalisation de l’ACP (décomposition factorielle) > acp=princomp(voit,cor=T) > acp Call: princomp(x = voit, cor = T) Standard deviations: Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 2.1577815 0.9566721 0.4903373 0.3204833 0.2542759 0.1447788 6 variables and 24 observations. Choix du nombre d’axes > summary(acp) Importance of components: Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Standard deviation 2.1577815 0.9566721 0.49033725 0.32048327 0.25427593 Proportion of Variance 0.7760035 0.1525369 0.04007177 0.01711825 0.01077604 Cumulative Proportion 0.7760035 0.9285404 0.96861222 0.98573047 0.99650652 Comp.6 Standard deviation 0.144778802 Proportion of Variance 0.003493484 Cumulative Proportion 1.000000000 Rq : sum(acp$sdev^2)=6 Choix du nombre d’axes ¾ Critère de Kaiser : >(acp$sdev)^2 Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 4.65602121 0.91522148 0.24043062 0.10270953 0.06465625 0.02096090 On ne retient que la première composante qui retient 77,6% de l’inertie totale Choix du nombre d’axes ¾ Critère du coude : >plot(acp) On sélectionne deux axes, représentant 92,8% de l’inertie totale. Choix du nombre d’axes ¾ Scree-test de Catell > list(acp$sdev^2,diff(acp$sdev^2),diff(diff(acp$sdev^2))) [[1]] Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 4.65602121 0.91522148 0.24043062 0.10270953 0.06465625 0.02096090 [[2]] Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 -3.74079973 -0.67479086 -0.13772109 -0.03805328 -0.04369535 [[3]] Comp.3 Comp.4 Comp.5 Comp.6 3.066008870 0.537069767 0.099667814 -0.005642069 Conduit à retenir 3 composantes Choix du nombre d’axes Conclusion : Un bon compromis est de considérer deux composantes, représentant à peu près 93% de l’inertie totale. Etude de l’axe 1 ¾ Individus : Contribuent essentiellement les individus dont les coordonnées sur l’axe 1 (composantes principales) sont > en valeur absolue à la racine de la valeur propre d’ordre 1, égale à 2.1577815, sous réserve qu’ils soient bien représentés sur l’axe. Etude de l’axe 1 >qlt=(acp$scores^2/apply(acp$scores^2,1 ,sum))[,1] > tab=cbind(contrib=acp$scores[,1],qlt) > tab1=tab[tab[,1]<0,] contrib Renault_21 -0.1805120 Bmw_530i -3.9456318 Rover_827i -3.1938972 Renault_25 -3.4396227 Opel_Omega -1.4995690 Peugeot_405_Break -0.5865307 Ford_Sierra -0.7393253 Bmw_325iX -1.7061778 Audi_90_Quattro -1.4135416 Ford_Scorpio -2.7950566 Renault_Espace -0.9199997 VW_Caravelle -1.2219947 qlt 0.03357692 0.93860336 0.94429690 0.93583367 0.66739260 0.61965973 0.63132099 0.50367479 0.56974756 0.91565592 0.44530992 0.19177255 > tab2=tab[tab[,1]>0,] contrib Honda_Civic Renault_19 Fiat_Tipo Peugeot_405 Citroen_BX Nissan_Vanette Ford_Fiesta Fiat_Uno Peugeot_205 Peugeot_205_Rallye Seat_Ibiza_SX_I Citroen-ax-sport 2.02290470 0.77851246 1.28979214 0.27382089 0.50464772 0.02474295 3.49885607 3.75768985 2.61879210 2.28877205 1.93307264 2.65025551 qlt 0.8766111128 0.6623990534 0.7639797857 0.1069827320 0.4826435993 0.0001191134 0.9336125401 0.9768995537 0.8857026180 0.6985932945 0.7872635901 0.7788498294 Etude de l’axe 1 L'axe 1 oppose la Bmw 530i, la Rover 827i, la Renault 25 et la Ford Scorpio à la Fiat Uno, la Ford Fiesta, la Citroen-ax-sport, la Peugeot 205 Rallye et la Peugeot 205 et éventuellement Seat Ibiza SX I et le Honda Civic, c’est à dire les grosses berlines aux citadines. Tous les modèles sont assez bien représentés sur l'axe 1, à part la Nissan Vanette, la Peugeot_405 et la Renault 21. -4 -2 2 Peugeot_205_Rallye Vitesse Bmw_325iX Citroen-ax-sport Audi_90_Quattro Puissance Bmw_530i Rover_827i 2 0.2 0 Seat_Ibiza_SX_I Renault_25 Fiat_Uno Ford_Scorpio 0 0.0 Peugeot_405_Break Cylindre Renault_19 Citroen_BX Ford_SierraPeugeot_405 Fiat_Tipo Ford_Fiesta -2 Renault_21 Opel_Omega Renault_Espace Largeur -4 -0.2 Poids Longueur -0.4 Comp.2 Peugeot_205 Honda_Civic Nissan_Vanette VW_Caravelle -0.4 -0.2 0.0 Comp.1 0.2 Etude de l’axe 1 ¾ Variables : On retient les variables telles que la coordonnée de u1 (premier vecteur propre) est supérieur en valeur absolue à 1/racine(nombre de variables)= 0.4082483. Il n’y a pas de problème de représentativité car ce sont les variables qui contribuent le plus qui sont le mieux représentées. >loadings(acp)[,1] Cylindre Puissance Vitesse Poids Longueur Largeur [1,] -0.4442019 -0.4144904 -0.3435401 -0.4303213 -0.4302088 -0.3776328 L’axe1 isole les modèles ayant de fortes valeurs de toutes leurs caractéristiques aux autres (effet taille) Etude de l’axe 1 ¾ Conclusion pour l’axe 1: l’axe 1 est un axe de « taille ». Il oppose les grosses berlines puissantes et de grande dimension aux citadines de faible dimension et peu puissantes. Etude de l’axe 2 ¾ Individus : Contribuent essentiellement les individus dont les coordonnées sur l’axe 2 (composantes principales) sont > en valeur absolue à la racine de la valeur propre d’ordre 2, égale à 0.9566721 , sous réserve qu’ils soient bien représentés sur l’axe. Etude de l’axe 2 >qlt=(acp$scores^2/apply(acp$scores^2,1,s um))[,2] >tab=cbind(contrib=acp$scores[,2],qlt) > tab1=tab[tab[,1]<0,] contrib qlt Renault_19 -0.13290412 1.930481e-02 Fiat_Tipo -0.43420734 8.658382e-02 Peugeot_405 -0.46469601 3.081190e-01 Renault_21 -0.63714766 4.183204e-01 Citroen_BX -0.20760635 8.168291e-02 Opel_Omega -0.77567731 1.785709e-01 Ford_Sierra -0.43459960 2.181513e-01 Ford_Scorpio -0.12172675 1.736693e-03 Renault_Espace -0.88853769 4.153734e-01 Nissan_Vanette -1.82044478 6.447820e-01 VW_Caravelle -2.38484782 7.304141e-01 Ford_Fiesta -0.90432558 6.236834e-02 Fiat_Uno -0.01491689 1.539446e-05 >tab2=tab[tab[,1]>0,] contrib Honda_Civic 0.3199428 Bmw_530i 0.8353867 Rover_827i 0.7714359 Renault_25 0.6092422 Peugeot_405_Break 0.1431626 Bmw_325iX 1.3627420 Audi_90_Quattro 1.0893324 Peugeot_205 0.4150747 Peugeot_205_Rallye 1.4787932 Seat_Ibiza_SX_I 0.9014207 Citroen-ax-sport 1.2951047 qlt 0.02192808 0.04207500 0.05508920 0.02936007 0.03691738 0.32131344 0.33836555 0.02225043 0.29163137 0.17119018 0.18598931 -4 -2 2 Peugeot_205_Rallye Vitesse Bmw_325iX Citroen-ax-sport Audi_90_Quattro Puissance Bmw_530i Rover_827i 2 0.2 0 Seat_Ibiza_SX_I Renault_25 Fiat_Uno Ford_Scorpio 0 0.0 Peugeot_405_Break Cylindre Renault_19 Citroen_BX Ford_SierraPeugeot_405 Fiat_Tipo Ford_Fiesta -2 Renault_21 Opel_Omega Renault_Espace Largeur -4 -0.2 Poids Longueur -0.4 Comp.2 Peugeot_205 Honda_Civic Nissan_Vanette VW_Caravelle -0.4 -0.2 0.0 Comp.1 0.2 Etude de l’axe 2 ¾ Variables : On retient les variables telles que la coordonnée de u2 (deuxième vecteur propre) est supérieur en valeur absolue à 1/racine(nombre de variables)= 0.4082483. Il n’y a pas de problème de représentativité car ce sont les variables qui contribuent le plus qui sont le mieux représentées. Etude de l’axe 2 >tab1=loadings(acp)[loadings(acp) [,2]<0,2] Poids Longueur Largeur -0.2551693 -0.2955840 -0.4783191 >tab2=loadings(acp)[loadings(acp)[,2] >0,2] Cylindre Puissance Vitesse 0.03396424 0.42122241 0.66343624 Etude de l’axe 2 ¾ Conclusion : L’axe 2 oppose les voitures familiales (VW caravelle , Nissan caravelles et accessoirement ford fiesta et renault espace), imposantes mais lentes aux sportives (Bmw_325iX ,Audi_90_Quattro Peugeot_205_Rallye, Seat_Ibiza_SX_I et Citroen-ax-sport), de petit gabarit (moins larges que la moyenne et aussi accessoirement moins longues et moins lourdes) mais roulant vite et puissantes. Classification Ici, il y a peu d’individus et n-p est raisonnable. La méthode la plus appropriée est la CAH. On va utiliser la métrique inverse des écartstypes (tableau centré réduit, puis utilisation de la métrique Euclidienne), et la distance de Ward comme stratégie d’agrégation. >voi=scale(voit)*sqrt(24/23) On peut vérifier que l’inertie du nuage de points individus=nombre de variables (car le tableau est centré réduit ): > sum(voi^2)/24 [1] 6 Classification > cl=hclust(dist(voi), method="ward") Perte d’inertie inter-classes à chaque agrégation : >dib=cl$height/48 [1] 0.003928178 0.009030076 0.011413142 0.011587196 0.012513408 0.015491365 [7] 0.023291571 0.023520352 0.026305100 0.032032549 0.035005189 0.036628865 [13] 0.040100034 0.047724631 0.058974617 0.061522706 0.105877746 0.199606047 [19] 0.225112404 0.226436998 0.292694735 1.429194809 3.072008281 Classification on vérifie: >sum(dib) [1] 6 Ainsi, l’inertie interclasses passe de 6 (=inertie totale) à 6sum(dib)=0. Classification ¾ Sélection du nombre de classes : > r2=(6-cumsum(dib))/6;r2 [1] 9.993453e-01 9.978403e-01 9.959381e-01 9.940069e-01 9.919213e-01 [6] 9.893394e-01 9.854575e-01 9.815375e-01 9.771533e-01 9.718145e-01 [11] 9.659803e-01 9.598755e-01 9.531922e-01 9.452381e-01 9.354090e-01 [16] 9.251552e-01 9.075089e-01 8.742412e-01 8.367225e-01 7.989830e-01 [21] 7.502005e-01 5.120014e-01 -2.960595e-16 > plot(r2,type="b", main="R² partiel",xlab="nombre d'iterations") Classification 0.6 0.4 0.2 0.0 (6 - cumsum(dib))/6 0.8 1.0 R² partiel 5 10 15 nombre d'iterations 20 Classification Conclusion : Le coefficient de corrélation partielle (ou l’inertie interclasses) décroit doucement jusqu’à la 17° itération (7 classes à 6 classes), où on passe de 91% à 87% de l’inertie totale. Il décroit encore plus fortement entre la 21° et la 22° itération (3 classes à 2 classes) où l’on passe de 75% à 51% de l’inertie totale. On peut donc choisir une partition en trois classes, où l’on conserve 75% de l’inertie totale, ou une partition en 7 classes si l’on sait interpréter les classes, où l’on conserve 91% de l’inertie. dist(voi)^2 hclust (*, "ward") VW_Caravelle Nissan_Vanette Renault_Espace Opel_Omega Ford_Sierra Peugeot_405_Break Citroen_BX Peugeot_405 Renault_19 Renault_21 Fiat_Tipo Renault_25 50 100 150 >plot(cl,hang=-1,cex=0.7) Cluster >rect.hclust(cl, k=3, border="red") Rover_827i Bmw_530i Ford_Scorpio Audi_90_Quattro Bmw_325iX Fiat_Uno Ford_Fiesta Peugeot_205 Seat_Ibiza_SX_I Honda_Civic Citroen-ax-sport Peugeot_205_Rallye 0 Height Classification Dendrogram dist(voi)^2 hclust (*, "ward") VW_Caravelle Nissan_Vanette Renault_Espace Opel_Omega Ford_Sierra Peugeot_405_Break Citroen_BX Peugeot_405 Renault_19 Renault_21 Fiat_Tipo Renault_25 50 100 150 >plot(cl,hang=-1,cex=0.7) Cluster >rect.hclust(cl, k=7, border="red") Rover_827i Bmw_530i Ford_Scorpio Audi_90_Quattro Bmw_325iX Fiat_Uno Ford_Fiesta Peugeot_205 Seat_Ibiza_SX_I Honda_Civic Citroen-ax-sport Peugeot_205_Rallye 0 Height Classification Dendrogram Classification Classification ¾Caractérisation des classes (k=7) C1(n=4) C2(n=5) C3(n=4) C4(n=4) C5(n=2) C6(n=2) C7(n=3) Honda_Civic Peugeot_205 _Rallye Seat_Ibiza_S X_I Citroen-axsport Renault_19 Fiat_Tipo Peugeot_405 Renault_21 Citroen_BX Bmw_530i Rover_827i Renault_25 Ford_Scorpio Opel_Omega Peugeot_405 _Break Ford_Sierra Renault_Esp ace Bmw_325iX Audi_90_Qu attro Nissan_Vane tte VW_Caravell e Ford_Fiesta Fiat_Uno Peugeot_205 Classification Calcul des moyennes par classes et de l’excentricité (distance du centre de gravité de la classe au centre de gravité du nuage) : >tab= cbind(voit,class=cutree(cl,k=7)) >t=matrix(rep(0,49),7,7) >for(i in 1:7){t[i,]= apply(tab[which(tab[,7]==i),],2,mean)} C1 C2 C3 C4 C5 C6 Cylindre 1361.25 1781.4 2785.50 1972.75 2244.0 2030.5 Puissance 97.00 88.6 174.25 120.50 165.5 99.5 Vitesse 182.00 178.4 218.50 186.50 211.0 146.5 Poids 827.50 1042.0 1392.50 1207.50 1260.0 1375.0 Longueur 363.00 424.0 469.50 449.75 435.5 446.5 Largeur 161 169.2 176.50 174.25 166.5 176.5 excentricité 6.07 0.63 11.51 1.26 4.22 5.19 C7 total 1271.00 1906.12 62.67 113.67 146.33 183.08 823.33 1110.83 368.33 421.58 157.67 168.83 11.12 0 Classification Classification ¾ Représentation des classes sur les axes factoriels (programme n°3 du cours modifié) >cl=hclust(dist(voi), method="ward") >p = princomp(voi) >u = p$loadings >x = (t(u) %*% t(voi))[1:2,] > x = t(x) > plot(x, col=cutree(cl, k=7), pch=3, lwd=3, xlab="caractéristiques fortes--faibles", ylab="volumineuses---puissantes") > text( x[,1], x[,2], attr(x, "dimnames")[[1]],col=cutree(cl, k=7),cex=0.7 ) Classification Classification ¾ Consolidation par kmeans (doit normalement être fait avant l’interprétation, mais ici, on obtient les mêmes classes) > c=cutree(cl,k=7) > tab= cbind(voi,c) > t=matrix(rep(0,49),7,7) > for(i in 1:7){t[i,]= apply(tab[which(tab[,7]==i),],2,mean)} > t=t[,-7] > dim(t) [1] 7 6 Classification >kl=kmeans(voi,t) > cc=cbind(kl$cluster,c) > which(cc[,1]!=cc[,2]) numeric(0)
Documents pareils
VOITURE: On étudie 6 différents paramètres mécaniques (les
Honda_Civic
Renault_19
Fiat_Tipo
Peugeot_405
Renault_21
Citroen_BX
Bmw_530i
Rover_827i
Renault_25
Opel_Omega
Peugeot_405_Break
Ford_Sierra
Bmw_325iX
Audi_90_Quattro
Ford_Scorpio
Renault_Espace
Niss...