L’érosion des sols, bien qu’étant un processus naturel, peut s’avérer néfaste pour les écosystèmes aquatiques. En réponse à cette problématique, la France a mis en place des mesures de restauration des habitats aquatiques dégradés par l’érosion. Parmi ces mesures, l’aménagement de zones d’érosion contrôlée s’impose comme une solution prometteuse. Ces zones canalisent et gèrent l’érosion, limitant ainsi son impact sur les rivières et les lacs.
Dans le cadre d’une étude portant sur l’efficacité de ces zones d’érosion contrôlée, une analyse écoquantitative a été menée. Les données, collectées entre 2014 et 2019 (Staentzel et al., in prep), proviennent de campagnes de pêches et de mesures environnementales. L’objectif principal de cette analyse est d’évaluer l’impact de ces zones sur des axes majeurs en lien avec : la mise en place d’habitats aquatiques, l’évolution des populations d’espèces, les conditions hydrologiques, etc…
En combinant l’analyse de ces informations, l’étude vise à fournir une évaluation complète de l’impact des zones d’érosion contrôlée sur les écosystèmes aquatiques. Les résultats obtenus permettront de mieux comprendre l’efficacité de cette mesure de restauration et d’optimiser sa mise en œuvre future. Ainsi l’objectif principale de cette étude est de : Pour une meilleure approche à ce questionnement, nous posons les hypothèses suivantes générales suivantes: H1: Les zones d’érosion contrôlée ont un impact positif sur les habitats aquatiques en aval, en augmentant leur diversité et leur complexité. H2: Les zones d’érosion contrôlée favorisent la croissance et la reproduction de certaines populations d’espèces aquatiques.
Plus spécifiquement, il s’agira pour nous de verifier si la présence de zones d’érosion contrôlée conduit à une augmentation de la richesse en espèces de poissons dans les rivières en aval tout en améliorant les habitats aquatiques.
Des données détaillées sur les populations aquatiques ont été rassemblées sur plusieurs années. Ces informations proviennent de sites d’échantillonnage de pêche régulièrement répartis en amont, en aval et dans la zone d’érosion d’un cours d’eau. Elles incluent les abondances, les tailles et la diversité des espèces, ainsi que des informations complémentaires sur l’environnement aquatique, les habitats présents et les caractéristiques biologiques des espèces. En résumé, cet ensemble de données complet offre un regard approfondi sur : La composition des communautés aquatiques et leur trait, La structure des populations, la distribution et l’abondance des espèces.
Ce travail a été réalisé à l’aide de RStudio, un environnement de développement intégré (EDI) pour le langage de programmation R. RStudio offre une interface utilisateur graphique conviviale qui facilite l’écriture, l’exécution et le débogage de code R.
Parallèlement, RMarkdown a été utilisé pour créer des documents intégrant du texte, du code R et des résultats d’analyse. Cette combinaison de RStudio et RMarkdown s’avère être un outil puissant pour l’analyse de données et la communication efficace des résultats obtenus.
L’analyse multicritère (AMC) et l’analyse en composantes principales (ACP) sont deux outils puissants pour analyser des données complexes et faciliter la prise de décision. L’AMC permet de comparer et de classer des alternatives en fonction de plusieurs critères, tandis que l’ACP permet de réduire la dimensionnalité d’un ensemble de données tout en préservant l’information la plus importante.
L’analyse en composantes principales (ACP) est une technique statistique multivariée qui permet de réduire la dimensionnalité d’un ensemble de données tout en préservant l’information la plus importante. Elle consiste à transformer un ensemble de variables corrélées en un nouvel ensemble de variables non corrélées appelées “composantes principales”.
Les analyses multicritères regroupent différentes méthodes qui visent à structurer et à agréger l’information provenant de plusieurs critères d’évaluation souvent corrélés et parfois conflictuels, afin d’aider à la prise de décision. Elles s’appliquent à des situations où il n’existe pas de solution unique optimale et où différents points de vue doivent être pris en compte.
#Correction des données
## Creation d'un nouveau tableau Aggregate
Bio_Fish_agre <- aggregate(N ~ Zone +ANNEE+ESP, data = Bio_Fish, sum)
Bio_Fish_agre<-data.frame(transform(Bio_Fish_agre, Zone = paste0(Zone, "_", ANNEE)))
Bio_Fish_agre <- Bio_Fish_agre[,-2]
##Matrice de données
Zone <- unique(Bio_Fish_agre$Zone)
ESP <- unique(Bio_Fish_agre$ESP)
Mat <- matrix(NA, nrow = length(Zone), ncol = length(ESP))
rownames(Mat) <- Zone
colnames(Mat) <- ESP
##Remplir la matrice avec les données
for(i in 1:nrow(Bio_Fish_agre)) {
Zone <- Bio_Fish_agre$Zone[i]
ESP <- Bio_Fish_agre$ESP[i]
n <- Bio_Fish_agre$N[i]
Mat[Zone, ESP] <- n
}
Dans ces lignes de codes, nous avons réalisé une correction des données avec la fonction aggregate afin d’afficher pour chaque année, et à chaque zone, l’abondance pour chacune des espèces:
## ABL ANG BAF BLA BOU BRO CHE EPI GAR GDK GDL GKS GTN HOT LOF LOP LOR
## Aval_2015 5 0 23 1 0 0 280 1 0 12 0 0 77 21 0 1 0
## ZE_2015 2 1 198 0 0 1 787 8 0 18 0 0 240 16 0 1 0
## ZE_2016 23 0 96 0 1 0 556 2 2 2 0 0 191 16 0 0 0
## ZE_2017 32 1 124 0 0 0 379 5 2 2 0 0 234 12 1 1 0
## Aval_2018 4 0 28 0 0 0 96 6 0 16 0 0 170 111 2 2 0
## ZE_2018 9 1 259 0 0 0 317 7 1 10 0 0 119 116 1 1 0
## Amont_2019 20 0 5 0 0 0 25 0 0 2 0 0 63 0 0 0 0
## ZE_2019 44 0 61 0 0 1 148 2 0 2 3 0 133 12 0 1 0
## Amont_2014 0 0 1 0 0 0 0 0 0 0 0 2 16 0 0 0 0
## Aval_2014 0 0 1 0 0 0 604 38 4 0 0 5 15 178 0 0 0
## ZE_2014 0 0 25 0 0 0 579 12 3 0 0 9 29 10 2 0 1
## Amont_2015 0 0 17 0 0 0 35 0 1 4 0 0 81 1 0 0 0
## Amont_2016 0 0 31 0 1 0 118 0 1 1 0 0 202 1 0 0 0
## Aval_2016 0 0 13 0 0 0 107 0 1 2 0 0 115 2 0 1 0
## Amont_2017 0 0 49 0 0 0 105 0 0 1 0 0 120 0 0 0 0
## Aval_2017 0 0 10 0 0 0 249 13 0 0 0 0 174 12 0 3 0
## Amont_2018 0 0 25 0 0 0 4 0 1 7 0 0 48 1 0 0 0
## Aval_2019 0 0 26 0 0 0 90 3 0 1 3 0 155 6 0 10 0
## LOT LPP LPR PER PES SAN SAT SIL SPI TAN VAI
## Aval_2015 0 0 0 0 3 0 0 0 0 0 9
## ZE_2015 0 0 1 0 2 1 3 2 14 0 8
## ZE_2016 0 0 3 0 2 0 2 5 16 0 0
## ZE_2017 0 0 0 1 1 0 1 1 57 5 14
## Aval_2018 0 0 0 0 0 0 1 0 0 0 11
## ZE_2018 0 0 0 3 3 0 0 9 51 3 8
## Amont_2019 0 0 0 0 0 0 0 1 0 0 0
## ZE_2019 0 0 0 1 0 0 0 9 15 1 8
## Amont_2014 0 0 0 0 0 0 0 0 0 0 0
## Aval_2014 0 0 0 0 0 0 0 1 0 0 97
## ZE_2014 1 1 0 0 1 0 1 7 15 0 23
## Amont_2015 0 0 0 1 0 0 0 4 0 0 1
## Amont_2016 0 0 0 0 0 0 1 0 0 0 1
## Aval_2016 0 0 0 1 0 0 0 0 0 1 1
## Amont_2017 0 0 0 0 0 0 0 0 3 0 2
## Aval_2017 0 0 0 0 0 0 0 0 0 2 1
## Amont_2018 0 0 0 1 0 0 0 4 1 0 0
## Aval_2019 0 0 0 4 0 0 1 1 0 1 20
Les données obtenues fournissent pour chaque zone sur des périodes différentes, l’abondance en espèces.
table.value(scale(Bio), method= c("size"),symbol = "circle")
La taille de chaque cercle dans la visualisation représente la valeur Abondance à l’échelle d’une espèce particulière dans une région et une année données. Des cercles plus grands indiquent une plus grande abondance, tandis que des cercles plus petits indiquent une abondance plus faible.
La visualisation nous permet de comparer l’abondance relative de différentes espèces dans la même zone et la même année. Par exemple nous pouvons identifier les espèces les plus abondantes (grands cercles) et celles qui le sont moins (petits cercles) à un endroit et à une période donnés.
La détermination des moyennes et des valeurs extrêmes fournit les résultats suivant:apply(Bio,2,mean)
## ABL ANG BAF BLA BOU BRO
## 7.72222222 0.16666667 55.11111111 0.05555556 0.11111111 0.11111111
## CHE EPI GAR GDK GDL GKS
## 248.83333333 5.38888889 0.88888889 4.44444444 0.33333333 0.88888889
## GTN HOT LOF LOP LOR LOT
## 121.22222222 28.61111111 0.33333333 1.16666667 0.05555556 0.05555556
## LPP LPR PER PES SAN SAT
## 0.05555556 0.22222222 0.66666667 0.66666667 0.05555556 0.55555556
## SIL SPI TAN VAI
## 2.44444444 9.55555556 0.72222222 11.33333333
apply(Bio,2,range)
## ABL ANG BAF BLA BOU BRO CHE EPI GAR GDK GDL GKS GTN HOT LOF LOP LOR LOT
## [1,] 0 0 1 0 0 0 0 0 0 0 0 0 15 0 0 0 0 0
## [2,] 44 1 259 1 1 1 787 38 4 18 3 9 240 178 2 10 1 1
## LPP LPR PER PES SAN SAT SIL SPI TAN VAI
## [1,] 0 0 0 0 0 0 0 0 0 0
## [2,] 1 3 4 3 1 3 9 57 5 97
apply(Bio,1,mean)
## Aval_2015 ZE_2015 ZE_2016 ZE_2017 Aval_2018 ZE_2018 Amont_2019
## 15.4642857 46.5357143 32.7500000 31.1785714 15.9642857 32.7857143 4.1428571
## ZE_2019 Amont_2014 Aval_2014 ZE_2014 Amont_2015 Amont_2016 Aval_2016
## 15.7500000 0.6785714 33.6785714 25.6785714 5.1785714 12.7500000 8.7142857
## Amont_2017 Aval_2017 Amont_2018 Aval_2019
## 10.0000000 16.5714286 3.2857143 11.4642857
apply(Bio,1,range)
## Aval_2015 ZE_2015 ZE_2016 ZE_2017 Aval_2018 ZE_2018 Amont_2019 ZE_2019
## [1,] 0 0 0 0 0 0 0 0
## [2,] 280 787 556 379 170 317 63 148
## Amont_2014 Aval_2014 ZE_2014 Amont_2015 Amont_2016 Aval_2016 Amont_2017
## [1,] 0 0 0 0 0 0 0
## [2,] 16 604 579 81 202 115 120
## Aval_2017 Amont_2018 Aval_2019
## [1,] 0 0 0
## [2,] 249 48 155
#AFC Analyse Multivariée
library(ade4)
##
## Attachement du package : 'ade4'
## Les objets suivants sont masqués depuis 'package:adegraphics':
##
## kplotsepan.coa, s.arrow, s.class, s.corcircle, s.distri, s.image,
## s.label, s.logo, s.match, s.traject, s.value, table.value,
## triangle.class
afc1<-dudi.coa(df = Bio, scannf = FALSE, nf = 4)
scatter(afc1)
detach("package:ade4", unload = TRUE)
## Warning: l'espace de noms 'ade4' ne peut être déchargé :
## l'espace de noms 'ade4' est importé par 'adegraphics' et ne peut, donc, pas être déchargé
library(adegraphics)
sc1<-s.label(afc1$co, plabels.optim=TRUE, ppoints.cex=0.5)
sc1<-s.label(afc1$li, plabels.optim=TRUE, ppoints.cex=0.5)
library(vegan)
## Le chargement a nécessité le package : permute
## Le chargement a nécessité le package : lattice
## This is vegan 2.6-6.1
Traits<-read_xlsx(path = "Traits.xlsx")
View(Traits)
Traits<-Traits[-22,]
Traits<-Traits[-29,]
View(Traits)
write.csv(Traits,file="Traits.csv", row.names = TRUE)
Traits<-read.csv("Traits.csv",sep = ",",dec = ".",row.names = 2, check.names=TRUE)
View(Traits)
Traits<-Traits[,-1]
View(Traits)
Traits[is.na(Traits)] <- 0
View(Traits)
par(mfrow = c(1,1), mar = c(4,4,2,2))
library(ade4)
##
## Attachement du package : 'ade4'
## Les objets suivants sont masqués depuis 'package:adegraphics':
##
## kplotsepan.coa, s.arrow, s.class, s.corcircle, s.distri, s.image,
## s.label, s.logo, s.match, s.traject, s.value, table.value,
## triangle.class
afc_trait<-dudi.coa(df = Traits, scannf = FALSE, nf = 2)
library(adegraphics)
scatter(afc_trait)
detach("package:ade4", unload = TRUE)
## Warning: l'espace de noms 'ade4' ne peut être déchargé :
## l'espace de noms 'ade4' est importé par 'adegraphics' et ne peut, donc, pas être déchargé
library(adegraphics)
sc_Trait<-s.label(afc_trait$co, plabels.optim=TRUE, ppoints.cex=0.5)#ne se lit que avec adegraphique
sc_Trait2<-s.label(afc_trait$l1, plabels.optim=TRUE, ppoints.cex=0.5)#effet fer à cheval ou guttman
ADEgS(list(sc_Trait,sc_Trait2))
###hill smith
library(vegan)
detach("package:adegraphics", unload = TRUE)
library(ade4)
Hill_Bio<-Bio
View(Hill_Bio)
pcahillR<-dudi.hillsmith(df = Hill_Bio, scannf = FALSE, nf = 2)
detach("package:ade4", unload = TRUE)
library(adegraphics)
## Registered S3 methods overwritten by 'ade4':
## method from
## biplot.dudi adegraphics
## plot.betcoi adegraphics
## plot.betrlq adegraphics
## plot.between adegraphics
## plot.coinertia adegraphics
## plot.discrimin adegraphics
## plot.dpcoa adegraphics
## plot.foucart adegraphics
## plot.krandtest adegraphics
## plot.mcoa adegraphics
## plot.mfa adegraphics
## plot.multispati adegraphics
## plot.niche adegraphics
## plot.pcaiv adegraphics
## plot.procuste adegraphics
## plot.pta adegraphics
## plot.randtest adegraphics
## plot.rlq adegraphics
## plot.sepan adegraphics
## plot.statis adegraphics
## plot.witcoi adegraphics
## plot.within adegraphics
## plot.witrlq adegraphics
## plot.bcaloocv adegraphics
## plot.discloocv adegraphics
## screeplot.dudi adegraphics
## Registered S3 methods overwritten by 'adegraphics':
## method from
## biplot.dudi ade4
## kplot.foucart ade4
## kplot.mcoa ade4
## kplot.mfa ade4
## kplot.pta ade4
## kplot.sepan ade4
## kplot.statis ade4
## scatter.coa ade4
## scatter.dudi ade4
## scatter.nipals ade4
## scatter.pco ade4
## score.acm ade4
## score.mix ade4
## score.pca ade4
## screeplot.dudi ade4
scatter(pcahillR)
###ACP
data <- data.frame(Bio)
N=apply(data,1,sum)
S=apply(data>0,1,sum)
data$N<-N
data$S<-S
View(data)
library(vegan)
data$H<-diversity(data[,1:28], index="shannon")
data$D<-diversity(data[,1:28], index="simpson")
data$J<-diversity(data[,1:28], index="shannon")/log2(data$S)
data<-data[,-1:-28]
View(data)
##Analyse ACP
APC_data<-data
library(ade4)
##
## Attachement du package : 'ade4'
## Les objets suivants sont masqués depuis 'package:adegraphics':
##
## kplotsepan.coa, s.arrow, s.class, s.corcircle, s.distri, s.image,
## s.label, s.logo, s.match, s.traject, s.value, table.value,
## triangle.class
pcaQ<-dudi.pca(df = APC_data, scannf = FALSE, nf = 2)
scatter(pcaQ)