
Is chooseGCM affected by variable selection?
Source:vignettes/articles/Variables-Effect.Rmd
Variables-Effect.Rmd
This Rmarkdown is part of the following article:
Esser, L.F., Bailly, D., Lima, M.R., Ré, R. 2024. chooseGCM: a toolkit to select General Circulation Models in R. In prep.
Introduction
chooseGCM is a solution for GCMs selection in Climate Change research. We built this Rmarkdown as a way to test the properties of the methods underlying chooseGCM. Results from each function will be presented side by side with changing variables, allowing better comparison. Here, we have already downloaded GCMs data.
This Rmarkdown will apply different algorithms implemented in chooseGCM in different variables sets. The aim is to understand if different variables sets will affect the GCMs subset selected by algorithms. We expect that results will change with varibles sets, since this change will change the very core of the comparison process, which is values presented. To showcase this, we used four sets of bioclimatic variables: (1) Bio1 and Bio12, which are the main temperature and precipitation variables (Annual Mean Temperature and Annual Precipitation, respectively); (2) Temperature variables (Bio1 to Bio11); (3) Precipitation variables (Bio12 to Bio19); and (4) all bioclimatic variables.
# Install and open CRAN libraries
for(x in c("devtools", "geodata", "terra", "tictoc") ){
if (!require(x, character.only = TRUE)) {
install.packages(x, dependencies = TRUE)
library(x, character.only = TRUE)
}
}
# Install and open chooseGCM
if (!require("chooseGCM", character.only = TRUE)) {
devtools::install_github("luizesser/chooseGCM")
library("chooseGCM", character.only = TRUE)
}
# Install and open caretSDM
if (!require("caretSDM", character.only = TRUE)) {
devtools::install_github("luizesser/caretSDM")
library("caretSDM", character.only = TRUE)
}
Preparing data
Import study_area
For this demonstration, we will use Araucaria angustifolia, the brazilian pine, as a study case. This flagship species is a key species for the Atlantic Rainforest biodiversity hotspot. Species records were obtained from GBIF and cleaned by excluding records from outside the native region and NAs. This set of records was then used to build a shape of accessible area by merging buffers of 500 km around each record.
occ_data <- geodata::sp_occurrence("Araucaria", "angustifolia")
## 1932 records found
## 0-300-600-900-1200-1500-1800-1932
## 1932 records downloaded
occ_data <- occ_data |>
dplyr::filter(lon >= -64) |>
dplyr::filter(lon <= -33) |>
dplyr::filter(lat <= -19.5) |>
dplyr::filter(lat >= -33)
study_area <- na.omit(occ_data[,c("lon", "lat")]) |>
sf::st_as_sf(coords= c(1,2), crs = 4326) |>
sf::st_transform(crs=sf::st_crs(6933)) |>
sf::st_buffer(dist = 500000) |>
sf::st_union()
Download GCMs
To obtain GCMs data, we recommend using geodata
package,
which links directly to the WorldClim 2.1 database. We have previously
downloaded GCMs data, but an example code is supplied below.
gcms <- geodata:::.cmods
for (r in c(10)) {
for ( g in gcms ) {
geodata::cmip6_world(model = g,
ssp = "585",
time = "2081-2100",
var = "bioc",
res = r,
path = ""
)
}
}
Import GCMs
The function import_gcms
helps the user to import data in
the correct way, which is a list of GCMs. Each element of the list is a
SpatRaster
from terra
package, containing all
variables. The list should be named with GCMs names to better plot
results.
tictoc::tic()
s10 <- chooseGCM::import_gcms(path = "~/storage/WC_data/WC_data_all_gcms_10/",
gcm_names = c("ACCESS-CM2","ACCESS-ESM1-5",
"CanESM5-CanOE","CMCC-ESM2",
"CNRM-CM6-1-HR","CNRM-CM6-1",
"CNRM-ESM2-1","EC-Earth3-Veg",
"EC-Earth3-Veg-LR","FIO-ESM-2-0",
"GISS-E2-1-G","GISS-E2-1-H",
"HadGEM3-GC31-LL","INM-CM5-0",
"INM-CM4-8","IPSL-CM6A-LR",
"MIROC-ES2L","MIROC6",
"MPI-ESM1-2-LR","MPI-ESM1-2-HR",
"MRI-ESM2-0","UKESM1-0-LL"))
tictoc::toc()
## 0.165 sec elapsed
Applying algorithms
First we will set a seed to standardize randomic outputs.
set.seed(1)
Now we will perform the Monte Carlo analysis to each type of algorithm and to different sets of variables.
Hierarchical Clustering selection
tictoc::tic("Hierarchical Clustering Main Bioclimatics")
mc_hclust_main <- montecarlo_gcms(s10,
var_names = c("bio1", "bio12"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "hclust")
## Warning: The `<scale>` argument of `guides()` cannot be `FALSE`. Use "none" instead as
## of ggplot2 3.3.4.
## ℹ The deprecated feature was likely used in the factoextra package.
## Please report the issue at <https://github.com/kassambara/factoextra/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
mc_hclust_main
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## [1] "ACCESS-ESM1-5" "EC-Earth3-Veg-LR"
##
## $suggested_gcms$k3
## [1] "ACCESS-ESM1-5" "EC-Earth3-Veg-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k4
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "EC-Earth3-Veg-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k5
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2" "EC-Earth3-Veg-LR"
## [5] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k6
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2" "EC-Earth3-Veg-LR"
## [5] "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k7
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2" "INM-CM4-8"
## [5] "EC-Earth3-Veg-LR" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k8
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2" "INM-CM4-8"
## [5] "EC-Earth3-Veg-LR" "GISS-E2-1-H" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k9
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2" "INM-CM4-8"
## [5] "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H" "MPI-ESM1-2-LR"
## [9] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k10
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k11
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "MPI-ESM1-2-LR" "IPSL-CM6A-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k12
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "INM-CM5-0" "IPSL-CM6A-LR" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k13
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR" "MPI-ESM1-2-LR"
## [13] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k14
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [13] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k15
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR"
## [13] "MIROC-ES2L" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k16
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k17
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6" "MPI-ESM1-2-HR"
## [17] "MPI-ESM1-2-LR"
##
## $suggested_gcms$k18
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k19
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k20
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k21
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
## [21] "UKESM1-0-LL"
hclust_main <- mc_hclust_main$suggested_gcms$k5
tictoc::toc()
## Hierarchical Clustering Main Bioclimatics: 15.834 sec elapsed
tictoc::tic("Hierarchical Clustering Temperature Variables")
mc_hclust_temp <- montecarlo_gcms(s10,
var_names = c("bio1", "bio2", "bio3", "bio4", "bio5", "bio6", "bio7", "bio8", "bio9", "bio10", "bio11"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "hclust")
mc_hclust_temp
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## [1] "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
##
## $suggested_gcms$k3
## [1] "ACCESS-CM2" "FIO-ESM-2-0" "EC-Earth3-Veg-LR"
##
## $suggested_gcms$k4
## [1] "ACCESS-CM2" "FIO-ESM-2-0" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
##
## $suggested_gcms$k5
## [1] "ACCESS-CM2" "CMCC-ESM2" "FIO-ESM-2-0" "EC-Earth3-Veg-LR"
## [5] "GISS-E2-1-H"
##
## $suggested_gcms$k6
## [1] "ACCESS-CM2" "CMCC-ESM2" "CNRM-CM6-1" "EC-Earth3-Veg-LR"
## [5] "FIO-ESM-2-0" "GISS-E2-1-H"
##
## $suggested_gcms$k7
## [1] "ACCESS-CM2" "CMCC-ESM2" "CNRM-CM6-1" "EC-Earth3-Veg-LR"
## [5] "FIO-ESM-2-0" "GISS-E2-1-H" "INM-CM4-8"
##
## $suggested_gcms$k8
## [1] "ACCESS-CM2" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-H" "INM-CM4-8"
##
## $suggested_gcms$k9
## [1] "ACCESS-CM2" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-H" "INM-CM4-8"
## [9] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k10
## [1] "ACCESS-CM2" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-H" "INM-CM4-8"
## [9] "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k11
## [1] "ACCESS-CM2" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [9] "INM-CM4-8" "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k12
## [1] "ACCESS-CM2" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [9] "INM-CM4-8" "IPSL-CM6A-LR" "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k13
## [1] "ACCESS-CM2" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-H"
## [9] "HadGEM3-GC31-LL" "INM-CM4-8" "IPSL-CM6A-LR" "MIROC-ES2L"
## [13] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k14
## [1] "ACCESS-CM2" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-H"
## [9] "HadGEM3-GC31-LL" "INM-CM4-8" "IPSL-CM6A-LR" "MIROC-ES2L"
## [13] "MPI-ESM1-2-HR" "MRI-ESM2-0"
##
## $suggested_gcms$k15
## [1] "ACCESS-CM2" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-H"
## [9] "HadGEM3-GC31-LL" "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR"
## [13] "MIROC-ES2L" "MPI-ESM1-2-HR" "MRI-ESM2-0"
##
## $suggested_gcms$k16
## [1] "ACCESS-CM2" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-H"
## [9] "HadGEM3-GC31-LL" "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR"
## [13] "MIROC-ES2L" "MIROC6" "MPI-ESM1-2-HR" "MRI-ESM2-0"
##
## $suggested_gcms$k17
## [1] "ACCESS-CM2" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-G"
## [9] "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6" "MPI-ESM1-2-HR"
## [17] "MRI-ESM2-0"
##
## $suggested_gcms$k18
## [1] "ACCESS-CM2" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-G"
## [9] "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6" "MPI-ESM1-2-HR"
## [17] "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k19
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k20
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "CNRM-ESM2-1" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k21
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "CNRM-ESM2-1" "EC-Earth3-Veg"
## [9] "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H"
## [13] "HadGEM3-GC31-LL" "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR"
## [17] "MIROC-ES2L" "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
## [21] "MRI-ESM2-0"
hclust_temp <- mc_hclust_temp$suggested_gcms$k5
tictoc::toc()
## Hierarchical Clustering Temperature Variables: 24.27 sec elapsed
tictoc::tic("Hierarchical Clustering Precipitation Variables")
mc_hclust_prec <- montecarlo_gcms(s10,
var_names = c("bio12", "bio13", "bio14", "bio15", "bio16", "bio17", "bio18", "bio19"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "hclust")
mc_hclust_prec
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## [1] "GISS-E2-1-G" "CanESM5-CanOE"
##
## $suggested_gcms$k3
## [1] "MRI-ESM2-0" "CanESM5-CanOE" "GISS-E2-1-G"
##
## $suggested_gcms$k4
## [1] "MRI-ESM2-0" "CanESM5-CanOE" "CMCC-ESM2" "GISS-E2-1-G"
##
## $suggested_gcms$k5
## [1] "MRI-ESM2-0" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "GISS-E2-1-G"
##
## $suggested_gcms$k6
## [1] "MRI-ESM2-0" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "GISS-E2-1-G"
##
## $suggested_gcms$k7
## [1] "MRI-ESM2-0" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "GISS-E2-1-G" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k8
## [1] "MRI-ESM2-0" "CanESM5-CanOE" "CMCC-ESM2" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "GISS-E2-1-G" "INM-CM5-0" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k9
## [1] "MRI-ESM2-0" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "EC-Earth3-Veg-LR" "GISS-E2-1-G" "INM-CM5-0"
## [9] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k10
## [1] "MRI-ESM2-0" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "EC-Earth3-Veg-LR" "GISS-E2-1-G" "INM-CM5-0"
## [9] "MIROC6" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k11
## [1] "MRI-ESM2-0" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "EC-Earth3-Veg-LR" "GISS-E2-1-G" "INM-CM5-0"
## [9] "IPSL-CM6A-LR" "MIROC6" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k12
## [1] "MRI-ESM2-0" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "GISS-E2-1-G"
## [9] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC6" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k13
## [1] "MRI-ESM2-0" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "GISS-E2-1-G"
## [9] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC6" "MPI-ESM1-2-HR"
## [13] "MPI-ESM1-2-LR"
##
## $suggested_gcms$k14
## [1] "MRI-ESM2-0" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "GISS-E2-1-G"
## [9] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC6"
## [13] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k15
## [1] "MRI-ESM2-0" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR"
## [13] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k16
## [1] "MRI-ESM2-0" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k17
## [1] "MRI-ESM2-0" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "UKESM1-0-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC6" "MPI-ESM1-2-HR"
## [17] "MPI-ESM1-2-LR"
##
## $suggested_gcms$k18
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "UKESM1-0-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC6" "MPI-ESM1-2-HR"
## [17] "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k19
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "CNRM-ESM2-1" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "UKESM1-0-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k20
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "CNRM-ESM2-1" "EC-Earth3-Veg"
## [9] "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H"
## [13] "UKESM1-0-LL" "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k21
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "CNRM-ESM2-1" "EC-Earth3-Veg"
## [9] "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H"
## [13] "HadGEM3-GC31-LL" "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
## [21] "UKESM1-0-LL"
hclust_prec <- mc_hclust_prec$suggested_gcms$k5
tictoc::toc()
## Hierarchical Clustering Precipitation Variables: 17.778 sec elapsed
tictoc::tic("Hierarchical Clustering All Variables")
mc_hclust_all <- montecarlo_gcms(s10,
var_names = "all",
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "hclust")
mc_hclust_all
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## [1] "FIO-ESM-2-0" "EC-Earth3-Veg-LR"
##
## $suggested_gcms$k3
## [1] "FIO-ESM-2-0" "EC-Earth3-Veg-LR" "CanESM5-CanOE"
##
## $suggested_gcms$k4
## [1] "FIO-ESM-2-0" "EC-Earth3-Veg-LR" "CanESM5-CanOE" "GISS-E2-1-H"
##
## $suggested_gcms$k5
## [1] "FIO-ESM-2-0" "EC-Earth3-Veg-LR" "CanESM5-CanOE" "CNRM-CM6-1"
## [5] "GISS-E2-1-H"
##
## $suggested_gcms$k6
## [1] "FIO-ESM-2-0" "CMCC-ESM2" "CanESM5-CanOE" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "GISS-E2-1-H"
##
## $suggested_gcms$k7
## [1] "FIO-ESM-2-0" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
##
## $suggested_gcms$k8
## [1] "FIO-ESM-2-0" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "EC-Earth3-Veg-LR" "GISS-E2-1-H" "INM-CM4-8"
##
## $suggested_gcms$k9
## [1] "FIO-ESM-2-0" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "EC-Earth3-Veg-LR" "GISS-E2-1-H" "INM-CM4-8"
## [9] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k10
## [1] "FIO-ESM-2-0" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "EC-Earth3-Veg-LR" "GISS-E2-1-H" "INM-CM4-8"
## [9] "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k11
## [1] "FIO-ESM-2-0" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "EC-Earth3-Veg-LR" "GISS-E2-1-H" "INM-CM4-8"
## [9] "IPSL-CM6A-LR" "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k12
## [1] "FIO-ESM-2-0" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "INM-CM4-8" "IPSL-CM6A-LR" "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k13
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-H" "INM-CM4-8" "IPSL-CM6A-LR" "MIROC-ES2L"
## [13] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k14
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR"
## [13] "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k15
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k16
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k17
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MPI-ESM1-2-HR"
## [17] "MPI-ESM1-2-LR"
##
## $suggested_gcms$k18
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MPI-ESM1-2-HR"
## [17] "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k19
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k20
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "CNRM-ESM2-1" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k21
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "CNRM-ESM2-1" "EC-Earth3-Veg"
## [9] "EC-Earth3-Veg-LR" "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H"
## [13] "HadGEM3-GC31-LL" "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR"
## [17] "MIROC-ES2L" "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
## [21] "MRI-ESM2-0"
hclust_all <- mc_hclust_all$suggested_gcms$k5
tictoc::toc()
## Hierarchical Clustering All Variables: 33.543 sec elapsed
Kmeans selection
tictoc::tic("K-means Clustering Main Variables")
mc_kmeans_main <- montecarlo_gcms(s10,
var_names = c("bio1", "bio12"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "kmeans")
mc_kmeans_main
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## 1 2
## "CNRM-ESM2-1" "CanESM5-CanOE"
##
## $suggested_gcms$k3
## 1 2 3
## "MRI-ESM2-0" "CNRM-ESM2-1" "CanESM5-CanOE"
##
## $suggested_gcms$k4
## 1 2 3 4
## "CanESM5-CanOE" "MRI-ESM2-0" "CNRM-ESM2-1" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k5
## 1 2 3 4 5
## "UKESM1-0-LL" "CanESM5-CanOE" "MRI-ESM2-0" "MPI-ESM1-2-HR" "CNRM-CM6-1"
##
## $suggested_gcms$k6
## 1 2 3 4 5
## "MPI-ESM1-2-HR" "CanESM5-CanOE" "INM-CM4-8" "UKESM1-0-LL" "MRI-ESM2-0"
## 6
## "EC-Earth3-Veg"
##
## $suggested_gcms$k7
## 1 2 3 4 5
## "FIO-ESM-2-0" "MPI-ESM1-2-HR" "UKESM1-0-LL" "MRI-ESM2-0" "CanESM5-CanOE"
## 6 7
## "INM-CM4-8" "EC-Earth3-Veg"
##
## $suggested_gcms$k8
## 1 2 3 4 5
## "MPI-ESM1-2-HR" "MIROC-ES2L" "EC-Earth3-Veg" "GISS-E2-1-G" "UKESM1-0-LL"
## 6 7 8
## "INM-CM4-8" "FIO-ESM-2-0" "CanESM5-CanOE"
##
## $suggested_gcms$k9
## 1 2 3 4 5
## "MIROC-ES2L" "GISS-E2-1-G" "FIO-ESM-2-0" "MPI-ESM1-2-HR" "CNRM-ESM2-1"
## 6 7 8 9
## "IPSL-CM6A-LR" "CNRM-CM6-1" "CanESM5-CanOE" "UKESM1-0-LL"
##
## $suggested_gcms$k10
## 1 2 3 4 5
## "IPSL-CM6A-LR" "GISS-E2-1-G" "CNRM-CM6-1" "FIO-ESM-2-0" "GISS-E2-1-H"
## 6 7 8 9 10
## "UKESM1-0-LL" "CanESM5-CanOE" "MPI-ESM1-2-HR" "MIROC-ES2L" "CNRM-ESM2-1"
##
## $suggested_gcms$k11
## 1 2 3 4 5
## "CMCC-ESM2" "IPSL-CM6A-LR" "CNRM-ESM2-1" "GISS-E2-1-H" "CanESM5-CanOE"
## 6 7 8 9 10
## "MPI-ESM1-2-HR" "UKESM1-0-LL" "ACCESS-CM2" "CNRM-CM6-1" "MIROC-ES2L"
## 11
## "GISS-E2-1-G"
##
## $suggested_gcms$k12
## 1 2 3 4 5
## "UKESM1-0-LL" "CNRM-CM6-1" "MIROC-ES2L" "ACCESS-CM2" "EC-Earth3-Veg"
## 6 7 8 9 10
## "GISS-E2-1-G" "CMCC-ESM2" "CNRM-CM6-1-HR" "IPSL-CM6A-LR" "GISS-E2-1-H"
## 11 12
## "MPI-ESM1-2-HR" "CanESM5-CanOE"
##
## $suggested_gcms$k13
## 1 2 3 4 5
## "CNRM-CM6-1" "EC-Earth3-Veg" "IPSL-CM6A-LR" "UKESM1-0-LL" "GISS-E2-1-H"
## 6 7 8 9 10
## "CNRM-CM6-1-HR" "MIROC-ES2L" "MPI-ESM1-2-HR" "CanESM5-CanOE" "CMCC-ESM2"
## 11 12 13
## "GISS-E2-1-G" "ACCESS-CM2" "INM-CM5-0"
##
## $suggested_gcms$k14
## 1 2 3 4 5
## "MPI-ESM1-2-HR" "CNRM-CM6-1-HR" "GISS-E2-1-G" "GISS-E2-1-H" "EC-Earth3-Veg"
## 6 7 8 9 10
## "INM-CM5-0" "MPI-ESM1-2-LR" "CanESM5-CanOE" "MIROC-ES2L" "CNRM-CM6-1"
## 11 12 13 14
## "CMCC-ESM2" "UKESM1-0-LL" "IPSL-CM6A-LR" "ACCESS-CM2"
##
## $suggested_gcms$k15
## 1 2 3 4 5
## "CanESM5-CanOE" "IPSL-CM6A-LR" "ACCESS-CM2" "UKESM1-0-LL" "CNRM-CM6-1-HR"
## 6 7 8 9 10
## "MPI-ESM1-2-LR" "INM-CM5-0" "CMCC-ESM2" "MIROC-ES2L" "GISS-E2-1-G"
## 11 12 13 14 15
## "GISS-E2-1-H" "EC-Earth3-Veg" "MPI-ESM1-2-HR" "CNRM-CM6-1" "MRI-ESM2-0"
##
## $suggested_gcms$k16
## 1 2 3 4 5
## "CNRM-CM6-1" "CMCC-ESM2" "CNRM-CM6-1-HR" "IPSL-CM6A-LR" "ACCESS-CM2"
## 6 7 8 9 10
## "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MIROC-ES2L" "MRI-ESM2-0" "GISS-E2-1-H"
## 11 12 13 14 15
## "EC-Earth3-Veg" "UKESM1-0-LL" "MIROC6" "INM-CM5-0" "GISS-E2-1-G"
## 16
## "CanESM5-CanOE"
##
## $suggested_gcms$k17
## 1 2 3 4
## "CNRM-CM6-1" "IPSL-CM6A-LR" "ACCESS-ESM1-5" "MPI-ESM1-2-LR"
## 5 6 7 8
## "EC-Earth3-Veg" "MRI-ESM2-0" "INM-CM5-0" "MIROC-ES2L"
## 9 10 11 12
## "CNRM-CM6-1-HR" "GISS-E2-1-G" "MPI-ESM1-2-HR" "CanESM5-CanOE"
## 13 14 15 16
## "GISS-E2-1-H" "MIROC6" "ACCESS-CM2" "HadGEM3-GC31-LL"
## 17
## "CMCC-ESM2"
##
## $suggested_gcms$k18
## 1 2 3 4
## "ACCESS-ESM1-5" "MPI-ESM1-2-LR" "CNRM-CM6-1" "CMCC-ESM2"
## 5 6 7 8
## "INM-CM5-0" "MRI-ESM2-0" "MIROC-ES2L" "IPSL-CM6A-LR"
## 9 10 11 12
## "EC-Earth3-Veg" "INM-CM4-8" "MIROC6" "CanESM5-CanOE"
## 13 14 15 16
## "CNRM-CM6-1-HR" "GISS-E2-1-H" "GISS-E2-1-G" "MPI-ESM1-2-HR"
## 17 18
## "ACCESS-CM2" "HadGEM3-GC31-LL"
##
## $suggested_gcms$k19
## 1 2 3 4
## "INM-CM5-0" "MRI-ESM2-0" "EC-Earth3-Veg-LR" "EC-Earth3-Veg"
## 5 6 7 8
## "ACCESS-ESM1-5" "ACCESS-CM2" "GISS-E2-1-G" "MPI-ESM1-2-LR"
## 9 10 11 12
## "INM-CM4-8" "MIROC6" "HadGEM3-GC31-LL" "MPI-ESM1-2-HR"
## 13 14 15 16
## "CNRM-CM6-1" "CMCC-ESM2" "CanESM5-CanOE" "IPSL-CM6A-LR"
## 17 18 19
## "GISS-E2-1-H" "CNRM-CM6-1-HR" "MIROC-ES2L"
##
## $suggested_gcms$k20
## 1 2 3 4
## "MPI-ESM1-2-HR" "INM-CM5-0" "MIROC-ES2L" "IPSL-CM6A-LR"
## 5 6 7 8
## "EC-Earth3-Veg" "GISS-E2-1-H" "FIO-ESM-2-0" "HadGEM3-GC31-LL"
## 9 10 11 12
## "CMCC-ESM2" "MIROC6" "CanESM5-CanOE" "ACCESS-ESM1-5"
## 13 14 15 16
## "CNRM-CM6-1" "CNRM-CM6-1-HR" "INM-CM4-8" "MPI-ESM1-2-LR"
## 17 18 19 20
## "GISS-E2-1-G" "ACCESS-CM2" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k21
## 1 2 3 4
## "CMCC-ESM2" "CNRM-ESM2-1" "CNRM-CM6-1" "INM-CM5-0"
## 5 6 7 8
## "MRI-ESM2-0" "MPI-ESM1-2-LR" "CanESM5-CanOE" "EC-Earth3-Veg"
## 9 10 11 12
## "MIROC-ES2L" "ACCESS-ESM1-5" "MIROC6" "FIO-ESM-2-0"
## 13 14 15 16
## "CNRM-CM6-1-HR" "ACCESS-CM2" "HadGEM3-GC31-LL" "GISS-E2-1-H"
## 17 18 19 20
## "MPI-ESM1-2-HR" "GISS-E2-1-G" "INM-CM4-8" "EC-Earth3-Veg-LR"
## 21
## "IPSL-CM6A-LR"
kmeans_main <- mc_kmeans_main$suggested_gcms$k5
tictoc::toc()
## K-means Clustering Main Variables: 23.375 sec elapsed
tictoc::tic("K-means Clustering Temperature Variables")
mc_kmeans_temp <- montecarlo_gcms(s10,
var_names = c("bio1", "bio2", "bio3", "bio4", "bio5", "bio6", "bio7", "bio8", "bio9", "bio10", "bio11"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "kmeans")
mc_kmeans_temp
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## 1 2
## "CNRM-ESM2-1" "UKESM1-0-LL"
##
## $suggested_gcms$k3
## 1 2 3
## "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "UKESM1-0-LL"
##
## $suggested_gcms$k4
## 1 2 3 4
## "CanESM5-CanOE" "CNRM-ESM2-1" "EC-Earth3-Veg" "UKESM1-0-LL"
##
## $suggested_gcms$k5
## 1 2 3 4 5
## "CanESM5-CanOE" "CNRM-ESM2-1" "EC-Earth3-Veg" "UKESM1-0-LL" "GISS-E2-1-G"
##
## $suggested_gcms$k6
## 1 2 3 4 5
## "GISS-E2-1-G" "CNRM-CM6-1-HR" "MPI-ESM1-2-LR" "EC-Earth3-Veg" "CanESM5-CanOE"
## 6
## "UKESM1-0-LL"
##
## $suggested_gcms$k7
## 1 2 3 4
## "GISS-E2-1-G" "CMCC-ESM2" "CNRM-ESM2-1" "HadGEM3-GC31-LL"
## 5 6 7
## "EC-Earth3-Veg" "MPI-ESM1-2-LR" "CanESM5-CanOE"
##
## $suggested_gcms$k8
## 1 2 3 4
## "HadGEM3-GC31-LL" "MPI-ESM1-2-LR" "GISS-E2-1-G" "CMCC-ESM2"
## 5 6 7 8
## "CanESM5-CanOE" "EC-Earth3-Veg" "ACCESS-CM2" "INM-CM4-8"
##
## $suggested_gcms$k9
## 1 2 3 4
## "CMCC-ESM2" "EC-Earth3-Veg" "CanESM5-CanOE" "MPI-ESM1-2-HR"
## 5 6 7 8
## "ACCESS-CM2" "MIROC-ES2L" "GISS-E2-1-G" "HadGEM3-GC31-LL"
## 9
## "CNRM-ESM2-1"
##
## $suggested_gcms$k10
## 1 2 3 4
## "HadGEM3-GC31-LL" "EC-Earth3-Veg" "ACCESS-CM2" "MPI-ESM1-2-HR"
## 5 6 7 8
## "CanESM5-CanOE" "CNRM-CM6-1" "CMCC-ESM2" "MIROC-ES2L"
## 9 10
## "GISS-E2-1-G" "CNRM-CM6-1-HR"
##
## $suggested_gcms$k11
## 1 2 3 4
## "CNRM-CM6-1-HR" "HadGEM3-GC31-LL" "MIROC6" "MPI-ESM1-2-HR"
## 5 6 7 8
## "CanESM5-CanOE" "MIROC-ES2L" "CNRM-CM6-1" "ACCESS-CM2"
## 9 10 11
## "CMCC-ESM2" "EC-Earth3-Veg" "GISS-E2-1-G"
##
## $suggested_gcms$k12
## 1 2 3 4
## "CanESM5-CanOE" "GISS-E2-1-G" "EC-Earth3-Veg" "HadGEM3-GC31-LL"
## 5 6 7 8
## "ACCESS-CM2" "MPI-ESM1-2-HR" "CNRM-CM6-1-HR" "MIROC6"
## 9 10 11 12
## "CMCC-ESM2" "MIROC-ES2L" "CNRM-CM6-1" "IPSL-CM6A-LR"
##
## $suggested_gcms$k13
## 1 2 3 4
## "CMCC-ESM2" "CanESM5-CanOE" "MIROC6" "GISS-E2-1-G"
## 5 6 7 8
## "EC-Earth3-Veg" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR" "CNRM-CM6-1"
## 9 10 11 12
## "ACCESS-CM2" "IPSL-CM6A-LR" "CNRM-CM6-1-HR" "HadGEM3-GC31-LL"
## 13
## "INM-CM4-8"
##
## $suggested_gcms$k14
## 1 2 3 4
## "CNRM-CM6-1-HR" "HadGEM3-GC31-LL" "CNRM-CM6-1" "EC-Earth3-Veg"
## 5 6 7 8
## "FIO-ESM-2-0" "ACCESS-CM2" "MPI-ESM1-2-LR" "CMCC-ESM2"
## 9 10 11 12
## "MPI-ESM1-2-HR" "MIROC6" "INM-CM4-8" "IPSL-CM6A-LR"
## 13 14
## "CanESM5-CanOE" "GISS-E2-1-G"
##
## $suggested_gcms$k15
## 1 2 3 4
## "MPI-ESM1-2-LR" "CanESM5-CanOE" "IPSL-CM6A-LR" "GISS-E2-1-G"
## 5 6 7 8
## "HadGEM3-GC31-LL" "EC-Earth3-Veg" "MIROC6" "MPI-ESM1-2-HR"
## 9 10 11 12
## "INM-CM4-8" "FIO-ESM-2-0" "CMCC-ESM2" "CNRM-CM6-1-HR"
## 13 14 15
## "ACCESS-CM2" "CNRM-CM6-1" "INM-CM5-0"
##
## $suggested_gcms$k16
## 1 2 3 4
## "CMCC-ESM2" "MIROC6" "CNRM-CM6-1-HR" "CanESM5-CanOE"
## 5 6 7 8
## "MRI-ESM2-0" "IPSL-CM6A-LR" "HadGEM3-GC31-LL" "FIO-ESM-2-0"
## 9 10 11 12
## "CNRM-CM6-1" "INM-CM4-8" "INM-CM5-0" "MPI-ESM1-2-LR"
## 13 14 15 16
## "MPI-ESM1-2-HR" "EC-Earth3-Veg" "ACCESS-CM2" "GISS-E2-1-G"
##
## $suggested_gcms$k17
## 1 2 3 4
## "CNRM-CM6-1" "EC-Earth3-Veg" "MRI-ESM2-0" "MPI-ESM1-2-LR"
## 5 6 7 8
## "MIROC-ES2L" "IPSL-CM6A-LR" "GISS-E2-1-G" "FIO-ESM-2-0"
## 9 10 11 12
## "MPI-ESM1-2-HR" "CMCC-ESM2" "HadGEM3-GC31-LL" "INM-CM4-8"
## 13 14 15 16
## "CNRM-CM6-1-HR" "INM-CM5-0" "MIROC6" "CanESM5-CanOE"
## 17
## "ACCESS-CM2"
##
## $suggested_gcms$k18
## 1 2 3 4
## "MIROC-ES2L" "FIO-ESM-2-0" "INM-CM4-8" "IPSL-CM6A-LR"
## 5 6 7 8
## "MIROC6" "MRI-ESM2-0" "MPI-ESM1-2-LR" "GISS-E2-1-H"
## 9 10 11 12
## "ACCESS-CM2" "CMCC-ESM2" "CanESM5-CanOE" "MPI-ESM1-2-HR"
## 13 14 15 16
## "GISS-E2-1-G" "HadGEM3-GC31-LL" "CNRM-CM6-1" "INM-CM5-0"
## 17 18
## "CNRM-CM6-1-HR" "EC-Earth3-Veg"
##
## $suggested_gcms$k19
## 1 2 3 4
## "CanESM5-CanOE" "HadGEM3-GC31-LL" "MIROC6" "MRI-ESM2-0"
## 5 6 7 8
## "GISS-E2-1-H" "EC-Earth3-Veg" "MPI-ESM1-2-LR" "INM-CM4-8"
## 9 10 11 12
## "MPI-ESM1-2-HR" "GISS-E2-1-G" "ACCESS-CM2" "ACCESS-ESM1-5"
## 13 14 15 16
## "CMCC-ESM2" "MIROC-ES2L" "CNRM-CM6-1-HR" "INM-CM5-0"
## 17 18 19
## "IPSL-CM6A-LR" "FIO-ESM-2-0" "CNRM-CM6-1"
##
## $suggested_gcms$k20
## 1 2 3 4
## "MPI-ESM1-2-HR" "CNRM-CM6-1-HR" "ACCESS-ESM1-5" "INM-CM4-8"
## 5 6 7 8
## "HadGEM3-GC31-LL" "MRI-ESM2-0" "INM-CM5-0" "CMCC-ESM2"
## 9 10 11 12
## "CNRM-ESM2-1" "ACCESS-CM2" "MIROC6" "GISS-E2-1-H"
## 13 14 15 16
## "MIROC-ES2L" "MPI-ESM1-2-LR" "CanESM5-CanOE" "IPSL-CM6A-LR"
## 17 18 19 20
## "GISS-E2-1-G" "CNRM-CM6-1" "FIO-ESM-2-0" "EC-Earth3-Veg"
##
## $suggested_gcms$k21
## 1 2 3 4
## "ACCESS-ESM1-5" "CNRM-CM6-1" "MPI-ESM1-2-HR" "CanESM5-CanOE"
## 5 6 7 8
## "INM-CM5-0" "ACCESS-CM2" "MRI-ESM2-0" "MIROC-ES2L"
## 9 10 11 12
## "CNRM-ESM2-1" "GISS-E2-1-G" "MIROC6" "CNRM-CM6-1-HR"
## 13 14 15 16
## "FIO-ESM-2-0" "MPI-ESM1-2-LR" "HadGEM3-GC31-LL" "IPSL-CM6A-LR"
## 17 18 19 20
## "EC-Earth3-Veg" "UKESM1-0-LL" "CMCC-ESM2" "GISS-E2-1-H"
## 21
## "INM-CM4-8"
kmeans_temp <- mc_kmeans_temp$suggested_gcms$k5
tictoc::toc()
## K-means Clustering Temperature Variables: 31.99 sec elapsed
tictoc::tic("K-means Clustering Precipitation Variables")
mc_kmeans_prec <- montecarlo_gcms(s10,
var_names = c("bio12", "bio13", "bio14", "bio15", "bio16", "bio17", "bio18", "bio19"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "kmeans")
mc_kmeans_prec
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## 1 2
## "CanESM5-CanOE" "HadGEM3-GC31-LL"
##
## $suggested_gcms$k3
## 1 2 3
## "MIROC6" "CanESM5-CanOE" "UKESM1-0-LL"
##
## $suggested_gcms$k4
## 1 2 3 4
## "HadGEM3-GC31-LL" "GISS-E2-1-G" "EC-Earth3-Veg" "CanESM5-CanOE"
##
## $suggested_gcms$k5
## 1 2 3 4
## "CNRM-ESM2-1" "MIROC6" "GISS-E2-1-G" "CanESM5-CanOE"
## 5
## "EC-Earth3-Veg-LR"
##
## $suggested_gcms$k6
## 1 2 3 4
## "EC-Earth3-Veg-LR" "CNRM-ESM2-1" "CanESM5-CanOE" "GISS-E2-1-G"
## 5 6
## "MIROC6" "HadGEM3-GC31-LL"
##
## $suggested_gcms$k7
## 1 2 3 4
## "CanESM5-CanOE" "CNRM-ESM2-1" "MPI-ESM1-2-HR" "MIROC6"
## 5 6 7
## "EC-Earth3-Veg-LR" "HadGEM3-GC31-LL" "GISS-E2-1-G"
##
## $suggested_gcms$k8
## 1 2 3 4
## "CMCC-ESM2" "CNRM-ESM2-1" "EC-Earth3-Veg" "GISS-E2-1-G"
## 5 6 7 8
## "CanESM5-CanOE" "MIROC6" "MPI-ESM1-2-HR" "HadGEM3-GC31-LL"
##
## $suggested_gcms$k9
## 1 2 3 4
## "CMCC-ESM2" "MPI-ESM1-2-HR" "GISS-E2-1-G" "MIROC6"
## 5 6 7 8
## "FIO-ESM-2-0" "CNRM-ESM2-1" "EC-Earth3-Veg" "HadGEM3-GC31-LL"
## 9
## "CanESM5-CanOE"
##
## $suggested_gcms$k10
## 1 2 3 4
## "GISS-E2-1-G" "INM-CM4-8" "MPI-ESM1-2-HR" "EC-Earth3-Veg"
## 5 6 7 8
## "CMCC-ESM2" "FIO-ESM-2-0" "CNRM-ESM2-1" "CanESM5-CanOE"
## 9 10
## "HadGEM3-GC31-LL" "MIROC-ES2L"
##
## $suggested_gcms$k11
## 1 2 3 4
## "MIROC-ES2L" "GISS-E2-1-G" "CanESM5-CanOE" "EC-Earth3-Veg"
## 5 6 7 8
## "CNRM-CM6-1" "FIO-ESM-2-0" "CMCC-ESM2" "MPI-ESM1-2-HR"
## 9 10 11
## "HadGEM3-GC31-LL" "INM-CM4-8" "CNRM-CM6-1-HR"
##
## $suggested_gcms$k12
## 1 2 3 4
## "CMCC-ESM2" "MIROC-ES2L" "CNRM-CM6-1-HR" "GISS-E2-1-G"
## 5 6 7 8
## "INM-CM4-8" "HadGEM3-GC31-LL" "MPI-ESM1-2-HR" "FIO-ESM-2-0"
## 9 10 11 12
## "EC-Earth3-Veg" "CNRM-CM6-1" "CanESM5-CanOE" "IPSL-CM6A-LR"
##
## $suggested_gcms$k13
## 1 2 3 4
## "ACCESS-CM2" "CMCC-ESM2" "CNRM-CM6-1-HR" "HadGEM3-GC31-LL"
## 5 6 7 8
## "MPI-ESM1-2-HR" "MIROC-ES2L" "IPSL-CM6A-LR" "CanESM5-CanOE"
## 9 10 11 12
## "EC-Earth3-Veg" "INM-CM4-8" "CNRM-CM6-1" "GISS-E2-1-G"
## 13
## "FIO-ESM-2-0"
##
## $suggested_gcms$k14
## 1 2 3 4
## "ACCESS-CM2" "HadGEM3-GC31-LL" "GISS-E2-1-G" "CNRM-CM6-1-HR"
## 5 6 7 8
## "MPI-ESM1-2-HR" "CanESM5-CanOE" "CMCC-ESM2" "INM-CM4-8"
## 9 10 11 12
## "MIROC-ES2L" "IPSL-CM6A-LR" "GISS-E2-1-H" "EC-Earth3-Veg"
## 13 14
## "FIO-ESM-2-0" "CNRM-CM6-1"
##
## $suggested_gcms$k15
## 1 2 3 4
## "GISS-E2-1-G" "MPI-ESM1-2-HR" "CNRM-CM6-1" "GISS-E2-1-H"
## 5 6 7 8
## "INM-CM5-0" "CNRM-CM6-1-HR" "FIO-ESM-2-0" "EC-Earth3-Veg"
## 9 10 11 12
## "ACCESS-CM2" "CanESM5-CanOE" "IPSL-CM6A-LR" "CMCC-ESM2"
## 13 14 15
## "INM-CM4-8" "MIROC-ES2L" "HadGEM3-GC31-LL"
##
## $suggested_gcms$k16
## 1 2 3 4
## "MPI-ESM1-2-HR" "CanESM5-CanOE" "ACCESS-CM2" "GISS-E2-1-H"
## 5 6 7 8
## "MPI-ESM1-2-LR" "GISS-E2-1-G" "CMCC-ESM2" "CNRM-CM6-1"
## 9 10 11 12
## "INM-CM4-8" "EC-Earth3-Veg" "HadGEM3-GC31-LL" "MIROC-ES2L"
## 13 14 15 16
## "FIO-ESM-2-0" "IPSL-CM6A-LR" "INM-CM5-0" "CNRM-CM6-1-HR"
##
## $suggested_gcms$k17
## 1 2 3 4
## "MRI-ESM2-0" "IPSL-CM6A-LR" "EC-Earth3-Veg" "CMCC-ESM2"
## 5 6 7 8
## "MIROC-ES2L" "GISS-E2-1-H" "MPI-ESM1-2-HR" "CNRM-CM6-1-HR"
## 9 10 11 12
## "CanESM5-CanOE" "FIO-ESM-2-0" "GISS-E2-1-G" "MPI-ESM1-2-LR"
## 13 14 15 16
## "ACCESS-CM2" "INM-CM4-8" "CNRM-CM6-1" "INM-CM5-0"
## 17
## "HadGEM3-GC31-LL"
##
## $suggested_gcms$k18
## 1 2 3 4
## "GISS-E2-1-H" "ACCESS-ESM1-5" "CanESM5-CanOE" "MPI-ESM1-2-LR"
## 5 6 7 8
## "CNRM-CM6-1-HR" "CNRM-CM6-1" "MIROC-ES2L" "EC-Earth3-Veg"
## 9 10 11 12
## "CMCC-ESM2" "INM-CM4-8" "HadGEM3-GC31-LL" "MRI-ESM2-0"
## 13 14 15 16
## "MPI-ESM1-2-HR" "IPSL-CM6A-LR" "GISS-E2-1-G" "ACCESS-CM2"
## 17 18
## "FIO-ESM-2-0" "INM-CM5-0"
##
## $suggested_gcms$k19
## 1 2 3 4
## "ACCESS-CM2" "CNRM-ESM2-1" "INM-CM4-8" "CNRM-CM6-1-HR"
## 5 6 7 8
## "INM-CM5-0" "MPI-ESM1-2-LR" "CanESM5-CanOE" "CNRM-CM6-1"
## 9 10 11 12
## "CMCC-ESM2" "FIO-ESM-2-0" "IPSL-CM6A-LR" "GISS-E2-1-G"
## 13 14 15 16
## "EC-Earth3-Veg" "ACCESS-ESM1-5" "MPI-ESM1-2-HR" "MRI-ESM2-0"
## 17 18 19
## "MIROC-ES2L" "HadGEM3-GC31-LL" "GISS-E2-1-H"
##
## $suggested_gcms$k20
## 1 2 3 4
## "UKESM1-0-LL" "GISS-E2-1-G" "MPI-ESM1-2-HR" "ACCESS-CM2"
## 5 6 7 8
## "CanESM5-CanOE" "MPI-ESM1-2-LR" "GISS-E2-1-H" "CNRM-CM6-1-HR"
## 9 10 11 12
## "FIO-ESM-2-0" "IPSL-CM6A-LR" "ACCESS-ESM1-5" "INM-CM5-0"
## 13 14 15 16
## "INM-CM4-8" "EC-Earth3-Veg" "CMCC-ESM2" "CNRM-ESM2-1"
## 17 18 19 20
## "MRI-ESM2-0" "MIROC-ES2L" "CNRM-CM6-1" "HadGEM3-GC31-LL"
##
## $suggested_gcms$k21
## 1 2 3 4
## "MPI-ESM1-2-HR" "CMCC-ESM2" "MIROC-ES2L" "UKESM1-0-LL"
## 5 6 7 8
## "MPI-ESM1-2-LR" "CNRM-ESM2-1" "INM-CM5-0" "HadGEM3-GC31-LL"
## 9 10 11 12
## "MIROC6" "FIO-ESM-2-0" "CNRM-CM6-1-HR" "EC-Earth3-Veg"
## 13 14 15 16
## "ACCESS-CM2" "INM-CM4-8" "IPSL-CM6A-LR" "MRI-ESM2-0"
## 17 18 19 20
## "GISS-E2-1-H" "CNRM-CM6-1" "GISS-E2-1-G" "ACCESS-ESM1-5"
## 21
## "CanESM5-CanOE"
kmeans_prec <- mc_kmeans_prec$suggested_gcms$k5
tictoc::toc()
## K-means Clustering Precipitation Variables: 29.385 sec elapsed
tictoc::tic("K-means Clustering All Variables")
mc_kmeans_all <- montecarlo_gcms(s10,
var_names = "all",
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "kmeans")
mc_kmeans_all
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## 1 2
## "IPSL-CM6A-LR" "CNRM-ESM2-1"
##
## $suggested_gcms$k3
## 1 2 3
## "UKESM1-0-LL" "CNRM-ESM2-1" "CanESM5-CanOE"
##
## $suggested_gcms$k4
## 1 2 3 4
## "GISS-E2-1-G" "EC-Earth3-Veg-LR" "CanESM5-CanOE" "CNRM-ESM2-1"
##
## $suggested_gcms$k5
## 1 2 3 4 5
## "GISS-E2-1-G" "CanESM5-CanOE" "UKESM1-0-LL" "CNRM-ESM2-1" "EC-Earth3-Veg"
##
## $suggested_gcms$k6
## 1 2 3 4
## "GISS-E2-1-G" "CNRM-ESM2-1" "HadGEM3-GC31-LL" "CMCC-ESM2"
## 5 6
## "CanESM5-CanOE" "EC-Earth3-Veg"
##
## $suggested_gcms$k7
## 1 2 3 4
## "GISS-E2-1-G" "EC-Earth3-Veg" "FIO-ESM-2-0" "CMCC-ESM2"
## 5 6 7
## "CanESM5-CanOE" "HadGEM3-GC31-LL" "CNRM-CM6-1-HR"
##
## $suggested_gcms$k8
## 1 2 3 4
## "CMCC-ESM2" "CNRM-CM6-1-HR" "FIO-ESM-2-0" "GISS-E2-1-G"
## 5 6 7 8
## "MPI-ESM1-2-HR" "CanESM5-CanOE" "HadGEM3-GC31-LL" "EC-Earth3-Veg"
##
## $suggested_gcms$k9
## 1 2 3 4
## "MRI-ESM2-0" "CNRM-ESM2-1" "MIROC-ES2L" "EC-Earth3-Veg"
## 5 6 7 8
## "HadGEM3-GC31-LL" "MPI-ESM1-2-HR" "CMCC-ESM2" "CanESM5-CanOE"
## 9
## "GISS-E2-1-G"
##
## $suggested_gcms$k10
## 1 2 3 4
## "MRI-ESM2-0" "MPI-ESM1-2-HR" "EC-Earth3-Veg" "CNRM-CM6-1"
## 5 6 7 8
## "CMCC-ESM2" "CanESM5-CanOE" "GISS-E2-1-G" "CNRM-CM6-1-HR"
## 9 10
## "MIROC-ES2L" "HadGEM3-GC31-LL"
##
## $suggested_gcms$k11
## 1 2 3 4
## "CanESM5-CanOE" "MRI-ESM2-0" "HadGEM3-GC31-LL" "MPI-ESM1-2-HR"
## 5 6 7 8
## "CNRM-CM6-1-HR" "MIROC-ES2L" "GISS-E2-1-G" "INM-CM4-8"
## 9 10 11
## "CNRM-CM6-1" "CMCC-ESM2" "EC-Earth3-Veg"
##
## $suggested_gcms$k12
## 1 2 3 4
## "GISS-E2-1-G" "MRI-ESM2-0" "CNRM-CM6-1-HR" "IPSL-CM6A-LR"
## 5 6 7 8
## "HadGEM3-GC31-LL" "INM-CM4-8" "CanESM5-CanOE" "EC-Earth3-Veg"
## 9 10 11 12
## "MIROC-ES2L" "MPI-ESM1-2-HR" "CNRM-CM6-1" "CMCC-ESM2"
##
## $suggested_gcms$k13
## 1 2 3 4
## "FIO-ESM-2-0" "CMCC-ESM2" "MIROC-ES2L" "MPI-ESM1-2-HR"
## 5 6 7 8
## "IPSL-CM6A-LR" "INM-CM4-8" "GISS-E2-1-G" "ACCESS-CM2"
## 9 10 11 12
## "EC-Earth3-Veg" "CanESM5-CanOE" "CNRM-CM6-1" "HadGEM3-GC31-LL"
## 13
## "CNRM-CM6-1-HR"
##
## $suggested_gcms$k14
## 1 2 3 4
## "CanESM5-CanOE" "HadGEM3-GC31-LL" "GISS-E2-1-G" "EC-Earth3-Veg"
## 5 6 7 8
## "CNRM-CM6-1" "MIROC-ES2L" "CMCC-ESM2" "CNRM-CM6-1-HR"
## 9 10 11 12
## "ACCESS-CM2" "FIO-ESM-2-0" "INM-CM4-8" "MPI-ESM1-2-HR"
## 13 14
## "INM-CM5-0" "IPSL-CM6A-LR"
##
## $suggested_gcms$k15
## 1 2 3 4
## "GISS-E2-1-G" "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg"
## 5 6 7 8
## "MPI-ESM1-2-HR" "HadGEM3-GC31-LL" "FIO-ESM-2-0" "CNRM-CM6-1"
## 9 10 11 12
## "IPSL-CM6A-LR" "MIROC-ES2L" "ACCESS-CM2" "INM-CM5-0"
## 13 14 15
## "CanESM5-CanOE" "CMCC-ESM2" "GISS-E2-1-H"
##
## $suggested_gcms$k16
## 1 2 3 4
## "IPSL-CM6A-LR" "MPI-ESM1-2-HR" "GISS-E2-1-H" "FIO-ESM-2-0"
## 5 6 7 8
## "INM-CM5-0" "CMCC-ESM2" "MPI-ESM1-2-LR" "GISS-E2-1-G"
## 9 10 11 12
## "HadGEM3-GC31-LL" "EC-Earth3-Veg" "ACCESS-CM2" "CanESM5-CanOE"
## 13 14 15 16
## "MIROC-ES2L" "CNRM-CM6-1-HR" "INM-CM4-8" "CNRM-CM6-1"
##
## $suggested_gcms$k17
## 1 2 3 4
## "CMCC-ESM2" "CanESM5-CanOE" "MIROC-ES2L" "CNRM-CM6-1-HR"
## 5 6 7 8
## "MPI-ESM1-2-HR" "HadGEM3-GC31-LL" "GISS-E2-1-H" "FIO-ESM-2-0"
## 9 10 11 12
## "MPI-ESM1-2-LR" "CNRM-CM6-1" "GISS-E2-1-G" "INM-CM4-8"
## 13 14 15 16
## "EC-Earth3-Veg" "INM-CM5-0" "IPSL-CM6A-LR" "ACCESS-ESM1-5"
## 17
## "ACCESS-CM2"
##
## $suggested_gcms$k18
## 1 2 3 4
## "FIO-ESM-2-0" "ACCESS-ESM1-5" "HadGEM3-GC31-LL" "CMCC-ESM2"
## 5 6 7 8
## "GISS-E2-1-H" "MPI-ESM1-2-LR" "ACCESS-CM2" "MPI-ESM1-2-HR"
## 9 10 11 12
## "CanESM5-CanOE" "MRI-ESM2-0" "CNRM-CM6-1-HR" "INM-CM4-8"
## 13 14 15 16
## "INM-CM5-0" "CNRM-CM6-1" "MIROC-ES2L" "EC-Earth3-Veg"
## 17 18
## "GISS-E2-1-G" "IPSL-CM6A-LR"
##
## $suggested_gcms$k19
## 1 2 3 4
## "INM-CM5-0" "ACCESS-CM2" "CNRM-CM6-1-HR" "GISS-E2-1-G"
## 5 6 7 8
## "ACCESS-ESM1-5" "HadGEM3-GC31-LL" "MIROC-ES2L" "MPI-ESM1-2-HR"
## 9 10 11 12
## "MPI-ESM1-2-LR" "EC-Earth3-Veg" "FIO-ESM-2-0" "MRI-ESM2-0"
## 13 14 15 16
## "CNRM-CM6-1" "CanESM5-CanOE" "CMCC-ESM2" "GISS-E2-1-H"
## 17 18 19
## "MIROC6" "INM-CM4-8" "IPSL-CM6A-LR"
##
## $suggested_gcms$k20
## 1 2 3 4
## "MPI-ESM1-2-LR" "CNRM-CM6-1-HR" "IPSL-CM6A-LR" "CNRM-CM6-1"
## 5 6 7 8
## "HadGEM3-GC31-LL" "GISS-E2-1-G" "MRI-ESM2-0" "EC-Earth3-Veg"
## 9 10 11 12
## "CanESM5-CanOE" "CNRM-ESM2-1" "ACCESS-CM2" "CMCC-ESM2"
## 13 14 15 16
## "INM-CM4-8" "GISS-E2-1-H" "MPI-ESM1-2-HR" "MIROC6"
## 17 18 19 20
## "FIO-ESM-2-0" "INM-CM5-0" "MIROC-ES2L" "ACCESS-ESM1-5"
##
## $suggested_gcms$k21
## 1 2 3 4
## "MPI-ESM1-2-LR" "EC-Earth3-Veg" "FIO-ESM-2-0" "MIROC-ES2L"
## 5 6 7 8
## "IPSL-CM6A-LR" "MPI-ESM1-2-HR" "MRI-ESM2-0" "UKESM1-0-LL"
## 9 10 11 12
## "CanESM5-CanOE" "INM-CM5-0" "ACCESS-ESM1-5" "GISS-E2-1-H"
## 13 14 15 16
## "MIROC6" "CNRM-CM6-1-HR" "CNRM-ESM2-1" "CMCC-ESM2"
## 17 18 19 20
## "INM-CM4-8" "CNRM-CM6-1" "ACCESS-CM2" "HadGEM3-GC31-LL"
## 21
## "GISS-E2-1-G"
kmeans_all <- mc_kmeans_all$suggested_gcms$k5
tictoc::toc()
## K-means Clustering All Variables: 39.324 sec elapsed
Closestdist selection
tictoc::tic("Closestdist Main Variables")
mc_closestdist_main <- closestdist_gcms(s10,
var_names = c("bio1", "bio12"),
study_area = study_area,
method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_main
## $suggested_gcms
## [1] "CNRM-CM6-1" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MIROC-ES2L"
## [5] "MIROC6" "INM-CM5-0"
##
## $best_mean_diff
## [1] 0.0008346833
##
## $global_mean
## [1] 38.9711
closestdist_main <- mc_closestdist_main$suggested_gcms
tictoc::toc()
## Closestdist Main Variables: 2.326 sec elapsed
tictoc::tic("Closestdist Temperature Variables")
mc_closestdist_temp <- closestdist_gcms(s10,
var_names = c("bio1", "bio2", "bio3", "bio4", "bio5", "bio6", "bio7", "bio8", "bio9", "bio10", "bio11"),
study_area = study_area,
method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_temp
## $suggested_gcms
## [1] "CMCC-ESM2" "EC-Earth3-Veg-LR" "HadGEM3-GC31-LL" "CNRM-CM6-1-HR"
## [5] "INM-CM4-8"
##
## $best_mean_diff
## [1] 0.001303225
##
## $global_mean
## [1] 118.7889
closestdist_temp <- mc_closestdist_temp$suggested_gcms
tictoc::toc()
## Closestdist Temperature Variables: 3.732 sec elapsed
tictoc::tic("Closestdist Precipitation Variables")
mc_closestdist_prec <- closestdist_gcms(s10,
var_names = c("bio12", "bio13", "bio14", "bio15", "bio16", "bio17", "bio18", "bio19"),
study_area = study_area,
method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_prec
## $suggested_gcms
## [1] "CNRM-CM6-1" "GISS-E2-1-G" "MRI-ESM2-0" "UKESM1-0-LL" "GISS-E2-1-H"
##
## $best_mean_diff
## [1] 0.0009509144
##
## $global_mean
## [1] 115.8417
closestdist_prec <- mc_closestdist_prec$suggested_gcms
tictoc::toc()
## Closestdist Precipitation Variables: 2.939 sec elapsed
tictoc::tic("Closestdist All Variables")
mc_closestdist_all <- closestdist_gcms(s10,
var_names = "all",
study_area = study_area,
method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_all
## $suggested_gcms
## [1] "EC-Earth3-Veg" "MIROC6" "UKESM1-0-LL"
##
## $best_mean_diff
## [1] 0.003716754
##
## $global_mean
## [1] 166.5351
closestdist_all <- mc_closestdist_all$suggested_gcms
tictoc::toc()
## Closestdist All Variables: 4.7 sec elapsed
Closestdist selection with fixed k
tictoc::tic("Closestdist3 Main Variables")
mc_closestdist3_main <- closestdist_gcms(s10,
var_names = c("bio1", "bio12"),
study_area = study_area,
method = "euclidean",
k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_main
## $suggested_gcms
## [1] "ACCESS-ESM1-5" "CNRM-CM6-1" "FIO-ESM-2-0"
##
## $best_mean_diff
## [1] 0.003674818
##
## $global_mean
## [1] 38.9711
closestdist3_main <- mc_closestdist3_main$suggested_gcms
tictoc::toc()
## Closestdist3 Main Variables: 2.203 sec elapsed
tictoc::tic("Closestdist3 Temperature Variables")
mc_closestdist3_temp <- closestdist_gcms(s10,
var_names = c("bio1", "bio2", "bio3", "bio4", "bio5", "bio6", "bio7", "bio8", "bio9", "bio10", "bio11"),
study_area = study_area,
method = "euclidean",
k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_temp
## $suggested_gcms
## [1] "CNRM-CM6-1-HR" "GISS-E2-1-H" "HadGEM3-GC31-LL"
##
## $best_mean_diff
## [1] 0.006257591
##
## $global_mean
## [1] 118.7889
closestdist3_temp <- mc_closestdist3_temp$suggested_gcms
tictoc::toc()
## Closestdist3 Temperature Variables: 3.07 sec elapsed
tictoc::tic("Closestdist3 Precipitation Variables")
mc_closestdist3_prec <- closestdist_gcms(s10,
var_names = c("bio12", "bio13", "bio14", "bio15", "bio16", "bio17", "bio18", "bio19"),
study_area = study_area,
method = "euclidean",
k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_prec
## $suggested_gcms
## [1] "EC-Earth3-Veg-LR" "INM-CM5-0" "IPSL-CM6A-LR"
##
## $best_mean_diff
## [1] 0.002350225
##
## $global_mean
## [1] 115.8417
closestdist3_prec <- mc_closestdist3_prec$suggested_gcms
tictoc::toc()
## Closestdist3 Precipitation Variables: 3.334 sec elapsed
tictoc::tic("Closestdist3 All Variables")
mc_closestdist3_all <- closestdist_gcms(s10,
var_names = "all",
study_area = study_area,
method = "euclidean",
k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_all
## $suggested_gcms
## [1] "EC-Earth3-Veg" "MIROC6" "UKESM1-0-LL"
##
## $best_mean_diff
## [1] 0.003716754
##
## $global_mean
## [1] 166.5351
closestdist3_all <- mc_closestdist3_all$suggested_gcms
tictoc::toc()
## Closestdist3 All Variables: 3.936 sec elapsed
Results
As we expected, the change in variables affected the outputs in every algorithm implemented. It is possible to see that in the following chunks it was rare a GCM to be selected more than 2 times in the same algorithm.
table(c(hclust_main, hclust_temp, hclust_prec, hclust_all))
##
## ACCESS-CM2 ACCESS-ESM1-5 CanESM5-CanOE CMCC-ESM2
## 1 1 3 3
## CNRM-CM6-1 EC-Earth3-Veg-LR FIO-ESM-2-0 GISS-E2-1-G
## 2 3 2 1
## GISS-E2-1-H MPI-ESM1-2-HR MRI-ESM2-0
## 2 1 1
table(c(kmeans_main, kmeans_temp, kmeans_prec, kmeans_all))
##
## CanESM5-CanOE CNRM-CM6-1 CNRM-ESM2-1 EC-Earth3-Veg
## 4 1 3 2
## EC-Earth3-Veg-LR GISS-E2-1-G MIROC6 MPI-ESM1-2-HR
## 1 3 1 1
## MRI-ESM2-0 UKESM1-0-LL
## 1 3
table(c(closestdist_main, closestdist_temp, closestdist_prec, closestdist_all))
##
## CMCC-ESM2 CNRM-CM6-1 CNRM-CM6-1-HR EC-Earth3-Veg
## 1 2 1 1
## EC-Earth3-Veg-LR GISS-E2-1-G GISS-E2-1-H HadGEM3-GC31-LL
## 1 1 1 1
## INM-CM4-8 INM-CM5-0 MIROC-ES2L MIROC6
## 1 1 1 2
## MPI-ESM1-2-HR MPI-ESM1-2-LR MRI-ESM2-0 UKESM1-0-LL
## 1 1 1 2
table(c(closestdist3_main, closestdist3_temp, closestdist3_prec, closestdist3_all))
##
## ACCESS-ESM1-5 CNRM-CM6-1 CNRM-CM6-1-HR EC-Earth3-Veg
## 1 1 1 1
## EC-Earth3-Veg-LR FIO-ESM-2-0 GISS-E2-1-H HadGEM3-GC31-LL
## 1 1 1 1
## INM-CM5-0 IPSL-CM6A-LR MIROC6 UKESM1-0-LL
## 1 1 1 1