Toutes nos données concernent uniquement la Bretagne continentale, hors Loire-Atlantique.
Nous remarquons toujours beaucoup de données de VisioNature dont la technique d’observation est inconnue.
GeoNature observe principalement des indices de rodents et de carnivores. Les lagomorphes sont peu remarqués avec les indices, comparés aux autres dans VisioNature et GeoNature.
application_tous_ordres(repartition_espece,
repartition = etat_biologique)
## [[1]]
##
## [[2]]
##
## [[3]]
##
## [[4]]
##
## [[5]]
application_tous_ordres(repartition_espece,
repartition = technique_observation)
## [[1]]
##
## [[2]]
##
## [[3]]
##
## [[4]]
##
## [[5]]
Dans la BDD GeoNature, principalement des carnivores, puis relativement uniformément les 4 autres ordres. C’est peut-être dû au fort intérêt de GMB pour la loutre, mais ce n’est pas tant le cas que ça (voir figure de la répartition des ordres sans le loutres)
Nous nous sommes demandés à quoi ressemblerait la répartition des ordres sans la loutre car elle est une espèce dont le GMB se préoccupe beaucoup. Ca ne change pas drastiquement la distribution.
Total%>%
filter(date > params$date_min,
bdd_originale == GN)%>%
count(nom_vernaculaire, ordre, sort = TRUE) %>%
ggplot(aes(x = reorder(nom_vernaculaire, n),
y = n, fill = ordre, color = ordre)) +
geom_col() +
coord_flip() +
facet_wrap(~ ordre, scales = "free_y") +
labs(
title = "Répartition des espèces",
subtitle = paste(GN),
y = "Nombre d'observations", x = "Nom vernaculaire"
) +
scale_x_discrete(labels = label_wrap(40)) +
theme_bw()+
theme(axis.text=element_text(size=8))+
scale_colour_manual(values=couleur)+
scale_fill_manual(values = couleur)
Total%>%
filter(date > params$date_min,
bdd_originale == GN)%>%
count(nom_vernaculaire, ordre, sort = TRUE) %>%
ggplot(aes(x = reorder(nom_vernaculaire, n),
y = n, fill = ordre, color = ordre)) +
geom_col() +
coord_flip() +
facet_wrap(~ ordre, scales = "free_y") +
labs(
title = "Répartition des espèces",
subtitle = paste(GN),
y = "Nombre d'observations", x = "Nom vernaculaire"
) +
scale_x_discrete(labels = label_wrap(40)) +
theme_bw()+
theme(axis.text=element_text(size=8))+
scale_colour_manual(values=couleur)+
scale_fill_manual(values = couleur)
Nous remarquons une inversion entre les lapins et les lièvres entre les deux bases de données. Peut-être lié a la période pendant laquelle les BDD sont remplies.
Total%>%
filter(date > params$date_min,
bdd_originale == VN)%>%
ggplot(aes(date, color = ordre))+
labs(title=paste("Fréquence des observations dans le temps depuis", params$date_min),
subtitle = paste(VN))+
facet_grid(ordre ~ .)+
theme_bw()+
geom_line(stat="density")+
scale_colour_manual(values=couleur)
Total%>%
filter(date > params$date_min,
bdd_originale == GN)%>%
ggplot(aes(date, color = ordre))+
labs(title=paste("Fréquence des observations dans le temps depuis", params$date_min),
subtitle = paste(GN))+
facet_grid(ordre ~ .)+
theme_bw()+
geom_line(stat="density")+
scale_colour_manual(values=couleur)
Total%>%
filter(date > params$date_min)%>%
ggplot(aes(date, color = ordre))+
labs(title=paste("Fréquence des observations dans le temps depuis", params$date_min),
subtitle = "Base de donnée complète")+
facet_grid(ordre ~ .)+
theme_bw()+
geom_line(stat="density")+
scale_colour_manual(values=couleur)
VisioNature a très peu de données avant 2010 et GeoNature avant 1990.
J’aurais focalisé l’étude sur la période [2010 - maintenant] pour les séries temporelles, car avant il y a peu de données.
GéoNature a surtout des données entre 2010 et 2015, et VisioNature après 2015.
Peut-être que ça pourrait être intéressant de regarder par rapport au nombre d’observateurs? Si il y a plus d’observateurs, alors peut-être qu’il y aura plus d’observations. Peut-être qu’on pourra pondérer là dessus?
La plupart des observations ne contiennent qu’un animal mais certains en contiennent plusieurs.
Il faudrait peut-être les prendre en compte, mais les données avec beaucoup d’animaux observés (ex: 400 obs d’un coup) risquent de causer des problèmes pour créer un modèle.
Ensuite, on a essayer d’observer les proportions d’espèces dans le temps.
Dans “other” il y a toutes les espèces qui représentent moins de 3% des observations de la période.
Nous remarquons que depuis les années 1980, il semble avoir de moins en moins de “other” donc d’espèces peu présentes. Les principales espèces sont peut être de plus en plus dominantes.
Nous remarquons aussi que GeoNature a des données assez differentes pour [2000-2005) que pour les autres périodes avec beaucoup de rats bruns. Nous n’observons pas quelque chose de similaire chez VisioNature.
# Carte bretagne
setwd("~/work/AnalyseDonneesOpportunisteGMB/donnees/DepartementsOuest")
carte_bretagne <- st_read("LIM_ADM_DepartementsOuest.shp")
## Reading layer `LIM_ADM_DepartementsOuest' from data source
## `/home/onyxia/work/AnalyseDonneesOpportunisteGMB/donnees/DepartementsOuest/LIM_ADM_DepartementsOuest.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 5 features and 5 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 99074.43 ymin: 6647488 xmax: 408042.6 ymax: 6885958
## Projected CRS: RGF93 v1 / Lambert-93
carte_bretagne <- st_set_crs(carte_bretagne, 2154)
carte_bretagne <- st_transform(carte_bretagne, 4326)
# GeoNature
GN_sf <- Total_sf %>%
filter(bdd_rgn == GN)
grid_sf <- st_sf(geometry = st_make_grid(carte_bretagne,
cellsize = c(0.12, 0.09))
)
grid_sf$density <- lengths(st_intersects(grid_sf, GN_sf))
grid_sf <- st_intersection(grid_sf, carte_bretagne)
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries
ggplot() +
geom_sf(data = carte_bretagne) +
labs(title = "Densité des observations en bretagne",
subtitle = GN) +
geom_sf(data = grid_sf, aes(fill = density)) +
scale_fill_gradient(low="gray97", high="gray15") +
theme_bw()
# VisioNature
VN_sf <- Total_sf %>%
filter(bdd_rgn == VN)
grid_sf <- st_sf(geometry = st_make_grid(carte_bretagne,
cellsize = c(0.12, 0.09)))
grid_sf$density <- lengths(st_intersects(grid_sf, VN_sf))
grid_sf <- st_intersection(grid_sf, carte_bretagne)
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries
ggplot() +
geom_sf(data = carte_bretagne) +
labs(title = "Densité des observations en bretagne",
subtitle = VN) +
geom_sf(data = grid_sf, aes(fill = density)) +
scale_fill_gradient(low="grey97", high="gray15") +
theme_bw()
Il semble y avoir un lieu avec une forte densité proche de Sizun dans la BDD GeoNature.
On remarque aussi que les observations ont lieu surtout au nord-ouest de la Bretagne et au sud entre le Morbihan et l’Ille-et-Vilaine.
Dans VisioNature, on a deux points avec une très forte densité sont probablement dues à nos deux principaux contributeurs (voir la partie 4), nous décidons de les supprimer pour vérifier.
VN_sf_modif <- VN_sf%>%
filter(!obsrvtr %in% c("BELLIER DANIEL", "CHAPUIS MARTINE"))
grid_sf <- st_sf(geometry = st_make_grid(carte_bretagne,
cellsize = c(0.12, 0.09))
)
grid_sf$density <- lengths(st_intersects(grid_sf, VN_sf_modif))
grid_sf <- st_intersection(grid_sf, carte_bretagne)
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries
ggplot() +
geom_sf(data = carte_bretagne) +
labs(title = "Densité des observations en bretagne",
subtitle = "VisioNature, sans les deux principaux observateurs") +
geom_sf(data = grid_sf, aes(fill = density)) +
scale_fill_gradient(low="grey97", high="gray15") +
theme_bw()
# Carte bretagne
setwd("~/work/AnalyseDonneesOpportunisteGMB/donnees/DepartementsOuest")
carte_bretagne <- st_read("LIM_ADM_DepartementsOuest.shp")
## Reading layer `LIM_ADM_DepartementsOuest' from data source
## `/home/onyxia/work/AnalyseDonneesOpportunisteGMB/donnees/DepartementsOuest/LIM_ADM_DepartementsOuest.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 5 features and 5 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 99074.43 ymin: 6647488 xmax: 408042.6 ymax: 6885958
## Projected CRS: RGF93 v1 / Lambert-93
carte_bretagne <- st_set_crs(carte_bretagne, 2154)
carte_bretagne <- st_transform(carte_bretagne, 4326)
# Données geographique
GN_sf <- Total_sf%>%
dplyr::filter(bdd_rgn == GN)%>%
dplyr::select(ordre, date)
VN_sf <- Total_sf%>%
dplyr::filter(bdd_rgn == VN)%>%
dplyr::select(ordre, date)
ordres <- unique(VN_sf$ordre)
grid <- st_make_grid(carte_bretagne,
cellsize = c(0.12, 0.09)) %>%
st_sf() %>%
st_set_crs(4326)
# VisioNature
grid_list <- map(ordres, function(o) {
vis_ord <- VN_sf %>% filter(ordre == o)
grid_tmp <- grid
grid_tmp$density <- lengths(st_intersects(grid_tmp, vis_ord))
grid_tmp$ordre <- o
grid_tmp
})
grid_sf <- bind_rows(grid_list)
grid_sf <- st_intersection(grid_sf, carte_bretagne)
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries
ggplot() +
geom_sf(data = carte_bretagne) +
labs(title = "Densité des observations en bretagne selon les ordres",
subtitle = VN) +
geom_sf(data = grid_sf, aes(fill = density), color = NA) +
scale_fill_gradient(low="gray90", high="gray15") +
theme_bw() +
facet_grid(. ~ ordre)
# GeoNature
grid_list <- map(ordres, function(o) {
vis_ord <- GN_sf %>% filter(ordre == o)
grid_tmp <- grid
grid_tmp$density <- lengths(st_intersects(grid_tmp, vis_ord))
grid_tmp$ordre <- o
grid_tmp
})
grid_sf <- bind_rows(grid_list)
grid_sf <- st_intersection(grid_sf, carte_bretagne)
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries
ggplot() +
geom_sf(data = carte_bretagne) +
labs(title = "Densité des observations en bretagne selon les ordres",
subtitle = "GeoNature") +
geom_sf(data = grid_sf, aes(fill = density), color = NA) +
scale_fill_gradient(low="gray90", high="gray15") +
theme_bw() +
facet_grid(. ~ ordre)
On ne voit pas grand chose sur la carte de VisioNature à part les 2 principaux observateurs.. Concernant la base de données GeoNature, on dirait que les espèces ont un peu près la même répartition en Bretagne (nord Finistere et Côte d’Armor et sud Ille-et-Vilaine et Morbihan)
Nous prenons la base de données avec toutes les données et je selectionne 40 000 ou 50 000 données avec les proportions.
Pour info, la graine aléatoire est figée a 12345.
graph_ordre_tranche_annee <- function(ordre_voulu){
# Creation de la BDD
ordre_data <- Total_sf %>% filter(ordre == ordre_voulu)
bdd_props <- prop.table(table(ordre_data$bdd_rgn))
n_bdd1 <- round(5000 * bdd_props[1])
n_bdd2 <- 5000 - n_bdd1
bdd1 <- ordre_data %>%
filter(bdd_rgn == "GeoNature") %>%
sample_n(min(n_bdd1, n()))
bdd2 <- ordre_data %>%
filter(bdd_rgn == "VisioNature") %>%
sample_n(min(n_bdd2, n()))
ordre_graph <- bind_rows(bdd1, bdd2) %>%
mutate(
grp_date = case_when(
date >= as.Date("2010-01-01") & date <= as.Date("2014-12-31") ~ "1. Entre 2010 et 2015",
date >= as.Date("2015-01-01") & date <= as.Date("2019-12-31") ~ "2. Entre 2015 et 2020",
date > as.Date("2019-12-31") ~ "3. Après 2020",
TRUE ~ NA_character_
)
) %>%
filter(date > as.Date("2010-01-01")) %>%
sample_frac(1)
# Transformation pour des données de la carte
carte_ordre <- ordre_graph %>%
select(grp_date, ordre, date) %>%
filter(ordre == ordre_voulu)
# Plot
ggplot() +
geom_sf(data = carte_bretagne) +
labs(
title = paste("Carte des observations en Bretagne des", ordre_voulu),
subtitle = "Toutes données"
) +
geom_sf(data = carte_ordre, size = 0.01) +
theme_bw() +
facet_grid(. ~ grp_date)
}
graph_ordre_tranche_annee("Carnivora")
graph_ordre_tranche_annee("Cetartiodactyla")
graph_ordre_tranche_annee("Eulipotyphla")
graph_ordre_tranche_annee("Lagomorpha")
graph_ordre_tranche_annee("Rodentia")
On dirait que plus on avance dans les années, plus on retrouve d’individus aux sud de la Bretagne.
Ceci peut être car nous avons plus de données de VisioNature au fil du temps qui provient d’ornithologues et les ornithologues sont souvent proches des littoraux.
Étudier les principaux observateurs peut être important parce qu’ils participent grandement au recueil des données donc un changement de leur comportement implique également un changement du comportement de la base de données.
Ils pourraient introduire des biais:
- pour un endroit du territoire, s’ils enregistent toujours des observations au même endroit
- pour une espece, s’ils sont intéressé par une espèce
- en enregistrant pendant une durée précise dans le temps
Total %>%
filter(bdd_originale == "GeoNature")%>%
summarize(nb_observateurs = n_distinct(observateurs))
## # A tibble: 1 × 1
## nb_observateurs
## <int>
## 1 3699
Total %>%
filter(bdd_originale == "VisioNature")%>%
summarize(nb_observateurs = n_distinct(observateurs))
## # A tibble: 1 × 1
## nb_observateurs
## <int>
## 1 5288
Pour GeoNature, il y a en tout 2778 observateurs qui peuvent être une ou 2 personnes.
Certains observateurs sont anonymes et sont attribués un code.
Pour VisioNature, il y a 3662 observateurs.
1813 des observations n’ont pas d’observateur attribué.
On transforme tous les noms en majuscule pour éviter des problèmes.
Nous cherchons les observateurs qui ont le plus contribué aux deux bases de données.
Total_summary_GN <- Total %>%
filter(bdd_originale == "GeoNature")%>%
group_by(observateurs) %>%
summarize(nbr_obs_obr = n()) %>%
filter(nbr_obs_obr > 500) %>%
arrange(nbr_obs_obr)
Total_summary_GN$observateurs<- factor(Total_summary_GN$observateurs,
levels = Total_summary_GN$observateurs)
Total_summary_VN <- Total %>%
filter(bdd_originale == "VisioNature")%>%
group_by(observateurs) %>%
summarize(nbr_obs_obr = n()) %>%
filter(nbr_obs_obr > 500) %>%
arrange(nbr_obs_obr)
Total_summary_VN$observateurs <- factor(Total_summary_VN$observateurs,
levels = Total_summary_VN$observateurs)
Total_summary_GN%>%
filter(!is.na(observateurs))%>%
ggplot(aes(x=observateurs, y=nbr_obs_obr)) +
geom_point() +
geom_segment( aes(x=observateurs, xend=observateurs,
y=0, yend=nbr_obs_obr))+
coord_flip()+
labs(title="Lollipop plot des principaux observateurs",
subtitle="GeoNature")+
theme_bw()+
theme(axis.text=element_text(size=6))
Total_summary_VN%>%
filter(!is.na(observateurs))%>%
ggplot(aes(x=observateurs, y=nbr_obs_obr)) +
geom_point() +
geom_segment( aes(x=observateurs, xend=observateurs,
y=0, yend=nbr_obs_obr))+
coord_flip()+
labs(title="Lollipop plot des principaux observateurs",
subtitle="VisioNature")+
theme_bw()+
theme(axis.text=element_text(size=6))
Nous remarquons que nous avons des observateurs avec un très grand nombre d’observations comme attendu. Nous ne savons pas si deleted deleted est un observateur. Nous pouvons imaginer que c’est les observations de tous les membres qui ont supprimés leurs comptes.
Pour étudier facilement leur données, nous créons une fonction qui donne rapidement quelques graphiques.
stats_observateur <- function(nom_obs, carte){
# Date
p1 <- Total_sf %>%
filter(obsrvtr == toupper(nom_obs),
date > params$date_min) %>%
ggplot(aes(date))+
labs(title="Répartition des dates",
subtitle = paste("Données de ", toupper(nom_obs))) +
theme_bw()+
geom_line(stat="density")+
scale_x_date(
breaks = seq(from = min(Total_sf$date),
to = max(Total_sf$date),
by = "2 years"),
labels = scales::label_date("%Y")
)
# Ordres
p2 <- Total_sf %>%
filter(obsrvtr == toupper(nom_obs),
date > params$date_min) %>%
ggplot(aes(x = ordre)) +
geom_bar() +
labs(title = "Répartition des differents ordres",
subtitle = paste("Données de ", toupper(nom_obs))) +
theme_bw()+
theme(axis.text.x = element_text(angle = 30, hjust = 0.5, vjust = 0.5))
# Carte
geo_obsteur <- Total_sf %>%
filter(date > params$date_min) %>%
filter(obsrvtr == toupper(nom_obs)) %>%
dplyr::select(ordre,
date)
p3 <- ggplot() +
geom_sf(data = carte) +
labs(title = "Carte des observations",
subtitle = paste("Données de ", toupper(nom_obs))) +
geom_sf(data = geo_obsteur, size=0.01) +
theme_bw()
# Affichage des plots
p1 + p2 + p3
}
setwd("~/work/AnalyseDonneesOpportunisteGMB/donnees/DepartementsOuest")
carte_bretagne <- st_read("LIM_ADM_DepartementsOuest.shp")
## Reading layer `LIM_ADM_DepartementsOuest' from data source
## `/home/onyxia/work/AnalyseDonneesOpportunisteGMB/donnees/DepartementsOuest/LIM_ADM_DepartementsOuest.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 5 features and 5 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 99074.43 ymin: 6647488 xmax: 408042.6 ymax: 6885958
## Projected CRS: RGF93 v1 / Lambert-93
carte_bretagne <- st_set_crs(carte_bretagne, 2154)
carte_bretagne <- st_transform(carte_bretagne, 4326)
stats_observateur(nom_obs="BELLIER DANIEL",
carte=carte_bretagne)
stats_observateur(nom_obs="CHAPUIS MARTINE",
carte=carte_bretagne)
stats_observateur(nom_obs="SéITé FRANçOIS",
carte=carte_bretagne)
stats_observateur(nom_obs="deleted deleted",
carte=carte_bretagne)
stats_observateur(nom_obs="simonnet franck",
carte=carte_bretagne)
stats_observateur(nom_obs="le campion thomas",
carte=carte_bretagne)
Nous remarquons que:
- BELLIER DANIEL observe beaucoup de rongeurs autour de Rennes.
- CHAPUIS MARTINE observe uniquement a un endroit précis.
- DELETED DELETED, semble être surtout dans le finistère ce qui est étonnant si ce sont plusieurs personnes.
Total%>%
ggplot(aes(as.factor(wday(date,
week_start = getOption("lubridate.week.start", 1)))))+
labs(title="Barplot des observation selon le jour de la semaine",
y="Nombre d'observations",
x="Jour de la semaine")+
theme_bw()+
geom_bar()+
scale_x_discrete(labels=c("1" = "Lundi",
"2" = "Mardi",
"3" = "Mercredi",
"4" = "Jeudi",
"5" = "Vendredi",
"6" = "Samedi",
"7" = "Dimanche"))
Total %>%
filter(date > params$date_min)%>%
mutate(jour_annee = qday(date)+(quarter(date,with_year = FALSE)-1)*91)%>%
ggplot(aes(jour_annee)) +
labs(title="Frequence des observations selon le jour de l'année",
y="Proportion",
x="Jour de l'année")+
geom_density()
Total%>%
filter(date > params$date_min)%>%
ggplot(aes(factor(month(date))))+
labs(title="Barplot des observation selon le mois",
y="Nombre d'observations",
x="Mois")+
theme_bw()+
geom_bar()+
scale_x_discrete(labels=c("1" = "Janvier",
"2" = "Février",
"3" = "Mars",
"4" = "Avril",
"5" = "Mai",
"6" = "Juin",
"7" = "Juillet",
"8" = "Aout",
"9" = "Septembre",
"10" = "Octobre",
"11" = "Novembre",
"12" = "Decembre"))
nb_observations <- Total %>%
group_by(observateurs) %>%
summarise(total_obs = n(), .groups = "drop")
max_technique <- Total%>%
group_by(observateurs) %>%
summarise(tech_obs_max = collapse::fmode(technique_observation))
max_etat_bio <- Total%>%
group_by(observateurs) %>%
summarise(etat_bio_max = collapse::fmode(etat_biologique))
Observateurs <- nb_observations %>%
left_join(nb_ordre(nom_ordre = "Carnivora"), by = "observateurs") %>%
left_join(nb_ordre(nom_ordre = "Cetartiodactyla"), by = "observateurs") %>%
left_join(nb_ordre(nom_ordre = "Eulipotyphla"), by = "observateurs") %>%
left_join(nb_ordre(nom_ordre = "Lagomorpha"), by = "observateurs") %>%
left_join(nb_ordre(nom_ordre = "Rodentia"), by = "observateurs")%>%
left_join(max_technique, by = "observateurs")%>%
left_join(max_etat_bio, by = "observateurs")
Observateurs <- Observateurs %>%
mutate(nb_carnivora = ifelse(is.na(nb_carnivora), 0, nb_carnivora),
nb_cetartiodactyla = ifelse(is.na(nb_cetartiodactyla), 0, nb_cetartiodactyla),
nb_eulipotyphla = ifelse(is.na(nb_eulipotyphla), 0, nb_eulipotyphla),
nb_lagomorpha = ifelse(is.na(nb_lagomorpha), 0, nb_lagomorpha),
nb_rodentia = ifelse(is.na(nb_rodentia), 0, nb_rodentia)
)
Observateurs$shannon <- vegan::diversity(Observateurs[,3:7])
Observateurs$Pielou <- Observateurs$shannon / log(vegan::specnumber(Observateurs[,3:7]))
Observateurs <- Observateurs %>%
mutate(Pielou = ifelse(shannon==0, 0, Pielou))
Observateurs <- Observateurs%>%
mutate(prop_carnivora = nb_carnivora / total_obs,
prop_cetartiodactyla = nb_cetartiodactyla / total_obs,
prop_eulipotyphla = nb_eulipotyphla / total_obs,
prop_lagomorpha = nb_lagomorpha / total_obs,
prop_rodentia = nb_rodentia / total_obs,
tech_obs_max = paste("Tech d'obs: ", tech_obs_max, sep=""),
etat_bio_max = paste("Etat bio: ", etat_bio_max, sep="")
)
rm(max_etat_bio, max_technique)
On se demande a quoi ressemble la répartition des Indice de Pielou
boxplot(Observateurs$Pielou,
main="Répartition des Indice de Pielou",
ylab="Indice de Pielou")
summary(Observateurs$Pielou)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0000 0.0000 0.3081 0.8550 1.0000
On remarque qu’il y a enormément d’observateurs qui on un Indice nul, ou presque. Ceci est normal car beaucoup ont observé uniquement une observation. (Par exemple, tous les NA ont été considéré comme des observateurs uniques, et d’autres ont observé a plusieurs.) On a 4032 observateurs qui ont uniquement une observation tandis qu’il y a 7869 observateurs dans la base de donnée.
Le 4e quartile est aussi assez sérré. Il y a donc beaucoup d’individus avec une assez bonne diversité dans leurs observations. (1/4 d’entre eux sont entre 0.86 et 1 d’Indice.)
On fait une ACP sur cette base de donnée, et on obtiens ceci:
res.PCA<-PCA(Observateurs[,-c(1)],quali.sup=c(7,8),
quanti.sup=c(11,12,13,14,15),graph=FALSE)
plot.PCA(res.PCA,choix='var')
## Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
plot.PCA(res.PCA,invisible=c('ind','ind.sup'), label =c('quali'))
summary(res.PCA)
##
## Call:
## PCA(X = Observateurs[, -c(1)], quanti.sup = c(11, 12, 13, 14,
## 15), quali.sup = c(7, 8), graph = FALSE)
##
##
## Eigenvalues
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 Dim.6 Dim.7
## Variance 4.785 1.743 0.577 0.502 0.173 0.150 0.071
## % of var. 59.807 21.792 7.208 6.273 2.161 1.877 0.883
## Cumulative % of var. 59.807 81.599 88.807 95.080 97.241 99.117 100.000
## Dim.8
## Variance 0.000
## % of var. 0.000
## Cumulative % of var. 100.000
##
## Individuals (the 10 first)
## Dist Dim.1 ctr cos2 Dim.2
## 1 | 1.043 | -0.564 0.001 0.292 | -0.876
## 2 | 1.042 | -0.563 0.001 0.292 | -0.876
## 3 | 1.783 | 0.082 0.000 0.002 | 1.659
## 4 | 2.614 | 0.372 0.000 0.020 | 2.556
## 5 | 3.026 | 1.978 0.011 0.427 | 2.019
## 6 | 2.166 | 0.539 0.001 0.062 | 2.070
## 7 | 1.544 | 0.119 0.000 0.006 | 1.531
## 8 | 1.565 | 0.046 0.000 0.001 | 1.448
## 9 | 2.154 | 0.500 0.001 0.054 | 2.008
## 10 | 0.864 | 0.220 0.000 0.065 | 0.655
## ctr cos2 Dim.3 ctr cos2
## 1 0.006 0.706 | -0.005 0.000 0.000 |
## 2 0.006 0.706 | -0.025 0.000 0.001 |
## 3 0.020 0.866 | 0.143 0.000 0.006 |
## 4 0.048 0.957 | 0.186 0.001 0.005 |
## 5 0.030 0.445 | 0.173 0.001 0.003 |
## 6 0.032 0.914 | -0.168 0.001 0.006 |
## 7 0.017 0.984 | 0.097 0.000 0.004 |
## 8 0.015 0.856 | 0.119 0.000 0.006 |
## 9 0.030 0.869 | 0.257 0.001 0.014 |
## 10 0.003 0.575 | 0.390 0.003 0.204 |
##
## Variables
## Dim.1 ctr cos2 Dim.2 ctr
## total_obs | 0.981 20.128 0.963 | -0.163 1.530
## nb_carnivora | 0.879 16.134 0.772 | -0.108 0.667
## nb_cetartiodactyla | 0.838 14.679 0.702 | -0.132 0.993
## nb_eulipotyphla | 0.810 13.716 0.656 | -0.085 0.418
## nb_lagomorpha | 0.907 17.196 0.823 | -0.123 0.861
## nb_rodentia | 0.757 11.964 0.572 | -0.187 2.010
## shannon | 0.429 3.847 0.184 | 0.883 44.702
## Pielou | 0.334 2.336 0.112 | 0.923 48.820
## cos2 Dim.3 ctr cos2
## total_obs 0.027 | 0.085 1.248 0.007 |
## nb_carnivora 0.012 | -0.347 20.887 0.120 |
## nb_cetartiodactyla 0.017 | 0.209 7.564 0.044 |
## nb_eulipotyphla 0.007 | -0.482 40.223 0.232 |
## nb_lagomorpha 0.015 | 0.132 3.011 0.017 |
## nb_rodentia 0.035 | 0.392 26.697 0.154 |
## shannon 0.779 | 0.013 0.029 0.000 |
## Pielou 0.851 | 0.044 0.340 0.002 |
##
## Supplementary continuous variables
## Dim.1 cos2 Dim.2 cos2 Dim.3
## prop_carnivora | -0.014 0.000 | -0.026 0.001 | -0.044
## prop_cetartiodactyla | 0.057 0.003 | 0.102 0.010 | 0.048
## prop_eulipotyphla | -0.037 0.001 | -0.078 0.006 | -0.068
## prop_lagomorpha | 0.065 0.004 | 0.136 0.019 | 0.033
## prop_rodentia | -0.038 0.001 | -0.069 0.005 | 0.044
## cos2
## prop_carnivora 0.002 |
## prop_cetartiodactyla 0.002 |
## prop_eulipotyphla 0.005 |
## prop_lagomorpha 0.001 |
## prop_rodentia 0.002 |
##
## Supplementary categories
## Dist Dim.1 cos2 v.test Dim.2
## Tech d'obs: 1 | 2.276 | 1.549 0.463 3.475 | -1.052
## Tech d'obs: 2 | 0.719 | -0.473 0.432 -1.037 | -0.540
## Tech d'obs: 4 | 0.177 | -0.077 0.190 -1.171 | -0.131
## Tech d'obs: 5 | 0.085 | 0.035 0.169 1.411 | 0.061
## Tech d'obs: Vu | 0.073 | -0.030 0.175 -0.944 | -0.025
## Etat bio: Non renseigné | 0.459 | 0.248 0.291 2.261 | 0.330
## Etat bio: Observé vivant | 0.030 | 0.015 0.261 1.445 | 0.015
## Etat bio: Trouvé mort | 0.452 | -0.349 0.596 -3.825 | -0.282
## Etat bio: Trouvé mort : impact routier | 0.334 | -0.028 0.007 -0.227 | -0.233
## cos2 v.test Dim.3 cos2 v.test
## Tech d'obs: 1 0.214 -3.908 | 0.545 0.057 3.520 |
## Tech d'obs: 2 0.564 -1.963 | 0.012 0.000 0.073 |
## Tech d'obs: 4 0.543 -3.280 | -0.015 0.007 -0.670 |
## Tech d'obs: 5 0.510 4.060 | -0.040 0.215 -4.577 |
## Tech d'obs: Vu 0.120 -1.295 | 0.053 0.542 4.778 |
## Etat bio: Non renseigné 0.518 4.995 | -0.053 0.013 -1.399 |
## Etat bio: Observé vivant 0.237 2.278 | 0.016 0.292 4.397 |
## Etat bio: Trouvé mort 0.388 -5.114 | -0.039 0.008 -1.239 |
## Etat bio: Trouvé mort : impact routier 0.488 -3.144 | -0.217 0.420 -5.073 |
On a environ 83% d’explication des axes avec uniquement les 2 premières dimension ce qui est très bien.
Le premier axe semble représenter un grand nombre d’observations, et le deuxieme axe la diversité.
Les Individus ayant principalement des “technique biologique: autre” sont ceux qui ont beaucoup d’observation. Ceux ayant surtout remarqué des animaux morts, ont peu d’observations. De même pour une technique d’ob Inconnu et Entendu/Ultrasons.
Les individus qui ont principalement observé des animaux mort due a un impact routier ont peu de diversité dans les espèces qu’ils remarquent. Pareil pour Entendu/Ultrasons, Inconnu et Indices, et Trouvé Mort. Les animaux avec une tech d’obs Non Renseigné (ou Vu mais moins) le sont par des gens avec une grande diversité d’observations.
Clustering : On voit pas grand chose
res.HCPC<-HCPC(res.PCA,nb.clust=2,consol=FALSE,graph=FALSE)
plot.HCPC(res.HCPC,choice='tree',title='Hierarchical tree')
plot.HCPC(res.HCPC,choice='map',draw.tree=FALSE,title='Factor map')
plot.HCPC(res.HCPC,choice='3D.map',ind.names=FALSE,centers.plot=FALSE,angle=90,title='Hierarchical tree on the factor map')
res.HCPC<-HCPC(res.PCA,nb.clust=4,consol=FALSE,graph=FALSE)
plot.HCPC(res.HCPC,choice='tree',title='Hierarchical tree')
plot.HCPC(res.HCPC,choice='map',draw.tree=FALSE,title='Factor map')
plot.HCPC(res.HCPC,choice='3D.map',ind.names=FALSE,centers.plot=FALSE,angle=90,title='Hierarchical tree on the factor map')