Document complémentaire au module 8 du cours SDD II de 2025-2026. Distribué sous licence CC BY-NC-SA 4.0.
Veuillez vous référer au cours en ligne pour les explications et les interprétations de cette analyse.
Installer un environnement R adéquat pour reproduire cette analyse.
# Chargement du dialecte SciViews::R avec le module explore
SciViews::R("explore", lang = "fr")
# Identification des différentes masses d'eaux (transect entre Nice et la Corse)
marzones <- factor(c(
rep("périphérique", 16),
rep("divergente1", 8),
rep("convergente", 5),
rep("frontale", 11),
rep("divergente2", 5),
rep("centrale", 23)),
levels = c("périphérique", "divergente1", "convergente",
"frontale", "divergente2", "centrale"))
# Jointure des deux tableaux marphy, marbio et ajout de marzones
bind_cols(
read("marphy", package = "pastecs"),
log1p(read("marbio", package = "pastecs"))) %>.%
smutate(., Zone = marzones) ->
mar
# Nom des variables de mar
names(mar)## [1] "Temperature" "Salinity" "Fluorescence" "Density"
## [5] "Acartia" "AdultsOfCalanus" "Copepodits1" "Copepodits2"
## [9] "Copepodits3" "Copepodits4" "Copepodits5" "ClausocalanusA"
## [13] "ClausocalanusB" "ClausocalanusC" "AdultsOfCentropages" "JuvenilesOfCentropages"
## [17] "Nauplii" "Oithona" "Acanthaires" "Cladocerans"
## [21] "EchinodermsLarvae" "DecapodsLarvae" "GasteropodsLarvae" "EggsOfCrustaceans"
## [25] "Ostracods" "Pteropods" "Siphonophores" "BellsOfCalycophores"
## [29] "Zone"
# Première AFM sur mar
mar_mfa <- mfa(data = mar,
~ 4*std %as% environment + 24*num %as% plancton - 1*fct %as% zone)
# Résumé de la première AFM
summary(mar_mfa)##
## Call:
## MFA(base = data, group = params$groups, type = params$types,
## ind.sup = suprow, ncp = nd, name.group = params$names, num.group.sup = params$suppl,
## graph = graph)
##
##
## Eigenvalues
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 Dim.6 Dim.7 Dim.8 Dim.9 Dim.10 Dim.11 Dim.12 Dim.13
## Variance 1.801 1.145 0.215 0.121 0.116 0.103 0.092 0.063 0.057 0.047 0.032 0.030 0.028
## % of var. 45.228 28.768 5.409 3.047 2.908 2.575 2.320 1.578 1.430 1.179 0.804 0.754 0.710
## Cumulative % of var. 45.228 73.996 79.405 82.452 85.360 87.935 90.256 91.834 93.264 94.443 95.247 96.001 96.712
## Dim.14 Dim.15 Dim.16 Dim.17 Dim.18 Dim.19 Dim.20 Dim.21 Dim.22 Dim.23 Dim.24 Dim.25 Dim.26
## Variance 0.021 0.019 0.016 0.013 0.012 0.011 0.010 0.008 0.005 0.005 0.004 0.003 0.003
## % of var. 0.537 0.477 0.397 0.328 0.298 0.276 0.242 0.211 0.123 0.115 0.097 0.080 0.070
## Cumulative % of var. 97.249 97.726 98.124 98.452 98.750 99.026 99.267 99.479 99.602 99.717 99.814 99.893 99.963
## Dim.27 Dim.28
## Variance 0.001 0.000
## % of var. 0.037 0.000
## Cumulative % of var. 100.000 100.000
##
## Groups
## Dim.1 ctr cos2 Dim.2 ctr cos2 Dim.3 ctr cos2
## environment | 0.864 47.958 0.408 | 0.967 84.430 0.511 | 0.056 25.844 0.002 |
## plancton | 0.937 52.042 0.781 | 0.178 15.570 0.028 | 0.160 74.156 0.023 |
##
## Supplementary group
## Dim.1 cos2 Dim.2 cos2 Dim.3 cos2
## zone | 0.849 0.144 | 0.753 0.113 | 0.220 0.010 |
##
## Individuals (the 10 first)
## Dim.1 ctr cos2 Dim.2 ctr cos2 Dim.3 ctr cos2
## 1 | -3.029 7.493 0.788 | -0.153 0.030 0.002 | -1.203 9.881 0.124 |
## 2 | -2.826 6.522 0.907 | 0.100 0.013 0.001 | -0.613 2.569 0.043 |
## 3 | -2.986 7.280 0.923 | -0.015 0.000 0.000 | -0.558 2.126 0.032 |
## 4 | -2.817 6.479 0.917 | -0.040 0.002 0.000 | -0.324 0.716 0.012 |
## 5 | -2.988 7.290 0.913 | 0.116 0.017 0.001 | -0.530 1.915 0.029 |
## 6 | -2.850 6.635 0.889 | 0.319 0.131 0.011 | -0.470 1.511 0.024 |
## 7 | -2.561 5.357 0.796 | 0.807 0.835 0.079 | -0.306 0.638 0.011 |
## 8 | -2.434 4.837 0.761 | 0.676 0.586 0.059 | -0.012 0.001 0.000 |
## 9 | -2.192 3.923 0.651 | 0.832 0.889 0.094 | 0.200 0.272 0.005 |
## 10 | -1.526 1.902 0.708 | 0.355 0.161 0.038 | 0.642 2.815 0.125 |
##
## Continuous variables (the 10 first)
## Dim.1 ctr cos2 Dim.2 ctr cos2 Dim.3 ctr cos2
## Temperature | -0.526 7.649 0.277 | -0.756 24.810 0.571 | 0.281 18.192 0.079 |
## Salinity | 0.676 12.621 0.457 | -0.718 22.364 0.515 | -0.084 1.641 0.007 |
## Fluorescence | 0.600 9.929 0.359 | 0.737 23.603 0.544 | -0.065 0.989 0.004 |
## Density | 0.802 17.758 0.643 | -0.561 13.654 0.314 | -0.147 5.022 0.022 |
## Acartia | 0.007 0.000 0.000 | 0.711 2.381 0.384 | 0.410 4.215 0.128 |
## AdultsOfCalanus | 1.721 8.883 0.873 | -0.084 0.033 0.002 | 0.102 0.262 0.003 |
## Copepodits1 | 1.662 8.288 0.866 | -0.245 0.283 0.019 | 0.265 1.764 0.022 |
## Copepodits2 | 0.708 1.503 0.381 | -0.041 0.008 0.001 | 0.400 4.003 0.121 |
## Copepodits3 | 0.764 1.750 0.625 | 0.272 0.349 0.079 | 0.104 0.271 0.012 |
## Copepodits4 | 0.801 1.925 0.654 | 0.229 0.246 0.053 | 0.147 0.544 0.022 |
##
## Supplementary categories
## Dim.1 cos2 v.test Dim.2 cos2 v.test Dim.3 cos2 v.test
## périphérique | -2.084 0.974 -7.052 | 0.257 0.015 1.090 | 0.117 0.003 1.143 |
## divergente1 | -0.404 0.291 -0.900 | 0.185 0.061 0.516 | 0.306 0.166 1.968 |
## convergente | 0.558 0.083 0.959 | 1.747 0.810 3.765 | 0.246 0.016 1.221 |
## frontale | 1.225 0.484 3.282 | 1.181 0.450 3.968 | -0.313 0.032 -2.424 |
## divergente2 | 0.478 0.129 0.822 | -0.918 0.474 -1.978 | -0.419 0.099 -2.084 |
## centrale | 0.779 0.373 3.399 | -0.988 0.599 -5.403 | 0.000 0.000 -0.002 |
# Variante du graphique des individus avec annotations des zones et ellipses
chart$ellipses(mar_mfa, choices = c(1, 2), keepvar = "Zone")# Graphique de la relation entre groupes de la première AFM
chart$groups(mar_mfa, choices = c(1, 2))# Seconde AFM avec plancton traité selon une AFC au lieu d'une ACP
mar_mfa2 <- mfa(data = mar,
~ 4*std %as% environment + 24*cnt %as% plancton - 1*fct %as% zone)
# Premières valeurs propres de la seconde AFM
head(mar_mfa2$eig)## eigenvalue percentage of variance cumulative percentage of variance
## comp 1 1.78441859 47.260175 47.26017
## comp 2 1.03313254 27.362427 74.62260
## comp 3 0.18926229 5.012596 79.63520
## comp 4 0.12752685 3.377538 83.01274
## comp 5 0.10759137 2.849548 85.86228
## comp 6 0.08901514 2.357558 88.21984
# Graphique des individus annoté pour la seconde AFM
chart$ellipses(mar_mfa2, choices = c(1, 2), keepvar = "Zone")# Biplot de l'AFC réalisée sur le plancton de la seconde AFM
chart$contingency(mar_mfa2, choices = c(1, 2))# # Exemple fictif de lecture de données depuis internet avec mise en cache
# # (décommentez et ajustez le code ci-dessous pour l'utiliser)
# #dir_create("data/cache") # S"assurer que le dossier existe
# #big_data <- read$csv.xz("https://mysite.org/mybigdata.cs.xz",
# # cache_file = "data/cache/mybigdata.csv.xz")
# Chargement du dialecte SciViews::R
SciViews::R
# Lecture du jeu de données babynames depuis le package du même nom
babynames <- read("babynames", package = "babynames")
# Création de la base de données et copie de babynames dedans
con <- DBI::dbConnect(duckdb::duckdb())
copy_to(con, babynames)
# Élimination du jeu de données dans la session R (on garde la version duckdb)
rm(babynames)
# Liste des tables dans notre base de données
DBI::dbListTables(con)## [1] "babynames"
# Liste des champs (colonnes) de la table babynames dans la base de données
DBI::dbListFields(con, "babynames")## [1] "year" "sex" "name" "n" "prop"
# Liaison à une table dans la base de données
db_babynames <- tbl(con, "babynames")
# Premières lignes de la table
head(db_babynames)## # Source: SQL [?? x 5]
## # Database: DuckDB v1.2.1 [root@Darwin 25.3.0:R 4.4.3/:memory:]
## year sex name n prop
## <dbl> <chr> <chr> <int> <dbl>
## 1 1880 F Mary 7065 0.0724
## 2 1880 F Anna 2604 0.0267
## 3 1880 F Emma 2003 0.0205
## 4 1880 F Elizabeth 1939 0.0199
## 5 1880 F Minnie 1746 0.0179
## 6 1880 F Margaret 1578 0.0162
# Remaniement de données dans la base de données
db_babynames %>.%
group_by(., name) %>.%
summarise(., total = sum(n, na.rm = TRUE)) %>.%
arrange(., desc(total)) ->
query
# Visualiation de la requête SQL équivalent
show_query(query)## <SQL>
## SELECT "name", SUM(n) AS total
## FROM babynames
## GROUP BY "name"
## ORDER BY total DESC
## # A data.trame: [97,310 × 2]
## name total
## <chr> <dbl>
## 1 James 5173828
## 2 John 5137142
## 3 Robert 4834915
## 4 Michael 4372536
## 5 Mary 4138360
## 6 William 4118553
## 7 David 3624225
## 8 Joseph 2614083
## 9 Richard 2572613
## 10 Charles 2398453
## # ℹ 97,300 more rows