Le Ministère en charge de l’agriculture a réalisé fin 2010 - début 2011 un nouveau recensement agricole sur l’ensemble du territoire de la métropole, des départements d’outre-mer et des deux collectivités d’outre-mer de Saint-Barthélémy et Saint-Martin.
Le recensement de l’agriculture concerne toutes les exploitations agricoles, y compris les plus petites.
Les recensements précédents avaient eu lieu en 2000 et en 1988. Celui de 2010 est l’une des plus importantes opérations statistiques du ministère de l’Agriculture, de l’Alimentation, de la Pêche, de la Ruralité et de l’Aménagement du Territoire.
Ainsi, nous allons nous intéresser à la typologie régionale des exploitations agricoles pour les 3 années de recensements et éventuellement identifier les zones ou régions qui changent de caractéristiques dans le temps.
Le recensement s’effectue dans le cadre de la réglementation statistique de l’Union européenne et selon les recommandations des Nations unies. Pour répondre aux obligations internationales et communautaires, tous les pays de l’Union europèenne ont effectué un recensement agricole entre 2009 et 2010, ce qui permet de comparer leur agriculture.
Toutes les exploitations agricoles situées en métropole, dans les départements d’outre-mer et dans les collectivités d’outre-mer, de Saint-Martin et Saint Barthélémy sont concernées.
Les bases de données sont composées des variables suivantes :
data88 <-read.csv("data88.csv", header = T, sep=";")
data88[,4]=as.numeric(data88[,4])
data88[,5]=as.numeric(data88[,5])
data88[,6]=as.numeric(data88[,6])
data88[,7]=as.numeric(data88[,7])
data88[,8]=as.numeric(data88[,8])
data88[,9]=as.numeric(data88[,9])
data88[,10]=as.numeric(data88[,10])
head(data88)
## Libelle_commune Region Departement Exploi_Agri_1988
## 1 L'Abergement-Clémenciat Rhône-Alpes Ain 225
## 2 L'Abergement-de-Varey Rhône-Alpes Ain 351
## 3 Ambérieu-en-Bugey Rhône-Alpes Ain 221
## 4 Ambérieux-en-Dombes Rhône-Alpes Ain 269
## 5 Ambléon Rhône-Alpes Ain 351
## 6 Ambronay Rhône-Alpes Ain 294
## Vol_Travail_1988 Sup_Agri_1988 Cheptel_1988 Sup_Labou_1988
## 1 43 912 1402 635
## 2 4 193 104 2743
## 3 26 281 130 48
## 4 55 1429 1310 1109
## 5 7 154 144 58
## 6 64 1623 2311 1194
## Sup_Cul_Per_1988 Sup_Herb_1988
## 1 957 268
## 2 2 191
## 3 2 231
## 4 957 317
## 5 4 94
## 6 3 426
Voici un aperçu de la base de données agricoles communales du recensement de 1988.
data00 <-read.csv("data00.csv", header = T, sep=";")
data00[,4]=as.numeric(data00[,4])
data00[,5]=as.numeric(data00[,5])
data00[,6]=as.numeric(data00[,6])
data00[,7]=as.numeric(data00[,7])
data00[,8]=as.numeric(data00[,8])
data00[,9]=as.numeric(data00[,9])
data00[,10]=as.numeric(data00[,10])
head(data00)
## Libelle_commune Region Departement Exploi_Agri_2000
## 1 L'Abergement-Clémenciat Rhône-Alpes Ain 16
## 2 L'Abergement-de-Varey Rhône-Alpes Ain 6
## 3 Ambérieu-en-Bugey Rhône-Alpes Ain 13
## 4 Ambérieux-en-Dombes Rhône-Alpes Ain 29
## 5 Ambléon Rhône-Alpes Ain 5
## 6 Ambronay Rhône-Alpes Ain 33
## Vol_Travail_2000 Sup_Agri_2000 Cheptel_2000 Sup_Labou_2000
## 1 15 698 1202 555
## 2 2 8 10 2802
## 3 12 198 113 21
## 4 24 1150 626 1054
## 5 4 174 134 2803
## 6 39 1891 1446 1499
## Sup_Cul_Per_2000 Sup_Herb_2000 Orie_Tech_eco_2000
## 1 848 145 Polyculture et polyélevage
## 2 2 8 Polyculture et polyélevage
## 3 2 177 Polyculture et polyélevage
## 4 848 98 Polyculture et polyélevage
## 5 4 99 Bovins lait
## 6 1 391 Polyculture et polyélevage
Voici un aperçu de la base de données agricoles communales du recensement de 2000.
data10 <-read.csv("data10.csv", header = T, sep=";")
data10[,4]=as.numeric(data10[,4])
data10[,5]=as.numeric(data10[,5])
data10[,6]=as.numeric(data10[,6])
data10[,7]=as.numeric(data10[,7])
data10[,8]=as.numeric(data10[,8])
data10[,9]=as.numeric(data10[,9])
data10[,10]=as.numeric(data10[,10])
head(data10)
## Libelle_commune Region Departement Exploi_Agri_2010
## 1 L'Abergement-Clémenciat Rhône-Alpes Ain 10
## 2 L'Abergement-de-Varey Rhône-Alpes Ain 5
## 3 Ambérieu-en-Bugey Rhône-Alpes Ain 3
## 4 Ambérieux-en-Dombes Rhône-Alpes Ain 16
## 5 Ambléon Rhône-Alpes Ain 1
## 6 Ambronay Rhône-Alpes Ain 18
## Vol_Travail_2010 Sup_Agri_2010 Cheptel_2010 Sup_Labou_2010
## 1 14 838 1501 724
## 2 5 162 197 1
## 3 3 78 61 2815
## 4 17 750 369 699
## 5 3 67 47 2815
## 6 30 1779 1195 1375
## Sup_Cul_Per_2010 Sup_Herb_2010 Orie_Tech_eco_2010
## 1 794 113 Polyculture et polyélevage
## 2 794 1790 Polyculture et polyélevage
## 3 794 1790 Autres herbivores
## 4 1 52 Polyculture et polyélevage
## 5 1 1790 Bovins viande
## 6 1 404 Polyculture et polyélevage
Voici un aperçu de la base de données agricoles communales du recensement de 1988.
Avant toute analyse statistique d’un jeu de données, on doit donc se rassurer de l’apurement de la base d’étude. Ainsi nous avons constaté que les 3 bases comportent des doublons sur la colonne qui est censé être les noms des lignes. De ce fait nous allons procéder à la correction de ces anomalies.
#élimination des doublons dans un vecteur sous R
doublons <- which(duplicated(data88$Libelle_commune)) #quelles sont les séquences en double dans la colonne Libelle_commune de mon jeu de données
bc88<-data88[-doublons,] #on enregistre un nouveau tableau "bc88" ne contenant pas les lignes des doublons
row.names(bc88)=bc88$Libelle_commune
doublons1 <- which(duplicated(data00$Libelle_commune))
bc00<-data00[-doublons1,]
row.names(bc00)=bc00$Libelle_commune
doublons2 <- which(duplicated(data10$Libelle_commune))
bc10<-data10[-doublons2,]
row.names(bc10)=bc10$Libelle_commune
Ces nouvelles bases de données communales ( bc88, bc00 et bc10) correspondent donc aux bases apurées des 3 recensements agricoles de 1988, 2000 et de 2010.
Pour compléter la variable qualitative “Orien_Tech_Eco” poour les 2 années de recensements, nous avons complété les modalités manquantes par la modalité la plus représentée.
# Pour le recensement de 2000
for (i in 1:length(bc00$Orie_Tech_eco_2000)){
if(bc00$Orie_Tech_eco_2000[i]=="")
bc00$Orie_Tech_eco_2000[i]="Polyculture et polyélevage"
}
for (i in 1:length(bc00$Orie_Tech_eco_2000)){
if(bc00$Orie_Tech_eco_2000[i]==" ")
bc00$Orie_Tech_eco_2000[i]="Polyculture et polyélevage"
}
# Pour le recensement de 2010
for (i in 1:length(bc10$Orie_Tech_eco_2010)){
if(bc10$Orie_Tech_eco_2010[i]=="")
bc10$Orie_Tech_eco_2010[i]="Polyculture et polyélevage"
}
for (i in 1:length(bc10$Orie_Tech_eco_2010)){
if(bc10$Orie_Tech_eco_2010[i]==" ")
bc10$Orie_Tech_eco_2010[i]="Polyculture et polyélevage"
}
#Importation du package
library(raster)
#par(mfrow = c(1,2))
formes <- getData(name="GADM", country="FRA", level=2)
#plot(formes)
#établissement de l'index
idx <- match(formes$NAME_2, bc88$Departement)
concordance <- bc88[idx, "Exploi_Agri_1988"]
formes$Exploi_Agri_1988 = concordance
spplot(formes, "Exploi_Agri_1988", color=formes$NAME_2, main=list(label="Densité du nombre d'exploitations agricoles niveau departemental du recensement de 1988",cex=.6))
Dans cette cartographie, nous voyons comment est distribué le nombre d’exploitations agricoles sur tout le territoire français du recensement de 1988.
concordance0 <- bc00[idx, "Exploi_Agri_2000"]
formes$Exploi_Agri_2000 = concordance0
spplot(formes, "Exploi_Agri_2000", color=formes$NAME_2, main=list(label="Densité du nombre d'exploitations agricoles niveau departemental du recensement de 2000",cex=.6))
Dans cette cartographie, nous voyons comment est distribué le nombre d’exploitations agricoles sur tout le territoire français du recensement de 2000. Cependant, on constate par rapport au recensement de 1988, une forte diminution des exploitations agricoles au niveau des départements.
concordance0 <- bc00[idx, "Orie_Tech_eco_2000"]
formes$Orie_Tech_eco_2000 = concordance0
spplot(formes, "Orie_Tech_eco_2000", color=formes$NAME_2, main=list(label="Orientation technico_économique des départements du recensement de 2000",cex=.6))
Nous constatons qu’en 2000, l’activités Polyculture et polyélevage est celle dominante et elle est pratiquée quasiment sur tout le territoire. Il s’en suit les activités comme l’élevage des Ovins et caprins ainsi que des Porcins.
concordance1 <- bc10[idx, "Exploi_Agri_2010"]
formes$Exploi_Agri_2010 = concordance1
spplot(formes, "Exploi_Agri_2010", color=formes$NAME_2, main=list(label="Densité du nombre d'exploitations agricoles niveau departemental du recensement de 2010",cex=.6))
Dans cette cartographie, nous voyons touours la décroissance du nombre d’exploitations et surtout la parties nord et extreme ouest où y’a presque plus d’exploitations agricoles au recensement de 2010.
concordance10 <- bc10[idx, "Orie_Tech_eco_2010"]
formes$Orie_Tech_eco_2010 = concordance10
spplot(formes, "Orie_Tech_eco_2010", color=formes$NAME_2, main=list(label="Orientation technico_économique des départements du recensement de 2010",cex=.6))
Nous constatons qu’au recensement de 2010, une baisse de l’activités Polyculture et polyélevage au profit de l’élevage de Bovins viande, Bovins mixte, Bovins lait et Autres herbivores. Mais aussi la culture de Fruits et autes cultures permenantes surtout vers l’extreme Est.
L’ANOVA permet de voir si une variable numérique a des valeurs différentes en fonction de plusieurs groupes. C’est une généralisation du test de Student permettant de comparer plus de deux groupes
Dans cette section nous allons voir si les différentes régions ont approximativement le même nombre moyen d’exploitations agricoles. Autrement si on a une répartition équilibrée du nombre moyen d’exploitations agricoles dans les régions de la France métropolitaine. L’homogénéité de la moyenne est évaluée par l’analyse de la variance.
On cherche donc à savoir si la région permet d’expliquer le nombre d’exploitations agricoles. Autrement si le nombre d’exploitations agricoles est dépendant de la région. On se pose donc la question : La dépendance étudiée est-elle ou non significative pour le facteur (région) étuddié ?
Le test statistique effectué est celui de Fisher (comparant la variance interéchantillon à la variance intra-échantillon).
L’hypothèse nulle (Ho) testée est : Le nombre moyen d’exploitations agricoles est homogène sur l’ensemble des régions.
anova88<- aov(Exploi_Agri_1988 ~ Region, data=data88)
summary(anova88)
## Df Sum Sq Mean Sq F value Pr(>F)
## Region 26 6486079 249465 20.33 <2e-16 ***
## Residuals 36657 449877015 12273
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pour un seuil alpha = 5% supérieur à la P-valeur, on rejette cette hypothèse nulle. C’est-à-dire qu’on peut affirmer avec un niveau de confiance de 95% que les nombres moyens d’exploitations agricoles sont différents dans les diférentes régions.
anova00<- aov(Exploi_Agri_2000 ~ Region, data=data00)
summary(anova00)
## Df Sum Sq Mean Sq F value Pr(>F)
## Region 26 12867818 494916 837 <2e-16 ***
## Residuals 36657 21676283 591
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Même conclusion de test pour le cas de 1988.
anova10<- aov(Exploi_Agri_2010 ~ Region, data=data10)
summary(anova10)
## Df Sum Sq Mean Sq F value Pr(>F)
## Region 26 6918783 266107 717.8 <2e-16 ***
## Residuals 36657 13590296 371
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Même conclusion de test que les cas précédents pour les mêmes raisons.
colnames(data88)=c("Libelle_commune", "Region","Departement", "Exploi_Agri_1988",
"Vol_Travail_1988", "Sup_Agri_1988","Cheptel_1988", "Sup_Labou_1988",
"Sup_Cul_Per_1988", "Sup_Herb_1988")
Les jeux de données dont nous disposons sont des données de recensement à l’échelle communale. Cependant, pour des raisons de lisibilité sur les graphiques, on se propose de les aggréger à l’échelle régionale.
data888=data88
tab1=aggregate(data888$Exploi_Agri_1988, by=list(data888$Region), FUN=mean, na.rm=TRUE)
Region=tab1[,1]
tab1=tab1[,2]
tab2=aggregate(data888$Vol_Travail_1988, by=list(data888$Region), FUN=mean, na.rm=TRUE)
tab2=tab2[,2]
tab3=aggregate(data888$Sup_Agri_1988, by=list(data888$Region), FUN=mean, na.rm=TRUE)
tab3=tab3[,2]
tab4=aggregate(data888$Cheptel_1988, by=list(data888$Region), FUN=mean, na.rm=TRUE)
tab4=tab4[,2]
tab5=aggregate(data888$Sup_Labou_1988, by=list(data888$Region), FUN=mean, na.rm=TRUE)
tab5=tab5[,2]
tab6=aggregate(data888$Sup_Cul_Per_1988, by=list(data888$Region), FUN=mean, na.rm=TRUE)
tab6=tab6[,2]
tab7=aggregate(data888$Sup_Herb_1988, by=list(data888$Region), FUN=mean, na.rm=TRUE)
tab7=tab7[,2]
Après avoir aggréger chaque variable, nous allons les concatener afin d’avoir la “base88” qui est celle correspondant à l’échelle régionale au recencesement de 1988.
base88 <- cbind.data.frame(tab1, tab2, tab3, tab4, tab5, tab6, tab7)
colnames(base88)=c("Exploi_Agri_1988", "Vol_Travail_1988", "Sup_Agri_1988", "Cheptel_1988","Sup_Labou_1988", "Sup_Cul_Per_1988", "Sup_Herb_1988")
row.names(base88)=Region
Cette base de données le résultat de l’aggrégation des données de 1988. Elle comporte 27 individus(Régions) décritent par 7 variables comme on peut le constater ci-après :
head(base88)
## Exploi_Agri_1988 Vol_Travail_1988 Sup_Agri_1988
## Alsace 173.7190 31.67588 365.2113
## Aquitaine 192.1346 52.90200 666.5061
## Auvergne 201.3084 46.51908 1155.3366
## Basse-Normandie 181.4051 40.86148 741.9409
## Bourgogne 184.5181 28.93109 866.6095
## Bretagne 209.6504 103.69843 1303.6630
## Cheptel_1988 Sup_Labou_1988 Sup_Cul_Per_1988 Sup_Herb_1988
## Alsace 330.2301 568.7522 445.9358 222.6748
## Aquitaine 578.2740 456.5579 192.1646 298.9887
## Auvergne 1272.1282 506.3695 563.9359 801.0336
## Basse-Normandie 1156.1716 388.0706 823.4205 481.5315
## Bourgogne 628.9545 568.7713 532.1364 579.4790
## Bretagne 4374.1299 1090.6685 451.2488 291.3567
Cette nouvelle base de données résulte de l’aggrégarion sur la moyenne de la base communale du resensement de 1988.
data000=data00
col1=aggregate(data000$Exploi_Agri_2000, by=list(data000$Region), FUN=mean, na.rm=TRUE)
Region=col1[,1]
col1=col1[,2]
col2=aggregate(data000$Vol_Travail_2000, by=list(data000$Region), FUN=mean, na.rm=TRUE)
col2=col2[,2]
col3=aggregate(data000$Sup_Agri_2000, by=list(data000$Region), FUN=mean, na.rm=TRUE)
col3=col3[,2]
col4=aggregate(data000$Cheptel_2000, by=list(data000$Region), FUN=mean, na.rm=TRUE)
col4=col4[,2]
col5=aggregate(data000$Sup_Labou_2000, by=list(data000$Region), FUN=mean, na.rm=TRUE)
col5=col5[,2]
col6=aggregate(data000$Sup_Cul_Per_2000, by=list(data000$Region), FUN=mean, na.rm=TRUE)
col6=col6[,2]
col7=aggregate(data000$Sup_Herb_2000, by=list(data000$Region), FUN=mean, na.rm=TRUE)
col7=col7[,2]
Après avoir aggréger chaque variable, nous allons les concatener afin d’avoir la “base00” qui est celle correspondant à l’échelle régionale au recencesement de 2000.
base00 <- cbind.data.frame(col1, col2, col3, col4, col5, col6, col7)
colnames(base00)=c("Exploi_Agri_2000", "Vol_Travail_2000", "Sup_Agri_2000", "Cheptel_2000",
"Sup_Labou_2000", "Sup_Cul_Per_2000", "Sup_Herb_2000")
row.names(base00)=Region
Cette base de données le résultat de l’aggrégation des données de 2000. Elle comporte 27 individus(Régions) décritent par 7 variables comme on peut le constater ci-après :
head(base00)
## Exploi_Agri_2000 Vol_Travail_2000 Sup_Agri_2000
## Alsace 16.69690 20.93142 371.9369
## Aquitaine 24.48650 40.82709 641.7256
## Auvergne 22.86031 30.90611 1153.1198
## Basse-Normandie 19.73620 22.98344 697.6523
## Bourgogne 12.90078 19.44673 867.6378
## Bretagne 40.32992 59.76299 1339.8283
## Cheptel_2000 Sup_Labou_2000 Sup_Cul_Per_2000 Sup_Herb_2000
## Alsace 273.8783 860.0398 509.4159 317.9192
## Aquitaine 574.4551 567.8463 288.4987 327.1350
## Auvergne 1281.2573 691.8443 653.6374 729.7412
## Basse-Normandie 1071.5408 592.9443 718.8808 391.3703
## Bourgogne 625.5821 828.8152 658.9892 703.8006
## Bretagne 4547.2000 1220.2394 536.8661 254.3858
Cette nouvelle base de données résulte de l’aggrégarion sur la moyenne de la base communale du resensement de 2000.
data010=data10
col1=aggregate(data010$Exploi_Agri_2010, by=list(data010$Region), FUN=mean, na.rm=TRUE)
Region=col1[,1]
col1=col1[,2]
col2=aggregate(data010$Vol_Travail_2010, by=list(data010$Region), FUN=mean, na.rm=TRUE)
col2=col2[,2]
col3=aggregate(data010$Sup_Agri_2010, by=list(data010$Region), FUN=mean, na.rm=TRUE)
col3=col3[,2]
col4=aggregate(data010$Cheptel_2010, by=list(data010$Region), FUN=mean, na.rm=TRUE)
col4=col4[,2]
col5=aggregate(data010$Sup_Labou_2010, by=list(data010$Region), FUN=mean, na.rm=TRUE)
col5=col5[,2]
col6=aggregate(data010$Sup_Cul_Per_2010, by=list(data010$Region), FUN=mean, na.rm=TRUE)
col6=col6[,2]
col7=aggregate(data010$Sup_Herb_2010, by=list(data010$Region), FUN=mean, na.rm=TRUE)
col7=col7[,2]
Après avoir aggréger chaque variable, nous allons les concatener afin d’avoir la “base10” qui est celle correspondant à l’échelle régionale au recencesement de 2010.
base10 <- cbind.data.frame(col1, col2, col3, col4, col5, col6, col7)
colnames(base10)=c("Exploi_Agri_2010", "Vol_Travail_2010", "Sup_Agri_2010", "Cheptel_2010",
"Sup_Labou_2010", "Sup_Cul_Per_2010", "Sup_Herb_2010")
row.names(base10)=Region
Cette base de données le résultat de l’aggrégation des données de 2010. Elle comporte 27 individus(Régions) décritent par 7 variables comme on peut le constater ci-après :
head(base10)
## Exploi_Agri_2010 Vol_Travail_2010 Sup_Agri_2010
## Alsace 13.289823 25.61947 428.0686
## Aquitaine 18.752178 37.93859 648.8632
## Auvergne 18.071756 27.58702 1095.7611
## Basse-Normandie 13.181567 22.45199 699.5304
## Bourgogne 9.937439 27.71114 932.7116
## Bretagne 27.123622 55.83622 1296.0819
## Cheptel_2010 Sup_Labou_2010 Sup_Cul_Per_2010 Sup_Herb_2010
## Alsace 321.2555 818.7644 266.8883 579.8396
## Aquitaine 579.0453 722.6067 274.6790 429.8510
## Auvergne 1172.1962 709.6061 162.2817 720.1618
## Basse-Normandie 981.2555 867.1247 278.5519 427.7274
## Bourgogne 688.3587 1126.3680 204.4140 810.7859
## Bretagne 2473.2244 1253.0787 300.7394 286.1630
Cette nouvelle base de données résulte de l’aggrégarion sur la moyenne de la base communale du resensement de 2010.
par(mfrow=c(1,3))
hist(base88[,4],ylab="Nbre de Régions en 1988", col= "green", xlab="Nbre_Exploi_Agri_1988",main="Nombre de régions en ordonnée")
hist(base00[,4],ylab="Nbre de Régions en 2000", col= "red", xlab="Nbre_Exploi_Agri_2000", main="en fonction du nombre moyen")
hist(base10[,4],ylab="Nbre de Régions en 2010", col= "blue", xlab="Nbre_Exploi_Agri_2010", main="d'exploitations agricoles en abscisse")
On a dans ce graphique des histogrammes,le nombre de régions en fonctions du nombre moyen d’exploitations agricoles pour les 3 recensements. De façon générale, on constate qu’il une distribution très variable du nombre moyen d’exploitations agricoles au niveau des régions. Ceci conormément aux résultats sur l’analyse de la variance vu en haut.
apply(base88, 2, sd)
## Exploi_Agri_1988 Vol_Travail_1988 Sup_Agri_1988 Cheptel_1988
## 19.68733 98.33165 371.27099 953.55404
## Sup_Labou_1988 Sup_Cul_Per_1988 Sup_Herb_1988
## 838.08866 251.85047 263.38285
Après avoir visualiser les écarts-types de différentes variables, on pense que ces données devraient être mises à l’échelle avant la mise en cluster car les variables ont des variabilités très diférentes.
Construisons la matrice Z des données mises à l’échelle et appliquons la méthode de la variance minimale de Ward aux n = 27 régions décrites en Z et pondérés par 1/n. Vérifions que la somme des hauteurs des classes dans la hiérarchie est égale à la variance totale des données mises à l’échelle.
n=nrow(base88)
Z<-scale(base88,center=TRUE,scale=TRUE)*sqrt(n/(n-1))
arbre88_W <- hclust(dist(Z)^2/(2*n),method="ward.D")
sum(arbre88_W$height)
## [1] 7
La somme des hauteurs obtenues avec la méthode de classification Ward est égale à 7, ceci correspond donc à la variance totale des données mises à l’échelle (variance = p (nombre de variables)).
Traçons le dendrogramme et choisissons le nombre K de clusters qui semble pertinent pour couper l’arbre.
library(dendextend)
dend88_W<- as.dendrogram(arbre88_W)
# Colorer les branches en fonctions des clusters
dend88_W<- color_branches(dend88_W, k=6)
plot(dend88_W, main="Ward Dendogram", ylab="Hauteur", cex=0.5)
rect.hclust(arbre88_W,k=6)
L’arbre de classification par la méthode d’aggrégation de “Ward”, sur la base du recensement de 1988 et avec un nombre de classes fixé à 6, nous obtenons les regroupements constitués des régions suivantes :
On se propose de découper l’arbre en 6 partitions ou clusters, ce qui pourrait expliquer une grande variabilité du jeu de données initial du recensement de 1988.
Coupons l’arbre et interpréter la partition en K=6 clusters à l’aide de PCA (analyse en composantes principales) via le package “FactoMineR”.
library(FactoMineR)
library(factoextra) # Ce package est la version améliorée de FactoMineR.
Partition <- cutree(arbre88_W,6)
levels(Partition)<-paste("Classe",1:6)
Y<-as.matrix(base88,Partition=Partition)
res_Partition <- PCA(Y,scale=TRUE, graph=FALSE)
res_Partition$eig
## eigenvalue percentage of variance cumulative percentage of variance
## comp 1 3.2308757 46.155367 46.15537
## comp 2 1.5830178 22.614539 68.76991
## comp 3 0.9807916 14.011308 82.78121
## comp 4 0.4682622 6.689460 89.47068
## comp 5 0.3909243 5.584633 95.05531
## comp 6 0.1977126 2.824466 97.87977
## comp 7 0.1484158 2.120226 100.00000
Nous avons ici les valeurs propres et les pourcentages de variance expliquées par chacune de composantes principales. La somme de toutes les valeurs propres donne une variance totale de 7. Nous sommes donc en ACP normée justifiée par la somme des valeurs propres qui vaut 7 (le nombre de variables numériques).
fviz_eig(res_Partition, addlabels = TRUE, ylim = c(0, 50), main = "Valeurs propres données de 1988",xlab = "Valeurs propres associées aux différentes composantes principales")
Ce graphe ci-dessus donne les pourcentages d’inertie expliquée par les 7 composantes principales. Par conséquent, environ 68.8% de la variance totale est expliquée par les deux premières valeurs propres, en occurence les 2 premiers axes factoriels.
fviz_pca_var(res_Partition, col.var = "cos2", gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), repel = TRUE)
Ce graphique représente la projection des variables sur le premier plan factoriel. Dans un premier temps, il est important de mentionner que le premier plan factoriel permet d’expliquer 68.8% de l’information contenue dans la matrice de données initaile. Ce qui est assez pertinent pour résumer les données.
Hormis la variable “Sur_Herb_1988”, toutes les autres variables sont assez bien représentées. On peut donc se permettre d’interpréter les résultats sans prendre trop de précautions.
Par ailleurs, nous constatons 2 lots de variables corrélées :
Les variables comme “Sup_Cul_Per_1988”, “Sup_Labou_1988” et “Vol_Travail_1988” sont positivement corrélées. Ceci implique que si on a une grande valeur pour l’une des variables on a aussi de grandes valeurs pour les autres variables.
Les variables comme “Sup_Agri_1988”, “Exploi_Agri_1988” et “Cheptel_1988” sont positivement corrélées entre elles.
Ainsi, ce graphe des variables nous permettra de bien identifier les caractéristiques des groupes d’individus ou Régions qui se ressemblent.
fviz_pca_ind (res_Partition, col.ind = "cos2",gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), repel =TRUE)
Ce graphique donne la représentation des individus (Régions) colorés en fonction de leurs qualités de représentations sur le plan. Il est important de constater que seuls les individus autour de l’axe (0;0) sont pas bien représentés. On distingue ainsi les groupes de régions suivants :
On constate donc que les régions La Réunion et Guadeloupe constituent un groupe qui se ressemblent. Elles sont donc caractérisées par de fortes valeurs pour les variables “Superficie Agricole” et “Volume de Travail Annuel”. Ce groupe de régions s’oppose au groupe constitué des régions comme Lorraine, Picardie, Franche-Comté, Basse-Normandie, Haute-Normandie, Champagne-Ardenne et Nord-Pas-de-Calais qui ont donc de faibles valeurs pour ces mêmes variables.
Les régions comme Guyane, Martinique caractérisées par de grandes valeurs pour les variables “Sup_Cul_Per” et “Sup_Labou”, s’opposent donc aux régions de la classe dense constuée des régions Rhône-Alpes, Aquitaine, Alsace, Midi-Pyrénées, Corse, Bourgogne, Auvergne, Centre, Limousin, Provinces-Alpes-Côte d’Azur et Poitou Charentes qui ont donc de faibles valeurs pour ces 2 variables.
Les régions “Pays de la Loire” et “Bretagne” contrairement aux régions île de France, Collectivité d’outre-mer et Languedoc-Roussillon sont caractérisées par les variables Exploi_Agri_1988 et Cheptel_1988 et donc de fortes valeurs pour ces variables.
apply(base00, 2, sd)
## Exploi_Agri_2000 Vol_Travail_2000 Sup_Agri_2000 Cheptel_2000
## 109.0875 134.6742 379.2779 1049.1417
## Sup_Labou_2000 Sup_Cul_Per_2000 Sup_Herb_2000
## 501.9835 204.8744 281.6770
Après avoir visualiser les écarts-types de différentes variables, on pense que ces données devraient être mises à l’échelle avant la mise en cluster car les variables ont des variabilités très diférentes.
Construisons la matrice Z des données mises à l’échelle et appliquons la méthode de la variance minimale de Ward aux n = 27 régions décrites en Z et pondérés par 1/n. Vérifions que la somme des hauteurs des classes dans la hiérarchie est égale à la variance totale des données mises à l’échelle.
n=nrow(base00)
Z<-scale(base00,center=TRUE,scale=TRUE)*sqrt(n/(n-1))
arbre00_W <- hclust(dist(Z)^2/(2*n), method="ward.D")
sum(arbre00_W$height)
## [1] 7
La somme des hauteurs obtenues avec la méthode de classification Ward est égale à 7, ceci correspond donc à la variance totale des données mises à l’échelle (variance = p (nombre de variables)).
Traçons le dendrogramme et choisissons le nombre K de clusters qui semble pertinent pour couper l’arbre.
dend00_W<- as.dendrogram(arbre00_W)
# Colorer les branches en fonctions des clusters
dend00_W<- color_branches(dend00_W, k=6)
plot(dend00_W, main="Ward Dendogram sur la base de 2000", ylab="Hauteur", cex=0.5)
rect.hclust(arbre00_W,k=6)
L’arbre de classification par la méthode d’aggrégation de “Ward”, sur la base du recensement de 2000 et avec un nombre de classes fixé à 6, nous obtenons les regroupements constitués des régions suivantes :
On se propose de découper l’arbre en 6 partitions ou clusters, ce qui pourrait expliquer une grande variabilité du jeu de données initial du recensement de 2000.
Coupons l’arbre et interpréter la partition en K=6 clusters à l’aide de PCA (analyse en composantes principales) via le package “FactoMineR”.
Partition <- cutree(arbre00_W,6)
levels(Partition)<-paste("Classe",1:6)
Y<-as.matrix(base00,Partition=Partition)
res_Partition <- PCA(Y,scale=TRUE, graph=FALSE)
res_Partition$eig
## eigenvalue percentage of variance cumulative percentage of variance
## comp 1 3.4597206 49.4245803 49.42458
## comp 2 1.2107981 17.2971159 66.72170
## comp 3 1.0393364 14.8476625 81.56936
## comp 4 0.6515958 9.3085121 90.87787
## comp 5 0.4735883 6.7655470 97.64342
## comp 6 0.1477064 2.1100909 99.75351
## comp 7 0.0172544 0.2464914 100.00000
Nous avons ici les valeurs propres et les pourcentages de variance expliquées par chacune de composantes principales. La somme de toutes les valeurs propres donne une variance totale de 7. Nous sommes donc en ACP normée justifiée par la somme des valeurs propres qui vaut 7 (le nombre de variables numériques).
fviz_eig(res_Partition, addlabels = TRUE, ylim = c(0, 50), main = "Valeurs propres données de 2000",xlab = "Valeurs propres associées aux différentes composantes principales")
Ce graphe ci-dessus donne les pourcentages d’inertie expliquée par les 7 composantes principales. Par conséquent, environ 66.7% de la variance totale est expliquée par les deux premières valeurs propres, en occurence les 2 premiers axes factoriels.
fviz_pca_var(res_Partition, col.var = "cos2", gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), repel = TRUE)
Ce graphique représente la projection des variables sur le premier plan factoriel. On constate qu’en dehors de la varaible “Sup_Labou_2000” toutes les autres variables sont assez bien représentées dans le plan.
Dans un premier temps, il est important de mentionner que le premier plan factoriel permet d’expliquer 66.7% de l’information contenue dans la matrice de données initaile. Ce qui est assez pertinent pour résumer les données.
Hormis la variable “Sur_Labou_2000”, toutes les autres variables sont assez bien représentées. On peut donc se permettre d’interpréter les résultats sans prendre trop de précautions. Par ailleurs, nous constatons quelques corrélations entre variables :
Les variables comme “Exploi_Agri_2000” et “Vol_Travail_2000” sont posivement corrélées, c’est-à-dire que lorsque des individus prennent de grandes valeurs pour l’une des variables, ils prennent aussi de grande valeurs pour l’autre variable. Elles sont cependant toutes les 2 négativement corrélées avec la variable “Sup_Cul_Per_2000”.
Les variables comme “Sup_Agri_2000” et “Cheptel_2000” sont aussi corrélées entre elles et toutes les 2 négativement corrélées avec la variable “Sup_Herb_2000”.
Ces différents constats nous permettront de bien caractériser les différentes classes obtenues.
fviz_pca_ind (res_Partition, col.ind = "cos2",gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), repel =TRUE)
Ce graphique correspond à la projection des régions sur le premier plan factoriels. Ainsi, la classification des 27 régions par la méthode de Ward sur la matrice des données mises à l’échelle (matrice Z des données réduites) nous a permis de regrouper les fromages dans 6 classes. Par ailleurs, une analyse en composantes principales sur ces 6 classes a permis de comprendre les caractéristiques de chaque classe ou cluster.
Alors le découpage en 6 classes permet d’expliquer 66.7 % de la variabilité contenue dans le jeu de données initial du recensement de 2000. Nous retenons donc que :
La classe constituée de Guadeloupe et La Reunion est caractérisée par de fortes valeurs pour les variables “Exploi_Agri_2000” et “Vol_Travail_2000” et donc de faibles valeurs pour la variable “Sup_Cul_Per_2000”.
La classe des régions Martinique et Guyane est caractérisée par de fortes valeurs en " Sup_Herb_2000“.
La classe des régions Bretagne et Pays de la Loire est caractérisée par de fortes valeurs pour les variables “Sup_Agri_2000” et “Cheptel_2000”; cette classe s’oppose à celle contenantles régions comme Corse, Ile de France et Collectivité d’outre-mère. La classe constituée des régions comme Picardie, Franche-Comté, Lorraine, Basse-Normandie, Haute-Normandie et Nord-Pas-de-Calais est caractérisée par de grandes valeurs pour la variable “Sup_Cul_Per_2000”; cette classe s’oppose à celle constituée des régions comme Guadeloupe et La Réunion. Enfin, la classe restante quant à elle est constituée des régions ayant des valeurs moyennes pour l’ensemble des variables.
apply(base10, 2, sd)
## Exploi_Agri_2010 Vol_Travail_2010 Sup_Agri_2010 Cheptel_2010
## 85.65523 63.21077 303.45991 560.24640
## Sup_Labou_2010 Sup_Cul_Per_2010 Sup_Herb_2010
## 327.19500 78.70453 207.84237
Après avoir visualiser les écarts-types de différentes variables, on pense que ces données devraient être mises à l’échelle avant la mise en cluster car les variables ont des variabilités très diférentes.
Construisons la matrice Z des données mises à l’échelle et appliquons la méthode de la variance minimale de Ward aux n = 27 régions décrites en Z et pondérés par 1/n. Vérifions que la somme des hauteurs des classes dans la hiérarchie est égale à la variance totale des données mises à l’échelle.
n=nrow(base10)
Z<-scale(base10,center=TRUE,scale=TRUE)*sqrt(n/(n-1))
arbre10_W <- hclust(dist(Z)^2/(2*n),method="ward.D")
sum(arbre10_W$height)
## [1] 7
La somme des hauteurs obtenues avec la méthode de classification Ward est égale à 7, ceci correspond donc à la variance totale des données mises à l’échelle (variance = p (nombre de variables)).
Traçons le dendrogramme et choisissons le nombre K de clusters qui semble pertinent pour couper l’arbre
dend10_W<- as.dendrogram(arbre10_W)
# Colorer les branches en fonctions des clusters
dend10_W<- color_branches(dend10_W, k=6)
plot(dend10_W, main="Ward Dendogram", ylab="Hauteur", cex=0.5)
rect.hclust(arbre10_W,k=6)
L’arbre de classification par la méthode d’aggrégation de “Ward”, sur la base du recensement de 2010 et avec un nombre de classes fixé à 6, nous obtenons les regroupements constitués des régions suivantes :
On se propose de découper l’arbre en 6 partitions ou clusters, ce qui pourrait expliquer une grande variabilité du jeu de données initial du recensement de 2010.
Coupons l’arbre et interpréter la partition en K=6 clusters à l’aide de PCA (analyse en composantes principales) via le package “FactoMineR”.
Partition <- cutree(arbre10_W,6)
levels(Partition)<-paste("Classe",1:6)
Y<-as.matrix(base10,Partition=Partition)
res_Partition <- PCA(Y,scale=TRUE, graph=FALSE)
res_Partition$eig
## eigenvalue percentage of variance cumulative percentage of variance
## comp 1 2.71707492 38.8153560 38.81536
## comp 2 1.77521413 25.3602018 64.17556
## comp 3 1.12606023 16.0865747 80.26213
## comp 4 0.85835343 12.2621918 92.52432
## comp 5 0.29583731 4.2262472 96.75057
## comp 6 0.18575875 2.6536965 99.40427
## comp 7 0.04170125 0.5957321 100.00000
Nous avons ici les valeurs propres et les pourcentages de variance expliquées par chacune de composantes principales. La somme de toutes les valeurs propres donne une variance totale de 7. Nous sommes donc en ACP normée justifiée par la somme des valeurs propres qui vaut 7 (le nombre de variables numériques).
fviz_eig(res_Partition, addlabels = TRUE, ylim = c(0, 50), main = "Valeurs propres données de 2010",xlab = "Valeurs propres associées aux différentes composantes principales")
Ce graphe ci-dessus donne les pourcentages d’inertie expliquée par les 7 composantes principales. Par conséquent, environ 64.2% de la variance totale est expliquée par les deux premières valeurs propres, en occurence les 2 premiers axes factoriels.
fviz_pca_var(res_Partition, col.var = "cos2", gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), repel = TRUE)
Ce graphique représente la projection des variables sur le premier plan factoriel. On constate qu’en dehors de la varaible “Sup_Cul_Per_2010” toutes les autres variables sont assez bien représentées dans le plan. Ainsi, on observe que les variables “Vol_Travail_2010” et “Exploi_Agri_2010” sont positivement corrélées, c’est-à-dire que lorseque des régions prennent de grandes valeurs pour l’une des variables, elles prennent aussi de grandes valeurs pour l’autre variable. De même que pour les variables “Sup_Labou_2010” et “Sup_Herb_2010” et ceci pour les mêmes conséquences que précédement.
fviz_pca_ind (res_Partition, col.ind = "cos2",gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), repel =TRUE)
Ce graphique correspond à la projection des régions sur le premier plan factoriels. Ainsi, la classification des 27 régions par la méthode de Ward sur la matrice des données mises à l’échelle (matrice Z des données réduites) nous a permis de regrouper les fromages dans 6 classes. Par ailleurs, une analyse en composantes principales sur ces 6 classes a permis de comprendre les caractéristiques de chaque classe ou cluster.
Alors le découpage en 6 classes permet d’expliquer 64.2 % de la variabilité contenue dans le jeu de données initial du recensement de 2010. Nous retenons donc que :
La classe singleton (Collectivité d’outre-mer) est caractérisée par de faibles valeurs pour les variables “Sup_Labou_2010” et “Sup_Herb_2010”.
La classe constituée des regions Bretagne et Pays de la Loire est caractérisée par de grandes valeurs pour la variable “Sup_Agri_2010”. La classe de Guadeloupe et la Reunion quand à elle est caractérisée par de fortes valeurs pour les variables “Vol_Travail_2010” et “Exploi_Agri_2010”. La classe de Martinique et Guyane est caractérisée par de faibles valeurs pour la variable “Sup_Herb_2010”.
La classe contenant les régions comme Corse, Ile de France, Languedoc-Roussillon, Provinces Alpes Côte d’Azur, Champagne-Ardenne, Lorraine, Franche Comté, Picardie et Bourgogne est caractérisée par de fortes valeurs pour les variables “Sup_Herb_2010” et “Sup_Labou_2010”. Cette dernière classe s’oppose donc à celle contenant les autres autres qui prennent donc de faibles valeurs pour les variables “Sup_Herb_2010” et “Sup_Labou_2010”.
A l’issue de cette étude statistique, nous avons constaté que pour les 3 années de recensements 3 binômes de régions qui ont tendance à avoir les mêmes caractéristiques et donc se ressembler en terme de profil agricole. Il s’agit des binômes comme :
Des binômes où on note particulièrement La Martinique et le Guyane comme étant très instable en terme de profil agricole aux différentes années de recensements.
Nous avons aussi constaté 2 trinômes de régions qui ont en commun des caractéristiques pour chacun des 3 recensements. Il s’agit donc des trinômes comme :
Par ailleurs, ce deuxième trinôme et la région de la Corse (qui s’oppose toujours aux régions Martinique et Guyane) prenent un profil agricole différent pour chaque recensement.
Enfin la Collectivité d’Outre-mer et île de France ont eu le même profil agricole pour les recensement de 1988 et de 2000 et qui en 2010 ont pris des profil opposés.