From 9f7c6efbd2e755a09567cd74a0b6bd39fdbe443b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=B6nig?= <ye87zine@usr.idiv.de> Date: Thu, 20 Mar 2025 15:41:30 +0100 Subject: [PATCH] started cleaning up and reorganizing repo --- .gitignore | 2 +- ...reparation.R => 01_01_range_preparation.R} | 2 +- R/01_02_raster_preparation.R | 36 - ...eparation.R => 01_02_traits_preparation.R} | 52 +- ...reparation.R => 01_03_phylo_preparation.R} | 10 +- R/01_04_raster_preparation.R | 20 + R/02_01_functional_group_assignment.R | 34 - ...on.R => 02_01_presence_data_preparation.R} | 0 ...ion.R => 02_02_absence_data_preparation.R} | 0 R/03_03_dataset_exploration.R | 53 -- R/03_03_model_data_finalization.R | 46 +- R/03_04_dataset_exploration.R | 95 +++ R/04_01_modelling_ssdm.R | 10 +- R/04_04_modelling_msdm_rf.R | 2 +- R/05_01_performance_report.qmd | 47 +- R/05_01_performance_report_rf.qmd | 692 ------------------ R/05_02_publication_analysis.R | 4 +- R/_publish.yml | 2 - README.md | 63 +- occurrences.png | Bin 98073 -> 0 bytes 20 files changed, 274 insertions(+), 896 deletions(-) rename R/{01_01_range_map_preparation.R => 01_01_range_preparation.R} (99%) delete mode 100644 R/01_02_raster_preparation.R rename R/{02_02_functional_traits_preparation.R => 01_02_traits_preparation.R} (64%) rename R/{02_03_phylo_preparation.R => 01_03_phylo_preparation.R} (84%) create mode 100644 R/01_04_raster_preparation.R delete mode 100644 R/02_01_functional_group_assignment.R rename R/{03_01_presence_preparation.R => 02_01_presence_data_preparation.R} (100%) rename R/{03_02_absence_preparation.R => 02_02_absence_data_preparation.R} (100%) delete mode 100644 R/03_03_dataset_exploration.R create mode 100644 R/03_04_dataset_exploration.R delete mode 100644 R/05_01_performance_report_rf.qmd delete mode 100644 occurrences.png diff --git a/.gitignore b/.gitignore index 3acf079..4d2ad7c 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,4 @@ renv/cache/ data/ plots/ R/*/ -R/*.html \ No newline at end of file +*.html \ No newline at end of file diff --git a/R/01_01_range_map_preparation.R b/R/01_01_range_preparation.R similarity index 99% rename from R/01_01_range_map_preparation.R rename to R/01_01_range_preparation.R index eb33fdc..4f6a412 100644 --- a/R/01_01_range_map_preparation.R +++ b/R/01_01_range_preparation.R @@ -9,7 +9,7 @@ sf::sf_use_s2(use_s2 = FALSE) # --------------------------------------# # Process range maps #### # --------------------------------------# -# Load range maps +# Load IUCN range maps range_maps = st_read( "~/share/groups/mas_data/Saved_Data_Dropbox_Business/Datensätze/Range Maps/IUCN_range_maps_mammals_version2016/TERRESTRIAL_MAMMALS.shp", geometry_column = "geometry", diff --git a/R/01_02_raster_preparation.R b/R/01_02_raster_preparation.R deleted file mode 100644 index e7876e9..0000000 --- a/R/01_02_raster_preparation.R +++ /dev/null @@ -1,36 +0,0 @@ -library(tidyverse) -library(terra) -library(rnaturalearth) -library(furrr) - -# Define Study extent #### -sa_polygon = rnaturalearth::ne_countries(scale = 10, returnclass = "sf") %>% - dplyr::filter(continent == "South America") %>% - sf::st_union() %>% - st_crop(xmin = -82, ymin = -56, xmax = -34, ymax = 13) - -save(sa_polygon, file = "data/r_objects/sa_polygon.RData") - -# CHELSA bioclim target variables #### -chelsa_urls = paste0("https://os.zhdk.cloud.switch.ch/chelsav2/GLOBAL/climatologies/1981-2010/bio/CHELSA_bio", 1:19,"_1981-2010_V.2.1.tif") - -chelsa = terra::rast(chelsa_urls) %>% - crop(sa_polygon) -set.names(chelsa, paste0("bio", 1:19)) -terra::writeRaster(chelsa, filename = file.path("data", "geospatial", "raster", basename(chelsa_urls)), overwrite = T) - -# Tree canopy cover #### -igfc = list.files("I:/mas_data/00_data/processed/iGFC/", pattern = "canopyDensity_(199[0-9]|200[0-9]|2010)", full.names = TRUE) %>% - terra::rast() %>% - terra::resample(chelsa) %>% - app(mean, na.rm = TRUE) -terra::set.names(igfc, "igfc") -terra::writeRaster(igfc, filename = file.path("data", "geospatial", "raster", "mean_canopyDensity_1992-2010.tif"), overwrite = T) - -# Terrain #### -roughness = list.files("C:/Users/ye87zine/Downloads", pattern = "roughness", full.names = T) %>% - terra::rast() %>% - crop(study_extent) %>% - terra::resample(chelsa) -terra::set.names(roughness, "roughness") -terra::writeRaster(roughness, filename = file.path("data", "geospatial", "raster", "terrain_roughness.tif"), overwrite = T) diff --git a/R/02_02_functional_traits_preparation.R b/R/01_02_traits_preparation.R similarity index 64% rename from R/02_02_functional_traits_preparation.R rename to R/01_02_traits_preparation.R index dfec715..0e48083 100644 --- a/R/02_02_functional_traits_preparation.R +++ b/R/01_02_traits_preparation.R @@ -1,6 +1,49 @@ library("tidyverse") library("traitdata") +library("Symobio") +library("vegan") + +load("data/r_objects/range_maps.RData") + +# -------------------------------------------# +# Assign functional groups #### +# -------------------------------------------# +# Get taxonomic information for target species +names_unique = unique(range_maps$name_matched[!is.na(range_maps$name_matched)]) + +species_matched = lapply(names_unique, function(name){ + match_result = Symobio::gbif_match_name(name = name) + if(match_result$status != "ACCEPTED"){ # Search for accepted name + match_result = gbif_match_name(usageKey = match_result$acceptedUsageKey) + } + match_result$name_orig = name + return(match_result) +}) %>% + bind_rows() + +# Assign functional groups +functional_groups = species_matched %>% + mutate( + functional_group = case_when( + order %in% c("Carnivora", "Artiodactyla", "Cingulata", "Perissodactyla") ~ 1, + order %in% c("Rodentia", "Didelphimorphia", "Soricomorpha", "Paucituberculata", "Lagomorpha") ~ 2, + order %in% c("Primates", "Pilosa") ~ 3, + order %in% c("Chiroptera") ~ 4 + ), + functional_group = factor(functional_group, labels = c("large ground-dwelling", "small ground-dwelling", "arboreal", "flying")) + ) %>% + dplyr::select( + name_orig, + name_matched = species, + functional_group + ) %>% + distinct() +save(functional_groups, file = "data/r_objects/functional_groups.RData") + +# ---------------------------------------------------# +# Process and merge functional traits #### +# ---------------------------------------------------# # Match names traits = traitdata::elton_mammals names_unique = unique(traits$scientificNameStd) @@ -69,12 +112,9 @@ traits_proc = traits_matched %>% save(traits_proc, file = "data/r_objects/traits_proc.RData") -# Calculate Distances -library("vegan") - -load("data/r_objects/range_maps.RData") -load("data/r_objects/traits_proc.RData") - +# ---------------------------------------------------# +# Calculate functional dissimilarity #### +# ---------------------------------------------------# target_species = unique(range_maps$name_matched[!is.na(range_maps$name_matched)]) traits_target = dplyr::filter(traits_proc, species %in% target_species) diff --git a/R/02_03_phylo_preparation.R b/R/01_03_phylo_preparation.R similarity index 84% rename from R/02_03_phylo_preparation.R rename to R/01_03_phylo_preparation.R index a72c833..4ba9a85 100644 --- a/R/02_03_phylo_preparation.R +++ b/R/01_03_phylo_preparation.R @@ -6,7 +6,9 @@ library(Symobio) forest = read.nexus("data/phylogenies/Complete_phylogeny.nex") load("data/r_objects/range_maps_names_matched.RData") -# Get taxonomic information for target species +# ---------------------------------------------------# +# Match taxonomic names in phylogeny #### +# ---------------------------------------------------# phylo_names_unique = unique(forest$UNTITLED$tip.label) phylo_names_matched = lapply(phylo_names_unique, function(name){ @@ -28,6 +30,10 @@ phylo_names_matched = lapply(phylo_names_unique, function(name){ save(phylo_names_matched, file = "data/r_objects/phylo_names_matched.RData") +# ---------------------------------------------------# +# Calculate phylo distances #### +# ---------------------------------------------------# +# Calculate pairwise phylogenetic distances across a random sample 50 of forests # Trim forest to target species phylo_names_target = dplyr::filter(phylo_names_matched, name_matched %in% range_maps_names_matched$name_matched) @@ -40,8 +46,6 @@ forest_pruned = lapply(forest, function(x) { }) class(forest_pruned) <- "multiPhylo" - -# Calculate pairwise phylogenetic distances across a random sample 50 of forests indices = sample(length(forest_pruned), 50) dists = lapply(indices, function(i){ cophenetic.phylo(forest_pruned[[i]]) diff --git a/R/01_04_raster_preparation.R b/R/01_04_raster_preparation.R new file mode 100644 index 0000000..aa9e210 --- /dev/null +++ b/R/01_04_raster_preparation.R @@ -0,0 +1,20 @@ +library(tidyverse) +library(terra) +library(rnaturalearth) +library(furrr) + +# Define Study extent #### +sa_polygon = rnaturalearth::ne_countries(scale = 10, returnclass = "sf") %>% + dplyr::filter(continent == "South America") %>% + sf::st_union() %>% + st_crop(xmin = -82, ymin = -56, xmax = -34, ymax = 13) + +save(sa_polygon, file = "data/r_objects/sa_polygon.RData") + +# CHELSA bioclim target variables #### +chelsa_urls = paste0("https://os.zhdk.cloud.switch.ch/chelsav2/GLOBAL/climatologies/1981-2010/bio/CHELSA_bio", 1:19,"_1981-2010_V.2.1.tif") + +chelsa = terra::rast(chelsa_urls) %>% + crop(sa_polygon) +set.names(chelsa, paste0("bio", 1:19)) +terra::writeRaster(chelsa, filename = file.path("data", "geospatial", "raster", basename(chelsa_urls)), overwrite = T) \ No newline at end of file diff --git a/R/02_01_functional_group_assignment.R b/R/02_01_functional_group_assignment.R deleted file mode 100644 index ee2a06f..0000000 --- a/R/02_01_functional_group_assignment.R +++ /dev/null @@ -1,34 +0,0 @@ -load("data/r_objects/range_maps.RData") - -# Get taxonomic information for target species -names_unique = unique(range_maps$name_matched[!is.na(range_maps$name_matched)]) - -species_matched = lapply(names_unique, function(name){ - match_result = Symobio::gbif_match_name(name = name) - if(match_result$status != "ACCEPTED"){ - match_result = gbif_match_name(usageKey = match_result$acceptedUsageKey) - } - match_result$name_orig = name - return(match_result) -}) %>% - bind_rows() - -# Assign functional groups -functional_groups = species_matched %>% - mutate( - functional_group = case_when( - order %in% c("Carnivora", "Artiodactyla", "Cingulata", "Perissodactyla") ~ 1, - order %in% c("Rodentia", "Didelphimorphia", "Soricomorpha", "Paucituberculata", "Lagomorpha") ~ 2, - order %in% c("Primates", "Pilosa") ~ 3, - order %in% c("Chiroptera") ~ 4 - ), - functional_group = factor(functional_group, labels = c("large ground-dwelling", "small ground-dwelling", "arboreal", "flying")) - ) %>% - dplyr::select( - name_orig, - name_matched = species, - functional_group - ) %>% - distinct() - -save(functional_groups, file = "data/r_objects/functional_groups.RData") diff --git a/R/03_01_presence_preparation.R b/R/02_01_presence_data_preparation.R similarity index 100% rename from R/03_01_presence_preparation.R rename to R/02_01_presence_data_preparation.R diff --git a/R/03_02_absence_preparation.R b/R/02_02_absence_data_preparation.R similarity index 100% rename from R/03_02_absence_preparation.R rename to R/02_02_absence_data_preparation.R diff --git a/R/03_03_dataset_exploration.R b/R/03_03_dataset_exploration.R deleted file mode 100644 index ad33173..0000000 --- a/R/03_03_dataset_exploration.R +++ /dev/null @@ -1,53 +0,0 @@ -library(tidyverse) -library(sf) -library(terra) - -source("R/utils.R") - -load("data/r_objects/model_data.RData") -load("data/r_objects/sa_polygon.RData") - -sa_polygon = sf::st_transform(sa_polygon, crs(model_data)) - -# ---------------------------------------# -# Plot all presences in the dataset #### -# ---------------------------------------# -data_extent = ext(model_data) - -presences = model_data %>% - dplyr::filter(present == 1) - -template_raster <- terra::rast(data_extent, resolution = 1000) # 1000m = 1km -crs(template_raster) <- st_crs(model_data)$wkt - -point_counts <- terra::rasterize( - vect(presences), - template_raster, - field = NULL, - fun = "count", - background = 0 -) %>% - terra::mask(vect(sa_polygon)) - -length(which(values(point_counts) > 0)) - -# only 36858 raster cells contain at least 1 presence record - -ggplot() + - tidyterra::geom_spatraster(data = point_counts, maxcell = 5e7) + - scale_fill_gradientn( - colors = c("black", "yellow", "darkred"), - values = scales::rescale(c(0, 1, max(point_counts_df$count, na.rm = TRUE))), - breaks = c(0, 1, max(point_counts_df$count, na.rm = TRUE)), - na.value = "transparent" - ) + - geom_sf(data = sa_polygon, fill = NA, color = "gray", size = 0.5) + - theme_minimal() + - coord_sf() + - labs(title = "Coordinate distribution and density") - -ggsave("coordinate_density.pdf", path = "plots/", device = "pdf", scale = 4) - -# ---------------------------------------# -# Plot all presences in the dataset #### -# ---------------------------------------# diff --git a/R/03_03_model_data_finalization.R b/R/03_03_model_data_finalization.R index 8631c4d..e0addfa 100644 --- a/R/03_03_model_data_finalization.R +++ b/R/03_03_model_data_finalization.R @@ -31,49 +31,5 @@ model_data = bind_rows(model_data_core, model_data_background) %>% relocate(contains("fold"), .after = last_col()) %>% mutate(species = as.factor(species)) -# Explore folds assignment -cv_plot(spatial_folds) -ggsave(filename = "plots/publication/global_folds_map.pdf", device = "pdf", scale = 2.5) - -folds_summary = model_data %>% - dplyr::filter(record_type == "core") %>% - sf::st_drop_geometry() %>% - dplyr::group_by(species, fold_global) %>% - dplyr::summarise( - n_occ = length(which(present == 1)), - n_abs = length(which(present == 0)) - ) - -folds_uniform = folds_summary %>% - dplyr::group_by(species, fold_global) %>% - dplyr::summarise( - is_uniform = n_occ == 0 | n_abs == 0 - ) %>% - dplyr::group_by(species) %>% - dplyr::summarise( - folds_total = n(), - folds_uniform = length(which(is_uniform)), - folds_mixed = folds_total - folds_uniform - ) %>% - dplyr::ungroup() - -plot_1 = ggplot(folds_uniform, aes(x=folds_total)) + - geom_histogram(binwidth=0.5, fill = "orange") + - labs(title="Number of folds per species", x="Count", y = "Number of species") + - theme_minimal() -plot_2 = ggplot(folds_uniform, aes(x=folds_uniform)) + - geom_histogram(binwidth=0.5, fill = "violet") + - labs(title="Number of uniform folds per species", x="Count", y = "Number of species", - subtitle="Uniform folds contain only absences or only presences and cannot be used in model evaluation.") + - theme_minimal() -plot_3 = ggplot(folds_uniform, aes(x=folds_mixed)) + - geom_histogram(binwidth=0.5, fill = "blue") + - labs(title="Number of mixed folds per species", x="Count", y = "Number of species", - subtitle="Mixed folds both absences and presences and can be used in model evaluation.") + - theme_minimal() - -plot_combined = grid.arrange(plot_1, plot_2, plot_3, ncol = 1) -ggsave(filename = "plots/publication/global_folds_histogram.pdf", plot_combined, device = "pdf", height = 10, width = 7) - # Save Model data -save(model_data, file = "data/r_objects/model_data.RData") \ No newline at end of file +save(model_data, file = "data/r_objects/model_data.RData") diff --git a/R/03_04_dataset_exploration.R b/R/03_04_dataset_exploration.R new file mode 100644 index 0000000..53a627a --- /dev/null +++ b/R/03_04_dataset_exploration.R @@ -0,0 +1,95 @@ +library(tidyverse) +library(sf) +library(terra) + +source("R/utils.R") + +load("data/r_objects/model_data.RData") +load("data/r_objects/sa_polygon.RData") + +sa_polygon = sf::st_transform(sa_polygon, crs(model_data)) + +# ---------------------------------------# +# Plot all presences in the dataset #### +# ---------------------------------------# +data_extent = ext(model_data) + +presences = model_data %>% + dplyr::filter(present == 1) + +template_raster <- terra::rast(data_extent, resolution = 1000) # 1000m = 1km +crs(template_raster) <- st_crs(model_data)$wkt + +point_counts <- terra::rasterize( + vect(presences), + template_raster, + field = NULL, + fun = "count", + background = 0 +) %>% + terra::mask(vect(sa_polygon)) + +length(which(values(point_counts) > 0)) # only 36858 raster cells contain at least 1 presence record + +ggplot() + + tidyterra::geom_spatraster(data = point_counts, maxcell = 5e7) + + scale_fill_gradientn( + colors = c("black", "yellow", "darkred"), + values = scales::rescale(c(0, 1, max(point_counts_df$count, na.rm = TRUE))), + breaks = c(0, 1, max(point_counts_df$count, na.rm = TRUE)), + na.value = "transparent" + ) + + geom_sf(data = sa_polygon, fill = NA, color = "gray", size = 0.5) + + theme_minimal() + + coord_sf() + + labs(title = "Coordinate distribution and density") + +ggsave("coordinate_density.pdf", path = "plots/", device = "pdf", scale = 4) + +# ---------------------------------------# +# Explore folds assignment #### +# ---------------------------------------# +cv_plot(spatial_folds) +ggsave(filename = "plots/publication/global_folds_map.pdf", device = "pdf", scale = 2.5) + +folds_summary = model_data %>% + dplyr::filter(record_type == "core") %>% + sf::st_drop_geometry() %>% + dplyr::group_by(species, fold_global) %>% + dplyr::summarise( + n_occ = length(which(present == 1)), + n_abs = length(which(present == 0)) + ) + +folds_uniform = folds_summary %>% + dplyr::group_by(species, fold_global) %>% + dplyr::summarise( + is_uniform = n_occ == 0 | n_abs == 0 + ) %>% + dplyr::group_by(species) %>% + dplyr::summarise( + folds_total = n(), + folds_uniform = length(which(is_uniform)), + folds_mixed = folds_total - folds_uniform + ) %>% + dplyr::ungroup() + +plot_1 = ggplot(folds_uniform, aes(x=folds_total)) + + geom_histogram(binwidth=0.5, fill = "orange") + + labs(title="Number of folds per species", x="Count", y = "Number of species") + + theme_minimal() +plot_2 = ggplot(folds_uniform, aes(x=folds_uniform)) + + geom_histogram(binwidth=0.5, fill = "violet") + + labs(title="Number of uniform folds per species", x="Count", y = "Number of species", + subtitle="Uniform folds contain only absences or only presences and cannot be used in model evaluation.") + + theme_minimal() +plot_3 = ggplot(folds_uniform, aes(x=folds_mixed)) + + geom_histogram(binwidth=0.5, fill = "blue") + + labs(title="Number of mixed folds per species", x="Count", y = "Number of species", + subtitle="Mixed folds both absences and presences and can be used in model evaluation.") + + theme_minimal() + +plot_combined = grid.arrange(plot_1, plot_2, plot_3, ncol = 1) +ggsave(filename = "plots/publication/global_folds_histogram.pdf", plot_combined, device = "pdf", height = 10, width = 7) + + diff --git a/R/04_01_modelling_ssdm.R b/R/04_01_modelling_ssdm.R index 77c25ec..a62cd3e 100644 --- a/R/04_01_modelling_ssdm.R +++ b/R/04_01_modelling_ssdm.R @@ -193,7 +193,7 @@ data_split = model_data %>% for(pa_spec in data_split){ ## Preparations #### species = pa_spec$species[1] - print(species) + print(as.character(species)) # Create inner CV folds for model training cv_train = blockCV::cv_spatial( @@ -231,7 +231,7 @@ for(pa_spec in data_split){ method = "ranger", trControl = train_ctrl, tuneLength = 8, - weights = data_train$weight, + weights = pa_spec$weight, verbose = F ) save(rf_fit, file = paste0("data/r_objects/ssdm_results/full_models/", species, "_rf_fit.RData")) @@ -246,7 +246,7 @@ for(pa_spec in data_split){ method = "gbm", trControl = train_ctrl, tuneLength = 8, - weights = data_train$weight, + weights = pa_spec$weight, verbose = F ) save(gbm_fit, file = paste0("data/r_objects/ssdm_results/full_models/", species, "_gbm_fit.RData")) @@ -259,7 +259,7 @@ for(pa_spec in data_split){ y = pa_spec$present_fct, method = "gamSpline", tuneLength = 8, - weights = data_train$weight, + weights = pa_spec$weight, trControl = train_ctrl ) save(gam_fit, file = paste0("data/r_objects/ssdm_results/full_models/", species, "_gam_fit.RData")) @@ -277,7 +277,7 @@ for(pa_spec in data_split){ burnin = 200L, early_stopping = 25, lr = 0.001, - batchsize = min(ceiling(nrow(data_train)/10), 64), + batchsize = min(ceiling(nrow(pa_spec)/10), 64), dropout = 0.25, optimizer = config_optimizer("adam"), validation = 0.2, diff --git a/R/04_04_modelling_msdm_rf.R b/R/04_04_modelling_msdm_rf.R index 4544b73..1e03f70 100644 --- a/R/04_04_modelling_msdm_rf.R +++ b/R/04_04_modelling_msdm_rf.R @@ -67,7 +67,7 @@ rf_fit = caret::train( metric = "Accuracy", trControl = train_ctrl, tuneLength = 8, - weights = full_data$weight, + weights = model_data$weight, num.threads = 48 ) diff --git a/R/05_01_performance_report.qmd b/R/05_01_performance_report.qmd index 8fb626b..38096cb 100644 --- a/R/05_01_performance_report.qmd +++ b/R/05_01_performance_report.qmd @@ -12,9 +12,9 @@ library(plotly) library(DT) load("../data/r_objects/model_data.RData") -#load("../data/r_objects/ssdm_performance.RData") +load("../data/r_objects/ssdm_performance.RData") load("../data/r_objects/msdm_embed_performance.RData") -#load("../data/r_objects/msdm_onehot_performance.RData") +load("../data/r_objects/msdm_onehot_performance.RData") load("../data/r_objects/msdm_rf_performance.RData") load("../data/r_objects/range_maps.RData") @@ -55,11 +55,32 @@ loess_fit = function(x, y, span = 0.75){ ) } +# Determine valid folds for evaluation +# A fold is valid if there are at least n presences in the training and validation data +obs_fold = model_data %>% + sf::st_drop_geometry() %>% + dplyr::filter(record_type == "core", present == 1) %>% + dplyr::group_by(species, fold_global) %>% + dplyr::summarise(obs_fold = n()) + +obs_total = model_data %>% + sf::st_drop_geometry() %>% + dplyr::filter(record_type == "core", present == 1) %>% + dplyr::group_by(species) %>% + dplyr::summarise(obs_total = n()) + +folds_valid = obs_fold %>% + dplyr::left_join(obs_total) %>% + dplyr::mutate(obs_train = obs_total-obs_fold) %>% + dplyr::filter(obs_train > 5 & obs_fold > 5) %>% + dplyr::select(species, fold_global) + # Performance table -performance = msdm_embed_performance %>% - #bind_rows(msdm_embed_performance) %>% - #bind_rows(msdm_onehot_performance) %>% +performance = ssdm_performance %>% + bind_rows(msdm_embed_performance) %>% + bind_rows(msdm_onehot_performance) %>% bind_rows(msdm_rf_performance) %>% + semi_join(folds_valid, by = c("species", "fold_global")) %>% dplyr::group_by(species, model, metric) %>% dplyr::summarise(value = mean(value, na.rm = T)) %>% dplyr::mutate( @@ -199,7 +220,7 @@ df_join = model_data %>% dplyr::summarise(n_obs = n()) performance = performance %>% - dplyr::left_join(df_join, by = "species") + dplyr::inner_join(df_join, by = "species") # Range size df_join = range_maps %>% @@ -377,7 +398,7 @@ Range size was calculated based on polygon layers from the IUCN Red List of Thre ```{r echo = FALSE} df_plot = dplyr::filter(performance, metric == "auc") -plot = plot_performance(df_plot, y_var = "value", y_label = "AUC", x_var = "range_size", x_label = "Range size [km]") +plot = plot_performance(df_plot, y_var = "value", y_label = "AUC", x_var = "range_size", x_label = "Range size [km²]") bslib::card(plot, full_screen = T) ``` @@ -385,7 +406,7 @@ bslib::card(plot, full_screen = T) ```{r echo = FALSE} df_plot = dplyr::filter(performance, metric == "f1") -plot = plot_performance(df_plot, y_var = "value", y_label = "F1", x_var = "range_size", x_label = "Range size [km]") +plot = plot_performance(df_plot, y_var = "value", y_label = "F1", x_var = "range_size", x_label = "Range size [km²]") bslib::card(plot, full_screen = T) ``` @@ -393,7 +414,7 @@ bslib::card(plot, full_screen = T) ```{r echo = FALSE} df_plot = dplyr::filter(performance, metric == "kappa") -plot = plot_performance(df_plot, y_var = "value", y_label = "Kappa", x_var = "range_size", x_label = "Range size [km]") +plot = plot_performance(df_plot, y_var = "value", y_label = "Kappa", x_var = "range_size", x_label = "Range size [km²]") bslib::card(plot, full_screen = T) ``` @@ -401,7 +422,7 @@ bslib::card(plot, full_screen = T) ```{r echo = FALSE} df_plot = dplyr::filter(performance, metric == "accuracy") -plot = plot_performance(df_plot, y_var = "value", y_label = "Accuracy", x_var = "range_size", x_label = "Range size [km]") +plot = plot_performance(df_plot, y_var = "value", y_label = "Accuracy", x_var = "range_size", x_label = "Range size [km²]") bslib::card(plot, full_screen = T) ``` @@ -409,7 +430,7 @@ bslib::card(plot, full_screen = T) ```{r echo = FALSE} df_plot = dplyr::filter(performance, metric == "precision") -plot = plot_performance(df_plot, y_var = "value", y_label = "Precision", x_var = "range_size", x_label = "Range size [km]") +plot = plot_performance(df_plot, y_var = "value", y_label = "Precision", x_var = "range_size", x_label = "Range size [km²]") bslib::card(plot, full_screen = T) ``` @@ -417,7 +438,7 @@ bslib::card(plot, full_screen = T) ```{r echo = FALSE} df_plot = dplyr::filter(performance, metric == "recall") -plot = plot_performance(df_plot, y_var = "value", y_label = "Recall", x_var = "range_size", x_label = "Range size [km]") +plot = plot_performance(df_plot, y_var = "value", y_label = "Recall", x_var = "range_size", x_label = "Range size [km²]") bslib::card(plot, full_screen = T) ``` ::: @@ -430,7 +451,7 @@ bslib::card(plot, full_screen = T) ```{r echo = FALSE} df_plot = dplyr::filter(performance, metric == "auc") %>% add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "AUC (partial residual)", x_var = "range_size", x_label = "Range size [km]") +plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "AUC (partial residual)", x_var = "range_size", x_label = "Range size [km²]") bslib::card(plot, full_screen = T) ``` diff --git a/R/05_01_performance_report_rf.qmd b/R/05_01_performance_report_rf.qmd deleted file mode 100644 index 534a5f8..0000000 --- a/R/05_01_performance_report_rf.qmd +++ /dev/null @@ -1,692 +0,0 @@ ---- -title: "SDM Performance report" -format: html -editor: visual -engine: knitr ---- - -```{r init, echo = FALSE, include = FALSE} -library(tidyverse) -library(sf) -library(plotly) -library(DT) - -load("../data/r_objects/model_data.RData") -load("../data/r_objects/range_maps.RData") -load("../data/r_objects/range_maps_gridded.RData") -load("../data/r_objects/occs_final.RData") -load("../data/r_objects/functional_groups.RData") - -sf::sf_use_s2(use_s2 = FALSE) - -# Load performance of different RF versions -load("../data/r_objects/deprecated/msdm_rf_no_species_random_abs_performance.RData") -load("../data/r_objects/deprecated/msdm_rf_no_species_performance.RData") -load("../data/r_objects/msdm_rf_performance.RData") - -msdm_rf_no_species_performance$model = "rf_noSpec_oldVars_informedAbs" -msdm_rf_no_species_performance$metric = tolower(msdm_rf_no_species_performance$metric) -msdm_rf_no_species_random_abs_performance$model = "rf_noSpec_oldVars_randomAbs" -msdm_rf_no_species_random_abs_performance$metric = tolower(msdm_rf_no_species_random_abs_performance$metric) -msdm_rf_performance$model = "rf_noSpec_newVars_randomAbs" -``` - -```{r globals, echo = FALSE, cache = TRUE, include = FALSE} -# Regression functions -asym_fit = function(x, y){ - nls_fit = nls(y ~ 1 - (1-b) * exp(-c * log(x)), start = list(b = 0.1, c = 0.1)) - new_x = exp(seq(log(min(x)), log(max(x)), length.out = 100)) - data.frame( - x = new_x, - fit = predict(nls_fit, newdata = data.frame(x = new_x)) - ) -} - -glm_fit = function(x, y, family = "binomial"){ - glm_fit = suppressWarnings(glm(y~x, family = family)) - new_x = seq(min(x), max(x), length.out = 100) - data.frame( - x = new_x, - fit = predict(glm_fit, newdata = data.frame(x = new_x), type = "response") - ) -} - -loess_fit = function(x, y, span = 0.75){ - df = data.frame(x = x, y = y) - loess_fit = loess(y ~ x, data = df, span = span) - new_x = seq(min(x), max(x), length.out = 100) - data.frame( - x = new_x, - fit = predict(loess_fit, newdata = data.frame(x = new_x)) - ) -} - -# Performance table -performance = msdm_rf_performance %>% - bind_rows(msdm_rf_no_species_performance) %>% - bind_rows(msdm_rf_no_species_random_abs_performance) %>% - dplyr::group_by(species, model, metric) %>% - dplyr::summarise(value = mean(value, na.rm = F)) %>% - dplyr::mutate( - value = case_when( - ((is.na(value) | is.nan(value)) & metric %in% c("auc", "f1", "accuracy", "precision", "recall")) ~ 0.5, - ((is.na(value) | is.nan(value)) & metric %in% c("kappa")) ~ 0, - .default = value - ) - ) %>% - ungroup() - -plot_performance = function(df_plot, y_var, y_label, x_var, x_label, x_log = T, reg_func = loess_fit) { - df_plot = df_plot %>% - dplyr::rename( - x_var = !!x_var, - y_var = !!y_var - ) - - # Calculate regression lines for each model and metric combination - suppressWarnings({ - regression_lines = df_plot %>% - group_by(model) %>% - group_modify( ~ reg_func(.x[["x_var"]], .x[["y_var"]])) - }) - - # Create base plot - plot <- plot_ly() %>% - layout( - title = paste0("Model Performance vs. ", x_label), - xaxis = list(title = x_label, type = ifelse(x_log, "log", "linear")), - yaxis = list(title = y_label), - legend = list(x = 1.1, y = 0.5), # Move legend to the right of the plot - margin = list(r = 150), # Add right margin to accommodate legend - hovermode = 'closest' - ) - - # Points - for (model_name in unique(df_plot$model)) { - plot = plot %>% - add_markers( - data = filter(df_plot, model == model_name), - x = ~ x_var, - y = ~ y_var, - color = model_name, # Set color to match legendgroup - legendgroup = model_name, - opacity = 0.6, - name = ~ model, - hoverinfo = 'text', - text = ~ paste( - "Species:", species, "<br>", x_label, ":", x_var, "<br>Value:", round(y_var, 3) - ) - ) - } - - # Add regression lines - for (model_name in unique(df_plot$model)) { - reg_data = dplyr::filter(regression_lines, model == model_name) - plot = plot %>% - add_lines( - data = reg_data, - x = ~ x, - y = ~ fit, - color = model_name, # Set color to match legendgroup - legendgroup = model_name, - name = paste(model_name, '(fit)'), - showlegend = FALSE - ) - } - - return(plot) -} - -add_partial_residuals = function(df, focus_var, control_vars, family = quasibinomial) { - model_formula <- as.formula(paste("value ~", paste(c(focus_var, control_vars), collapse = " + "))) - model = glm(model_formula, data = df, family = family) - - if (focus_var %in% names(model$coefficients)) { - df[[paste0(focus_var, "_partial")]] = residuals(model, type = "response") + model$coefficients[focus_var] * df[[focus_var]] - } - - return(df) -} - -``` - -## Summary - -This document contrasts the performance of different variations of random forest models. - -## Analysis - -### Quantify drivers of model performance - -```{r prepare_model_df, echo = FALSE, include = FALSE} -# Number of records -df_join = model_data %>% - sf::st_drop_geometry() %>% - dplyr::filter(present == 1) %>% - dplyr::group_by(species) %>% - dplyr::summarise(n_obs = n()) - -performance = performance %>% - dplyr::left_join(df_join, by = "species") - -# Range size -df_join = range_maps %>% - sf::st_transform("+proj=tcea +lon_0=-58.0704167 +datum=WGS84 +units=m +no_defs") %>% - dplyr::mutate(range_size = as.numeric(sf::st_area(range_maps) / 1000000)) %>% # range in sqkm - sf::st_drop_geometry() - -performance = performance %>% - inner_join(df_join, by = c("species" = "name_matched")) - -# Range coverage -range_maps_gridded = range_maps_gridded %>% - sf::st_transform("+proj=tcea +lon_0=-58.0704167 +datum=WGS84 +units=m +no_defs") - -df_cells_total = range_maps_gridded %>% - dplyr::rename("species" = name_matched) %>% - group_by(species) %>% - summarise(cells_total = n()) %>% - st_drop_geometry() - -df_cells_occ = range_maps_gridded %>% - st_join(occs_final, join = st_intersects) %>% - filter(name_matched == species) %>% # Filter only intersections of the same species - group_by(species) %>% - summarise(cells_occupied = n_distinct(geometry)) %>% - st_drop_geometry() - -df_join = df_cells_total %>% - dplyr::inner_join(df_cells_occ, by = "species") %>% - dplyr::mutate(range_cov = cells_occupied / cells_total) %>% - dplyr::select(species, range_cov) - -performance = performance %>% - inner_join(df_join, by = "species") - -# Range coverage bias -df_occs_total = occs_final %>% - st_drop_geometry() %>% - group_by(species) %>% - summarise(occs_total = n()) - -df_join = df_occs_total %>% - dplyr::inner_join(df_cells_total, by = "species") %>% - dplyr::inner_join(df_cells_occ, by = "species") %>% - dplyr::mutate(range_bias = 1-((cells_occupied / cells_total) / pmin(occs_total / cells_total, 1))) %>% - dplyr::select(species, range_bias) - -performance = performance %>% - inner_join(df_join, by = "species") -``` - -### Number of records - -::: panel-tabset -#### Marginal Effects - -::: panel-tabset -##### AUC - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "auc") -plot = plot_performance(df_plot, y_var = "value", y_label = "AUC", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` - -##### F1 - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "f1") -plot = plot_performance(df_plot, y_var = "value", y_label = "F1", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` - -##### Cohen's kappa - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "kappa") -plot = plot_performance(df_plot, y_var = "value", y_label = "Kappa", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` - -##### Accuracy - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "accuracy") -plot = plot_performance(df_plot, y_var = "value", y_label = "Accuracy", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` - -##### Precision - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "precision") -plot = plot_performance(df_plot, y_var = "value", y_label = "Precision", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` - -##### Recall - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "recall") -plot = plot_performance(df_plot, y_var = "value", y_label = "Recall", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` -::: - -#### Partial Effects - -::: panel-tabset -##### AUC - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "auc") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "AUC (partial residual)", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` - -##### F1 - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "f1") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "F1 (partial residual)", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` - -##### Cohen's kappa - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "kappa") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias"), family = gaussian) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Kappa (partial residual)", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` - -##### Accuracy - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "accuracy") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Accuracy (partial residual)", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` - -##### Precision - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "precision") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Precision (partial residual)", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` - -##### Recall - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "recall") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Recall (partial residual)", x_var = "n_obs", x_label = "Number of records") -bslib::card(plot, full_screen = T) -``` -::: -::: - -### Range size - -Range size was calculated based on polygon layers from the IUCN Red List of Threatened Species (2016). - -::: panel-tabset -#### Marginal Effects - -::: panel-tabset -##### AUC - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "auc") -plot = plot_performance(df_plot, y_var = "value", y_label = "AUC", x_var = "range_size", x_label = "Range size [km]") -bslib::card(plot, full_screen = T) -``` - -##### F1 - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "f1") -plot = plot_performance(df_plot, y_var = "value", y_label = "F1", x_var = "range_size", x_label = "Range size [km]") -bslib::card(plot, full_screen = T) -``` - -##### Cohen's kappa - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "kappa") -plot = plot_performance(df_plot, y_var = "value", y_label = "Kappa", x_var = "range_size", x_label = "Range size [km]") -bslib::card(plot, full_screen = T) -``` - -##### Accuracy - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "accuracy") -plot = plot_performance(df_plot, y_var = "value", y_label = "Accuracy", x_var = "range_size", x_label = "Range size [km]") -bslib::card(plot, full_screen = T) -``` - -##### Precision - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "precision") -plot = plot_performance(df_plot, y_var = "value", y_label = "Precision", x_var = "range_size", x_label = "Range size [km]") -bslib::card(plot, full_screen = T) -``` - -##### Recall - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "recall") -plot = plot_performance(df_plot, y_var = "value", y_label = "Recall", x_var = "range_size", x_label = "Range size [km]") -bslib::card(plot, full_screen = T) -``` -::: - -#### Partial Effects - -::: panel-tabset -##### AUC - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "auc") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "AUC (partial residual)", x_var = "range_size", x_label = "Range size [km]") -bslib::card(plot, full_screen = T) -``` - -##### F1 - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "f1") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "F1 (partial residual)", x_var = "range_size", x_label = "Range size [km²]") -bslib::card(plot, full_screen = T) -``` - -##### Cohen's kappa - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "kappa") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias"), family = gaussian) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Kappa (partial residual)", x_var = "range_size", x_label = "Range size [km²]") -bslib::card(plot, full_screen = T) -``` - -##### Accuracy - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "accuracy") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Accuracy (partial residual)", x_var = "range_size", x_label = "Range size [km²]") -bslib::card(plot, full_screen = T) -``` - -##### Precision - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "precision") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Precision (partial residual)", x_var = "range_size", x_label = "Range size [km²]") -bslib::card(plot, full_screen = T) -``` - -##### Recall - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "recall") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Recall (partial residual)", x_var = "range_size", x_label = "Range size [km²]") -bslib::card(plot, full_screen = T) -``` -::: -::: - -### Range coverage - -Species ranges were split into continuous hexagonal grid cells of 1 degree diameter. Range coverage was then calculated as the number of grid cells containing at least one occurrence record divided by the number of total grid cells. - -$$ -RangeCoverage = \frac{N_{cells\_occ}}{N_{cells\_total}} -$$ - -::: panel-tabset -#### Marginal Effects - -::: panel-tabset -##### AUC - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "auc") -plot = plot_performance(df_plot, y_var = "value", y_label = "AUC", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` - -##### F1 - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "f1") -plot = plot_performance(df_plot, y_var = "value", y_label = "F1", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` - -##### Cohen's kappa - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "kappa") -plot = plot_performance(df_plot, y_var = "value", y_label = "Kappa", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` - -##### Accuracy - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "accuracy") -plot = plot_performance(df_plot, y_var = "value", y_label = "Accuracy", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` - -##### Precision - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "precision") -plot = plot_performance(df_plot, y_var = "value", y_label = "Precision", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` - -##### Recall - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "recall") -plot = plot_performance(df_plot, y_var = "value", y_label = "Recall", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` -::: - -#### Partial Effects - -::: panel-tabset -##### AUC - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "auc") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "AUC (partial residual)", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` - -##### F1 - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "f1") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "F1 (partial residual)", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` - -##### Cohen's kappa - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "kappa") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias"), family = gaussian) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Kappa (partial residual)", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` - -##### Accuracy - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "accuracy") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Accuracy (partial residual)", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` - -##### Precision - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "precision") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Precision (partial residual)", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` - -##### Recall - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "recall") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Recall (partial residual)", x_var = "range_cov", x_label = "Range coverage") -bslib::card(plot, full_screen = T) -``` -::: -::: - -### Range coverage bias - -Range coverage bias was calculated as 1 minus the ratio of the actual range coverage and the hypothetical range coverage if all observations were maximally spread out across the range. - -$$ -RangeCoverageBias = 1 - \frac{RangeCoverage}{min({N_{obs\_total}} / {N_{cells\_total}}, 1)} -$$ - -Higher bias values indicate that occurrence records are spatially more clustered within the range of the species. - -::: panel-tabset -#### Marginal Effects - -::: panel-tabset -##### AUC - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "auc") -plot = plot_performance(df_plot, y_var = "value", y_label = "AUC", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` - -##### F1 - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "f1") -plot = plot_performance(df_plot, y_var = "value", y_label = "F1", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` - -##### Cohen's kappa - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "kappa") -plot = plot_performance(df_plot, y_var = "value", y_label = "Kappa", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` - -##### Accuracy - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "accuracy") -plot = plot_performance(df_plot, y_var = "value", y_label = "Accuracy", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` - -##### Precision - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "precision") -plot = plot_performance(df_plot, y_var = "value", y_label = "Precision", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` - -##### Recall - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "recall") -plot = plot_performance(df_plot, y_var = "value", y_label = "Recall", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` -::: - -#### Partial Effects - -::: panel-tabset -##### AUC - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "auc") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "AUC (partial residual)", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` - -##### F1 - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "f1") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "F1 (partial residual)", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` - -##### Cohen's kappa - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "kappa") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias"), family = gaussian) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Kappa (partial residual)", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` - -##### Accuracy - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "accuracy") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Accuracy (partial residual)", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` - -##### Precision - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "precision") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Precision (partial residual)", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` - -##### Recall - -```{r echo = FALSE} -df_plot = dplyr::filter(performance, metric == "recall") %>% - add_partial_residuals(focus_var = "n_obs", control_vars = c("range_size", "range_cov", "range_bias")) -plot = plot_performance(df_plot, y_var = "n_obs_partial", y_label = "Recall (partial residual)", x_var = "range_bias", x_label = "Range coverage bias") -bslib::card(plot, full_screen = T) -``` -::: -::: diff --git a/R/05_02_publication_analysis.R b/R/05_02_publication_analysis.R index 4d347c4..8f9bc5e 100644 --- a/R/05_02_publication_analysis.R +++ b/R/05_02_publication_analysis.R @@ -242,10 +242,10 @@ raster_data = terra::rast(raster_filepaths) %>% terra::crop(sf::st_bbox(sa_polygon)) %>% terra::project(sf::st_crs(model_data)$input) -specs = c("Histiotus velatus", "Hydrochoerus hydrochaeris", "Euryoryzomys legatus", "Eumops trumbulli") +specs = c("Aotus lemurinus") for(spec in specs){ pdf(file = paste0("plots/range_predictions/", spec, ".pdf"), width = 12) - plots = plot_predictions(spec, model_data, raster_data, algorithms = c("gam", "gbm", "rf", "msdm_onehot", "msdm_embed", "msdm_rf")) + plots = plot_predictions(spec, model_data, raster_data, algorithms = c("gam", "gbm", "rf")) lapply(plots, print) dev.off() } diff --git a/R/_publish.yml b/R/_publish.yml index 5604c70..1da1e87 100644 --- a/R/_publish.yml +++ b/R/_publish.yml @@ -2,8 +2,6 @@ quarto-pub: - id: 77b30762-b473-447d-be18-d4bbd6261fbf url: 'https://chrkoenig.quarto.pub/sdm-performance-report' - - id: 7777d450-82af-4364-b4c1-b52d7139ade0 - url: 'https://chrkoenig.quarto.pub/rf-nospec-performance-report' - source: 05_01_performance_report_rf.qmd quarto-pub: - id: 98e776a5-fb0b-41f9-8733-446bf7ffb272 diff --git a/README.md b/README.md index aaaa50c..a26b747 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,62 @@ -# Symobio-modeling +# Codebase Documentation -Code and data accompanying SSDM vs MSDM model comparison \ No newline at end of file +This repository implements a species distribution modeling comparison study for about 600 South American mammal species. Specifically, the + +## Project Structure + +- **`R/`**: Contains all the R scripts organized by workflow steps. +- **`Symobio_modeling.Rproj`**: RStudio project file for easy navigation. +- **`README.md`**: High-level overview of the project. +- **`renv/`**: Manages package dependencies for reproducibility. +- **`renv.lock`**: Lockfile for `renv` to ensure consistent package versions. + +## Workflow Overview + +The workflow is divided into several stages, each represented by scripts in the `R/` directory. Below is a summary of the key steps: + +### 1. Preparation of Geographic Data +- **`01_01_range_map_preparation.R`**: Processes IUCN mammal range maps for South America, converting them to a standardized raster format with consistent projection for downstream analysis. +- **`01_02_raster_preparation.R`**: Prepares environmental predictor rasters (e.g., climate, elevation, land cover) by cropping to South America extent, resampling to consistent resolution, and performing any necessary transformations. + +### 2. Preparation of complementary species-level data + + +- **`02_01_functional_group_assignment.R`**: Assigns mammal species to functional groups based on diet, locomotion, and body size characteristics, creating categorical variables for modeling. +- **`02_02_functional_traits_preparation.R`**: Cleans and standardizes continuous trait data (body mass, diet breadth, etc.) for all study species, handling missing values through imputation where necessary. +- **`02_03_phylo_preparation.R`**: Extracts phylogenetic information for target mammal species, computes phylogenetic distance matrices, and prepares the data for inclusion in models. + +### 3. Preparation of Presence/Absence Data +- **`03_01_presence_preparation.R`**: Processes occurrence records from GBIF and other sources, applies spatial filtering to reduce sampling bias, and aligns taxonomic nomenclature. +- **`03_02_absence_preparation.R`**: Generates pseudo-absence points using a stratified random approach, with constraints based on environmental conditions and range map boundaries. +- **`03_03_dataset_exploration.R`**: Produces descriptive statistics and visualizations of presence/absence data, environmental variables, and species coverage to assess data quality. +- **`03_04_model_data_finalization.R`**: Merges all prepared datasets (occurrences, absences, predictors) into final modeling datasets, splits data into training/testing sets, and applies any necessary scaling or transformations. + +### 4. Modeling +- **`04_01_modelling_ssdm.R`**: Implements traditional single-species distribution modeling (SSDM) approaches with selected algorithms (e.g., MaxEnt, random forests), including hyperparameter tuning. +- **`04_02_modelling_msdm_embed.R`**: Develops multi-species distribution models using neural network approaches that embed species identities into a latent space, capturing inter-species relationships. +- **`04_03_modelling_msdm_onehot.R`**: Implements multi-species distribution models using one-hot encoding for species identities, enabling joint prediction across all species simultaneously. +- **`04_04_modelling_msdm_rf.R`**: Implements random forest-based multi-species distribution modeling, incorporating species identity as a predictor variable alongside environmental variables. + +### 5. Analysis +- **`05_01_performance_report.qmd`**: Generates comprehensive reports on model performance metrics (AUC, TSS, etc.) for all modeling approaches, with visualizations comparing performance across species and methods. +- **`05_02_publication_analysis.qmd`**: Conducts advanced statistical analyses of model results, creates publication-quality figures, and summarizes findings for manuscript preparation. + +## Miscellaneous +- **`utils.R`**: Contains utility functions used across multiple scripts, including data processing helpers, custom evaluation metrics, and visualization functions. + +### Miscellaneous +- **`utils.R`**: + +## Getting Started + +1. Clone the repository and open the `Symobio_modeling.Rproj` file in RStudio. +2. Restore the project environment using `renv`: + ```r + renv::restore() + ``` +3. Run the scripts in the R/ directory sequentially. Some scripts, especially for model fitting, may run a long time and benefit from powerful hardware. + +## Additional Notes +- Ensure that all required input data (e.g., range maps, raster files) is available in the expected directories. +- Outputs from each script are typically saved to disk and used as inputs for subsequent scripts. +- Refer to the README.md file for any additional project-specific instructions. diff --git a/occurrences.png b/occurrences.png deleted file mode 100644 index 0a8e43d1943357ed699740edbce1198cfddb6b33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98073 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�L>d>b|xwp<}u} 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	SJ0yZK~!;4p)B~`(GF|y}E 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 OKWZ<vlxh{MBK{9Nji8PI -- GitLab