Importation des données + summary

data <- read.table("dataTP310326.txt", header = TRUE)
nrow(data)
## [1] 49
ncol(data)
## [1] 73
summary(data)
##        x1                y1                 x2                y2          
##  Min.   :-0.4009   Min.   :0.004474   Min.   :-0.3476   Min.   :0.005404  
##  1st Qu.:-0.3679   1st Qu.:0.039127   1st Qu.:-0.3191   1st Qu.:0.036960  
##  Median :-0.3592   Median :0.049904   Median :-0.3098   Median :0.043218  
##  Mean   :-0.3580   Mean   :0.050618   Mean   :-0.3042   Mean   :0.045377  
##  3rd Qu.:-0.3498   3rd Qu.:0.062017   3rd Qu.:-0.2949   3rd Qu.:0.054952  
##  Max.   :-0.3187   Max.   :0.106413   Max.   :-0.2240   Max.   :0.073685  
##        x3                y3                x4                 y4           
##  Min.   :-0.2257   Min.   :0.01271   Min.   :-0.10612   Min.   :-0.010334  
##  1st Qu.:-0.2035   1st Qu.:0.02145   1st Qu.:-0.05726   1st Qu.: 0.004336  
##  Median :-0.1921   Median :0.02836   Median :-0.04535   Median : 0.011461  
##  Mean   :-0.1902   Mean   :0.03131   Mean   :-0.04822   Mean   : 0.011299  
##  3rd Qu.:-0.1794   3rd Qu.:0.03778   3rd Qu.:-0.03166   3rd Qu.: 0.017310  
##  Max.   :-0.1403   Max.   :0.06032   Max.   :-0.01642   Max.   : 0.031428  
##        x5                  y5                  x6                  y6          
##  Min.   :-0.077635   Min.   :-0.005068   Min.   :-0.045804   Min.   :0.003756  
##  1st Qu.:-0.027803   1st Qu.: 0.005248   1st Qu.:-0.003644   1st Qu.:0.018637  
##  Median :-0.019338   Median : 0.012237   Median : 0.003990   Median :0.026277  
##  Mean   :-0.022004   Mean   : 0.011515   Mean   : 0.001454   Mean   :0.024033  
##  3rd Qu.:-0.010980   3rd Qu.: 0.016953   3rd Qu.: 0.008638   3rd Qu.:0.030714  
##  Max.   : 0.005522   Max.   : 0.026045   Max.   : 0.022566   Max.   :0.038033  
##        x7                 y7                x8                 y8         
##  Min.   :-0.03002   Min.   :0.01146   Min.   :-0.01695   Min.   :0.02075  
##  1st Qu.: 0.01229   1st Qu.:0.03603   1st Qu.: 0.02167   1st Qu.:0.05235  
##  Median : 0.01730   Median :0.04413   Median : 0.02547   Median :0.06406  
##  Mean   : 0.01558   Mean   :0.04190   Mean   : 0.02500   Mean   :0.06103  
##  3rd Qu.: 0.02131   3rd Qu.:0.05237   3rd Qu.: 0.03031   3rd Qu.:0.07309  
##  Max.   : 0.03289   Max.   :0.05933   Max.   : 0.03906   Max.   :0.08707  
##        x9                  y9               x10               y10         
##  Min.   :-0.001799   Min.   :0.03112   Min.   :0.01784   Min.   :0.04603  
##  1st Qu.: 0.031181   1st Qu.:0.06823   1st Qu.:0.04629   1st Qu.:0.08578  
##  Median : 0.035830   Median :0.08539   Median :0.05152   Median :0.10579  
##  Mean   : 0.035856   Mean   :0.08105   Mean   :0.05187   Mean   :0.10150  
##  3rd Qu.: 0.041232   3rd Qu.:0.09553   3rd Qu.:0.05797   3rd Qu.:0.11821  
##  Max.   : 0.054337   Max.   :0.11888   Max.   :0.07897   Max.   :0.14762  
##       x11               y11               x12               y12         
##  Min.   :0.04013   Min.   :0.06310   Min.   :0.06470   Min.   :0.05129  
##  1st Qu.:0.06979   1st Qu.:0.09865   1st Qu.:0.08927   1st Qu.:0.08419  
##  Median :0.07606   Median :0.11857   Median :0.09576   Median :0.10060  
##  Mean   :0.07541   Mean   :0.11512   Mean   :0.09573   Mean   :0.09819  
##  3rd Qu.:0.08245   3rd Qu.:0.13181   3rd Qu.:0.10253   3rd Qu.:0.11251  
##  Max.   :0.10267   Max.   :0.16599   Max.   :0.11716   Max.   :0.14329  
##       x13               y13               x14               y14         
##  Min.   :0.07925   Min.   :0.04352   Min.   :0.09763   Min.   :0.03259  
##  1st Qu.:0.09696   1st Qu.:0.07371   1st Qu.:0.11077   1st Qu.:0.05475  
##  Median :0.10087   Median :0.08752   Median :0.11530   Median :0.06215  
##  Mean   :0.10143   Mean   :0.08305   Mean   :0.11509   Mean   :0.06134  
##  3rd Qu.:0.10599   3rd Qu.:0.09481   3rd Qu.:0.11857   3rd Qu.:0.07032  
##  Max.   :0.12093   Max.   :0.11696   Max.   :0.13457   Max.   :0.08773  
##       x15              y15               x16              y16         
##  Min.   :0.1224   Min.   :0.02435   Min.   :0.1429   Min.   :0.01390  
##  1st Qu.:0.1318   1st Qu.:0.03493   1st Qu.:0.1574   1st Qu.:0.02459  
##  Median :0.1375   Median :0.04039   Median :0.1621   Median :0.03070  
##  Mean   :0.1366   Mean   :0.04147   Mean   :0.1635   Mean   :0.03102  
##  3rd Qu.:0.1411   3rd Qu.:0.04489   3rd Qu.:0.1673   3rd Qu.:0.03507  
##  Max.   :0.1577   Max.   :0.07038   Max.   :0.1988   Max.   :0.05901  
##       x17              y17                x18              y18           
##  Min.   :0.1677   Min.   :0.006327   Min.   :0.1681   Min.   :-0.009410  
##  1st Qu.:0.1788   1st Qu.:0.024904   1st Qu.:0.1765   1st Qu.: 0.003516  
##  Median :0.1833   Median :0.028338   Median :0.1820   Median : 0.009986  
##  Mean   :0.1856   Mean   :0.029757   Mean   :0.1835   Mean   : 0.010901  
##  3rd Qu.:0.1887   3rd Qu.:0.037264   3rd Qu.:0.1868   3rd Qu.: 0.018620  
##  Max.   :0.2282   Max.   :0.054241   Max.   :0.2259   Max.   : 0.029206  
##       x19              y19                 x20              y20           
##  Min.   :0.1575   Min.   :-0.017094   Min.   :0.1478   Min.   :-0.024746  
##  1st Qu.:0.1674   1st Qu.:-0.008964   1st Qu.:0.1582   1st Qu.:-0.021284  
##  Median :0.1713   Median :-0.002589   Median :0.1622   Median :-0.015046  
##  Mean   :0.1734   Mean   :-0.001709   Mean   :0.1645   Mean   :-0.013658  
##  3rd Qu.:0.1773   3rd Qu.: 0.007235   3rd Qu.:0.1712   3rd Qu.:-0.007135  
##  Max.   :0.2152   Max.   : 0.013575   Max.   :0.2056   Max.   : 0.001310  
##       x21              y21                x22              y22          
##  Min.   :0.1403   Min.   :-0.04381   Min.   :0.1526   Min.   :-0.06798  
##  1st Qu.:0.1487   1st Qu.:-0.03412   1st Qu.:0.1663   1st Qu.:-0.05629  
##  Median :0.1546   Median :-0.03005   Median :0.1735   Median :-0.04952  
##  Mean   :0.1575   Mean   :-0.02770   Mean   :0.1756   Mean   :-0.04686  
##  3rd Qu.:0.1651   3rd Qu.:-0.02128   3rd Qu.:0.1834   3rd Qu.:-0.03771  
##  Max.   :0.1930   Max.   :-0.01136   Max.   :0.2108   Max.   :-0.02191  
##       x23              y23                x24              y24          
##  Min.   :0.1376   Min.   :-0.09103   Min.   :0.1151   Min.   :-0.11063  
##  1st Qu.:0.1495   1st Qu.:-0.07344   1st Qu.:0.1215   1st Qu.:-0.07726  
##  Median :0.1561   Median :-0.06608   Median :0.1264   Median :-0.07005  
##  Mean   :0.1579   Mean   :-0.06459   Mean   :0.1300   Mean   :-0.07098  
##  3rd Qu.:0.1664   3rd Qu.:-0.05975   3rd Qu.:0.1372   3rd Qu.:-0.06470  
##  Max.   :0.1856   Max.   :-0.03548   Max.   :0.1600   Max.   :-0.03874  
##       x25               y25                x26               y26          
##  Min.   :0.08244   Min.   :-0.11285   Min.   :0.02316   Min.   :-0.11806  
##  1st Qu.:0.09084   1st Qu.:-0.07518   1st Qu.:0.05450   1st Qu.:-0.07585  
##  Median :0.09692   Median :-0.06574   Median :0.06091   Median :-0.06629  
##  Mean   :0.09874   Mean   :-0.06964   Mean   :0.05994   Mean   :-0.07022  
##  3rd Qu.:0.10334   3rd Qu.:-0.06143   3rd Qu.:0.06685   3rd Qu.:-0.06153  
##  Max.   :0.13234   Max.   :-0.04456   Max.   :0.10171   Max.   :-0.04595  
##       x27                y27                x28                 y28          
##  Min.   :-0.03466   Min.   :-0.10470   Min.   :-0.070085   Min.   :-0.10122  
##  1st Qu.: 0.01538   1st Qu.:-0.07973   1st Qu.:-0.016862   1st Qu.:-0.08198  
##  Median : 0.02089   Median :-0.07222   Median :-0.012865   Median :-0.07391  
##  Mean   : 0.01823   Mean   :-0.07116   Mean   :-0.015616   Mean   :-0.07094  
##  3rd Qu.: 0.02617   3rd Qu.:-0.06269   3rd Qu.:-0.008245   3rd Qu.:-0.06263  
##  Max.   : 0.06163   Max.   :-0.03502   Max.   : 0.011803   Max.   :-0.02536  
##       x29                y29                x30                y30          
##  Min.   :-0.09952   Min.   :-0.09682   Min.   :-0.12669   Min.   :-0.08695  
##  1st Qu.:-0.05182   1st Qu.:-0.07971   1st Qu.:-0.08706   1st Qu.:-0.07548  
##  Median :-0.04606   Median :-0.07219   Median :-0.08254   Median :-0.06851  
##  Mean   :-0.04934   Mean   :-0.06873   Mean   :-0.08356   Mean   :-0.06491  
##  3rd Qu.:-0.04097   3rd Qu.:-0.05992   3rd Qu.:-0.07498   3rd Qu.:-0.05667  
##  Max.   :-0.03308   Max.   :-0.01965   Max.   :-0.06524   Max.   :-0.02063  
##       x31                y31                x32               y32          
##  Min.   :-0.14828   Min.   :-0.08048   Min.   :-0.1681   Min.   :-0.07428  
##  1st Qu.:-0.12194   1st Qu.:-0.06882   1st Qu.:-0.1577   1st Qu.:-0.06010  
##  Median :-0.11833   Median :-0.06198   Median :-0.1526   Median :-0.05569  
##  Mean   :-0.11814   Mean   :-0.05982   Mean   :-0.1536   Mean   :-0.05406  
##  3rd Qu.:-0.11160   3rd Qu.:-0.05328   3rd Qu.:-0.1491   3rd Qu.:-0.04938  
##  Max.   :-0.09904   Max.   :-0.02196   Max.   :-0.1340   Max.   :-0.02507  
##       x33               y33                x34               y34          
##  Min.   :-0.2050   Min.   :-0.06853   Min.   :-0.2470   Min.   :-0.06545  
##  1st Qu.:-0.1933   1st Qu.:-0.05321   1st Qu.:-0.2328   1st Qu.:-0.04962  
##  Median :-0.1899   Median :-0.05003   Median :-0.2270   Median :-0.04532  
##  Mean   :-0.1896   Mean   :-0.04818   Mean   :-0.2263   Mean   :-0.04296  
##  3rd Qu.:-0.1845   3rd Qu.:-0.04364   3rd Qu.:-0.2216   3rd Qu.:-0.03553  
##  Max.   :-0.1679   Max.   :-0.02091   Max.   :-0.1879   Max.   :-0.01720  
##       x35               y35                x36               y36          
##  Min.   :-0.2920   Min.   :-0.07256   Min.   :-0.3306   Min.   :-0.08463  
##  1st Qu.:-0.2727   1st Qu.:-0.04808   1st Qu.:-0.3112   1st Qu.:-0.05276  
##  Median :-0.2636   Median :-0.04297   Median :-0.3012   Median :-0.04497  
##  Mean   :-0.2636   Mean   :-0.04004   Mean   :-0.3001   Mean   :-0.04433  
##  3rd Qu.:-0.2596   3rd Qu.:-0.02968   3rd Qu.:-0.2928   3rd Qu.:-0.03622  
##  Max.   :-0.2158   Max.   :-0.01632   Max.   :-0.2583   Max.   :-0.01872  
##   alimentaire   
##  Min.   :1.000  
##  1st Qu.:1.000  
##  Median :2.000  
##  Mean   :2.061  
##  3rd Qu.:3.000  
##  Max.   :4.000

Dans le jeu de données, nous avons les coordonnées en 2D de points mesurées sur des photos de mâchoires de 49 espèces de chauve-souris ainsi que le régime alimentaire de la chauve-souris. Parmi les points, les 11 premiers dans le jeu de données sont répartis le long de la mâchoire et les 25 suivants entre le 4ème et le 11ème (il n’y a pas de points supplémentaires entre le 1er, 2ème, 3ème et 4ème). Les points 1 à 11 peuvent être considérés comme les points “importants” de la mâchoire, étant placés principalement à l’emplacement des dents, des articulations et des “pics”. Les 25 autres points quant à eux semblent plus être utilisés pour décrire la forme de la mâchoire. En ce qui concerne la méthode d’alimentation des chauve-souris, elle a été codé comme ceci : 1 pour les chauve-souris carnivores, 2 pour celles mangeant des fruits, 3 pour celles consommant du nectar et enfant 4 pour les chauve-souris se nourrissant de sang.

Types d’alimentation

barplot(table(data$alimentaire), main = "Histogramme de la répartition des\ntypes d'alimentation des chauve-souris du jeu de données", xlab = "Type d'alimentation", col = "Forestgreen", ylab = "Nombre d'espèces")

On peut remarquer que seulement 3 espèces se nourrissent de sang, contre 12 de nectar, 15 d’animaux et 19 de fruits.

Corrélation

dfx = select(data, starts_with("x"))
dfy = select(data, starts_with("y"))

corrplot(cor(dfx))

corrplot(cor(dfy))

Ces 2 graphes de corrélation montrent bien que les points voisins ont des valeurs similaires. Ce n’est pas une vraie corrélation mais plus une vérification que les valeurs sont correctement ordonnées et qu’il n’y a pas de valeur aberrante.

ACP

Nous allons maintenant utiliser l’ACP pour faire une exploration multidimensionnelle du jeu de données.

df = data[,1:72]
alim <- as.factor(data$alimentaire)
resPCA = PCA(df,scale.unit = TRUE, graph = FALSE)
fviz_eig(resPCA, addlabels = TRUE)
## Warning in geom_bar(stat = "identity", fill = barfill, color = barcolor, :
## Ignoring empty aesthetic: `width`.

fviz_pca_ind(resPCA, axes=c(1,2), label = "var", addEllipses = TRUE, habillage = alim, legend.title = "Alimentation", title = "ACP des chauve-souris par régime alimentaire")
## Ignoring unknown labels:
## • linetype : "Alimentation"
## Too few points to calculate an ellipse

fviz_pca_ind(resPCA, axes=c(2,3), label = "var", addEllipses = TRUE, habillage = alim, legend.title = "Alimentation", title = "ACP des chauve-souris par régime alimentaire")
## Ignoring unknown labels:
## • linetype : "Alimentation"
## Too few points to calculate an ellipse

Le premier graphe nous montre que les dimensions 1, 2, 3 et 4 de l’ACP explique respectivement 41%, 24.4%, 11.7% et 6.4% de la variance, pour un total de 83.5% du score.

Le premier plot d’ACP, avec les dimensions 1 et 2 pour un total de 65.4% de la variance, nous présente principalement 3 groupes. Le premier en violet, contenant les 3 espèces de chauve-souris se nourrissant de sang, est situé bien à l’écart des trois autres dans le coin en haut à gauche du plot. Le 2ème groupe distinguable est celui en bleu, représentant les espèces qui consomment du nectar, étant plus proche des groupes rouge et vert mais restant tout de même à l’écart. Enfin, les groupes rouge et vert, les chauve-souris carnivores et mangeant des fruits, ne sont pas clairement distinguables sur ce plot.

Le deuxième plot d’ACP est similaire dans sa réparition des groupes, avec le violet à l’écart, en revanche le groupe bleu s’est rapproché du rouge et vert.

Vérification

On peut vérifier notre analyse en faisant un rapide clustering.

reskmeans = kmeans(df, 3)
fviz_pca_ind(resPCA, axes = c(1,2), label = "var", habillage = as.factor(reskmeans$cluster), legend.title = "Clusters", title = "ACP des chauve-souris avec les clusters kmeans")
## Ignoring unknown labels:
## • fill : "Clusters"
## • linetype : "Clusters"

En demandant au clustering de former 3 groupes, kmeans a principalement regroupé les alimentations 1 et 2 et formé des groupes séparés pour les alimentations 3 et 4, ce qui est cohérent avec l’analyse que nous avons faite de l’ACP.

Conclusion

Pour conclure, on peut classer les chauve-souris en différents groupes, notamment en séparant celles qui consomment du sang et du nectar de celles consommant des animaux ou des fruits. La différence principale dans les alimentations est l’aspect de “solidité” des aliments. En effet, les animaux et fruits nécessitent d’être machés alors que le nectar et le sang ont une consistance plus liquide, ce qui explique le similitude des alimentations 1 et 2 et l’écart avec les alimentations 3 et 4.

Il est donc difficile de différencier les chauve-souris carnivores des mangeuses de fruits avec ce jeu de données, il est possible que d’autres paramètres puissent être étudiés pour en trouver la différence.

Enfin, le jeu de données ne présentent qu’une valeur par espèce sans nous donner un grand nombre d’informations, telles que l’âge de la chauve-souris. Le jeu de données est assez incomplet et il serait raisonnable de ne pas trop s’y fier pour tirer des conclusions sur les formes de mâchoires des chauve-souris.