Cerdocyon thous Variable Selection

Author

Florencia Grattarola

Published

September 30, 2024

Variable Selection for Cerdocyon thous, using the data generated in the previous step.

library(knitr)
library(dismo)
library(gbm)
library(randomForest)
library(ranger) # for the Random Forest
library(terra)
terraOptions(tempdir='big_data/temp')
library(sf)
library(tidyverse)

28 Predictors

  • bio1: Annual Mean Temperature, from Bioclimatic variables (WorldClim V2.1)
  • bio2: Mean Diurnal Range (Mean of monthly (max temp - min temp)), from Bioclimatic variables (WorldClim V2.1)
  • bio3: Isothermality (BIO2/BIO7) (×100), from Bioclimatic variables (WorldClim V2.1)
  • bio4: Temperature Seasonality (standard deviation ×100), from Bioclimatic variables (WorldClim V2.1)
  • bio5: Max Temperature of Warmest Month, from Bioclimatic variables (WorldClim V2.1)
  • bio6: Min Temperature of Coldest Month, from Bioclimatic variables (WorldClim V2.1)
  • bio7: Temperature Annual Range (BIO5-BIO6), from Bioclimatic variables (WorldClim V2.1)
  • bio8: Mean Temperature of Wettest Quarter, from Bioclimatic variables (WorldClim V2.1)
  • bio9: Mean Temperature of Driest Quarter, from Bioclimatic variables (WorldClim V2.1)
  • bio10: Mean Temperature of Warmest Quarter, from Bioclimatic variables (WorldClim V2.1)
  • bio11: Mean Temperature of Coldest Quarter, from Bioclimatic variables (WorldClim V2.1)
  • bio12: Annual Precipitation, from Bioclimatic variables (WorldClim V2.1)
  • bio13: Precipitation of Wettest Month, from Bioclimatic variables (WorldClim V2.1)
  • bio14: Precipitation of Driest Month, from Bioclimatic variables (WorldClim V2.1)
  • bio15: Precipitation Seasonality (Coefficient of Variation), from Bioclimatic variables (WorldClim V2.1)
  • bio16: Precipitation of Wettest Quarter, from Bioclimatic variables (WorldClim V2.1)
  • bio17: Precipitation of Driest Quarter, from Bioclimatic variables (WorldClim V2.1)
  • bio18: Precipitation of Warmest Quarter, from Bioclimatic variables (WorldClim V2.1)
  • bio19: Precipitation of Coldest Quarter, from Bioclimatic variables (WorldClim V2.1)
  • elev: Elevation (WorldClim V2.1 SRTM elevation data), from Bioclimatic variables (WorldClim V2.1)
  • urban: Urban and Built-up Lands, from Land cover LC1 (MODIS TERRA LandCover_Type_Yearly_500m (MCD12Q1))
  • barren: Barren, from Land cover LC1 (MODIS TERRA LandCover_Type_Yearly_500m (MCD12Q1))
  • water: Water Bodies, from Land cover LC1 (MODIS TERRA LandCover_Type_Yearly_500m (MCD12Q1))
  • savanna: Savannas, from Land cover LC1 (MODIS TERRA LandCover_Type_Yearly_500m (MCD12Q1))
  • woodysavanna: Woody savannas, from Land cover LC1 (MODIS TERRA LandCover_Type_Yearly_500m (MCD12Q1))
  • wetland: Permanent Wetlands, from Land cover LC1 (MODIS TERRA LandCover_Type_Yearly_500m (MCD12Q1))
  • grass: Grasslands, from Land cover LC1 (MODIS TERRA LandCover_Type_Yearly_500m (MCD12Q1))
  • npp: Net Primary Production (NPP) (MODIS TERRA Net_PP_GapFil_Yearly_500m (M*D17A3HGF))
  • tree: Percentage of Tree Cover, from Vegetation Continuous Fields (MODIS TERRA Veg_Cont_Fields_Yearly_250m (MOD44B))
  • nontree: Percentage of No Tree Cover, from Vegetation Continuous Fields (MODIS TERRA Veg_Cont_Fields_Yearly_250m (MOD44B))
  • nonveg: Percentage of Non Tree Vegetation Cover, from Vegetation Continuous Fields (MODIS TERRA Veg_Cont_Fields_Yearly_250m (MOD44B))
Code
bio <- rast('big_data/bio_high.tif')
elev <- rast('big_data/elev_high.tif')
urban <- rast('big_data/urban_high.tif') %>% resample(., elev)
barren  <- rast('big_data/barren_high.tif') %>% resample(., elev)
water <- rast('big_data/water_high.tif') %>% resample(., elev)
savanna <- rast('big_data/savanna_high.tif') %>% resample(., elev)
woodysavanna <- rast('big_data/woodysavanna_high.tif') %>% resample(., elev)
wetland <- rast('big_data/wetland_high.tif') %>% resample(., elev)
grass <- rast('big_data/grass_high.tif') %>% resample(., elev)
npp <- rast('big_data/npp_high.tif') %>% resample(., elev)
names(npp) <- 'npp'
tree <- rast('big_data/tree_high.tif') %>% resample(., elev)
nontree <- rast('big_data/nontree_high.tif') %>% resample(., elev)
nonveg <- rast('big_data/nonveg_high.tif') %>% resample(., elev)

env <- c(bio, elev, urban, barren, water, 
         savanna, woodysavanna, wetland, 
         grass, npp, tree, nontree, nonveg) %>% scale()

rm(bio, elev, urban, barren, water, 
         savanna, woodysavanna, wetland, 
         grass, npp, tree, nontree, nonveg)

gc()

Cerdocyon thous’ preferences

We will use the data from both periods

Code
PA_time1 <- readRDS('data/species_POPA_data/PA_cthous_time1_blobs.rds')%>% ungroup()
PA_time2 <- readRDS('data/species_POPA_data/PA_cthous_time2_blobs.rds')%>% ungroup()

PA_time1 %>% st_drop_geometry() %>% head() %>% kable()
ID presence temporalSpan effort blobArea
1 0 1365 days 1043 241873943 [m^2]
2 0 1769 days 2404 537081878 [m^2]
3 0 6222 days 11078 2241827859 [m^2]
4 0 720 days 1291 162791738 [m^2]
5 0 1769 days 1779 756798182 [m^2]
6 0 304 days 3300 19990863 [m^2]
Code
PA_time2 %>% st_drop_geometry() %>% head() %>% kable()
ID presence temporalSpan effort blobArea
1 0 510 days 11095 2.229446e+09 [m^2]
2 0 150 days 12276 1.542295e+03 [m^2]
3 0 407 days 1585 1.049520e-01 [m^2]
4 0 869 days 1440 7.494574e+01 [m^2]
5 0 70 days 400 2.546836e+01 [m^2]
6 0 756 days 7164 2.398904e-01 [m^2]

Presence-absence data for the second period

Preparation of data for the tests

Code
# combine pre and pos datasets
PA.data <- st_join(PA_time1, PA_time2 %>% dplyr::select(presence), left = T) %>% 
  group_by(ID) %>%  
  mutate(presence=max(presence.x, presence.y, na.rm = T)) 

# calculate area, coordinates, and extract env predictors for each blob
PA.coords <- st_coordinates(st_centroid(PA.data)) %>% as_tibble()
PA.area <- as.numeric(PA.data$blobArea) 

PA.env <- terra::extract(x = env, y = vect(PA.data),
                         fun = mean, rm.na=T) %>% 
  mutate(across(where(is.numeric), ~ifelse(is.nan(.), NA, .)))

## the data
PA <- data.frame(PA.coords,
                 area = PA.area,
                 presabs = PA.data$presence,
                 env = PA.env)

Correlation between variables

Code
PA %>% filter(!if_any(everything(), is.na)) %>% dplyr::select(-c(1:5)) %>% cor() %>% kable()
env.bio_1 env.bio_2 env.bio_3 env.bio_4 env.bio_5 env.bio_6 env.bio_7 env.bio_8 env.bio_9 env.bio_10 env.bio_11 env.bio_12 env.bio_13 env.bio_14 env.bio_15 env.bio_16 env.bio_17 env.bio_18 env.bio_19 env.elev env.urban env.barren env.water env.savanna env.woodysavanna env.wetland env.grass env.npp env.tree env.nontree env.nonveg
env.bio_1 1.0000000 0.9296441 0.9683961 0.2245524 0.3650713 -0.0974913 0.2598362 0.4133726 -0.1088920 -0.2171595 0.1956382 -0.2049978 0.6915905 -0.6813646 0.8361199 0.9132283 -0.5533539 0.8696582 0.9064849 -0.6579087 -0.2201133 -0.0977410 0.2893823 -0.0024650 0.0280840 0.1505896 -0.1029622 -0.5423448 0.2241057 0.1944363 0.3216861
env.bio_2 0.9296441 1.0000000 0.8201186 0.1070940 0.1263286 -0.0188141 0.1075105 0.1704404 -0.0270968 -0.2734955 0.1868085 -0.1426003 0.4381869 -0.3771548 0.9194218 0.7840670 -0.3309997 0.8667005 0.7893311 -0.8088566 -0.2416197 -0.1129521 0.2673516 0.0269795 0.0437261 0.2158389 -0.1911302 -0.5957826 0.2394162 0.2026016 0.3128536
env.bio_3 0.9683961 0.8201186 1.0000000 0.3145337 0.4841739 -0.0902739 0.3019023 0.5416489 -0.1019188 -0.2194668 0.2423853 -0.2688312 0.8182906 -0.8385889 0.7284579 0.9531144 -0.6805953 0.7863656 0.9351986 -0.5387853 -0.1778445 -0.0766928 0.3146130 -0.0212454 0.0151050 0.0830030 -0.0941385 -0.4287304 0.2510269 0.1763470 0.3326884
env.bio_4 0.2245524 0.1070940 0.3145337 1.0000000 0.7642354 0.7267723 -0.4858212 0.7801517 0.7257054 0.3332077 0.7446606 -0.5595604 0.5005643 -0.4148608 -0.0696912 0.4462757 -0.6123342 0.0898132 0.3375557 -0.2702648 0.0226405 -0.1373670 0.3077364 -0.4152737 -0.1495779 -0.1146293 -0.1512988 0.2195306 0.5598284 -0.0677038 0.2675771
env.bio_5 0.3650713 0.1263286 0.4841739 0.7642354 1.0000000 0.1933128 0.1171199 0.9784670 0.1835373 0.3598166 0.4346112 -0.3516015 0.6733107 -0.6659381 -0.0034808 0.5031871 -0.6367356 0.2330854 0.4266622 -0.0644255 0.0457209 -0.1574742 0.2459976 -0.3587865 -0.0619659 -0.1330635 0.1157962 0.0741961 0.3196852 0.0073694 0.2150625
env.bio_6 -0.0974913 -0.0188141 -0.0902739 0.7267723 0.1933128 1.0000000 -0.8648488 0.1913458 0.9965494 0.1837194 0.7740640 -0.5300579 0.0892696 0.1186764 -0.1996677 0.1249108 -0.3001855 -0.1378122 0.0099549 -0.3037383 -0.0295608 -0.0459756 0.2895092 -0.3454885 -0.1352915 -0.0004524 -0.3242425 0.2813411 0.5902548 -0.0208942 0.2560326
env.bio_7 0.2598362 0.1075105 0.3019023 -0.4858212 0.1171199 -0.8648488 1.0000000 0.1220172 -0.8782263 -0.1345391 -0.5756748 0.4185941 0.2440087 -0.3840589 0.2496259 0.1033349 0.0482055 0.2443413 0.1945389 0.2985608 0.0225795 -0.0051382 -0.1606119 0.2264854 0.1850820 -0.0391527 0.2617882 -0.2260104 -0.4273476 0.0504557 -0.1488980
env.bio_8 0.4133726 0.1704404 0.5416489 0.7801517 0.9784670 0.1913458 0.1220172 1.0000000 0.1819016 0.3180265 0.4533295 -0.4161798 0.7057661 -0.7191324 0.0339333 0.5715997 -0.6962200 0.2568050 0.4948495 -0.1003456 0.0642175 -0.1537781 0.2693363 -0.3170436 -0.0375880 -0.1611847 0.0346935 0.0835534 0.3395489 -0.0039337 0.2253595
env.bio_9 -0.1088920 -0.0270968 -0.1019188 0.7257054 0.1835373 0.9965494 -0.8782263 0.1819016 1.0000000 0.1840244 0.7748265 -0.5272262 0.0770351 0.1295226 -0.2067214 0.1137978 -0.2912206 -0.1496451 -0.0013905 -0.3043808 -0.0294760 -0.0483047 0.2836730 -0.3479909 -0.1389403 -0.0005642 -0.3307918 0.2925463 0.5897787 -0.0290542 0.2499643
env.bio_10 -0.2171595 -0.2734955 -0.2194668 0.3332077 0.3598166 0.1837194 -0.1345391 0.3180265 0.1840244 1.0000000 -0.1092807 -0.1343382 -0.0811383 0.1021154 -0.4429341 -0.1997582 -0.0648619 -0.0145843 -0.3385074 0.1685297 0.2582501 -0.1263971 -0.1456711 -0.2570984 0.0182359 -0.0638922 0.0956723 0.2583383 -0.0288362 -0.1901205 -0.1873301
env.bio_11 0.1956382 0.1868085 0.2423853 0.7446606 0.4346112 0.7740640 -0.5756748 0.4533295 0.7748265 -0.1092807 1.0000000 -0.6357030 0.4318087 -0.2273811 -0.0001334 0.4547914 -0.5733417 0.0224191 0.3619071 -0.3934250 -0.0896497 -0.0345635 0.4128212 -0.3398411 -0.0967487 -0.0340330 -0.2794210 0.1254955 0.6191653 0.0444401 0.3673542
env.bio_12 -0.2049978 -0.1426003 -0.2688312 -0.5595604 -0.3516015 -0.5300579 0.4185941 -0.4161798 -0.5272262 -0.1343382 -0.6357030 1.0000000 -0.3325137 0.3049036 0.1966475 -0.5250598 0.8023981 -0.0861157 -0.3309889 0.3821173 -0.0890791 0.0167159 -0.4386322 0.3434812 0.0467406 -0.0727980 0.3469681 -0.1737652 -0.5951082 -0.0668483 -0.3700583
env.bio_13 0.6915905 0.4381869 0.8182906 0.5005643 0.6733107 0.0892696 0.2440087 0.7057661 0.0770351 -0.0811383 0.4318087 -0.3325137 1.0000000 -0.9118016 0.3261453 0.8255327 -0.8073928 0.4789765 0.7641805 -0.2005044 -0.1124490 -0.0021708 0.3366226 -0.1551412 -0.0112436 -0.0695311 -0.0158723 -0.1472418 0.2873553 0.1459596 0.3206495
env.bio_14 -0.6813646 -0.3771548 -0.8385889 -0.4148608 -0.6659381 0.1186764 -0.3840589 -0.7191324 0.1295226 0.1021154 -0.2273811 0.3049036 -0.9118016 1.0000000 -0.3065325 -0.8003439 0.7896644 -0.4447706 -0.7650724 0.1075528 0.0491570 0.0151001 -0.2590556 0.0693126 0.0098816 0.0774311 -0.0168947 0.1143688 -0.1926304 -0.0852376 -0.2445389
env.bio_15 0.8361199 0.9194218 0.7284579 -0.0696912 -0.0034808 -0.1996677 0.2496259 0.0339333 -0.2067214 -0.4429341 -0.0001334 0.1966475 0.3261453 -0.3065325 1.0000000 0.6102757 -0.0543381 0.7628378 0.7072778 -0.6630353 -0.2740025 -0.1002805 0.1226871 0.1672372 0.0462821 0.1653903 -0.0906072 -0.6102193 0.0503882 0.1630034 0.1918470
env.bio_16 0.9132283 0.7840670 0.9531144 0.4462757 0.5031871 0.1249108 0.1033349 0.5715997 0.1137978 -0.1997582 0.4547914 -0.5250598 0.8255327 -0.8003439 0.6102757 1.0000000 -0.8241800 0.7110844 0.9320639 -0.6213394 -0.1491519 -0.0630686 0.4173645 -0.1202489 0.0029894 0.1034344 -0.2159955 -0.3303117 0.4202314 0.1793595 0.4141109
env.bio_17 -0.5533539 -0.3309997 -0.6805953 -0.6123342 -0.6367356 -0.3001855 0.0482055 -0.6962200 -0.2912206 -0.0648619 -0.5733417 0.8023981 -0.8073928 0.7896644 -0.0543381 -0.8241800 1.0000000 -0.3509483 -0.6692034 0.3091761 -0.0078816 0.0078058 -0.4383634 0.2711251 0.0293186 -0.0121391 0.2074795 -0.0198950 -0.4936629 -0.1095460 -0.3848206
env.bio_18 0.8696582 0.8667005 0.7863656 0.0898132 0.2330854 -0.1378122 0.2443413 0.2568050 -0.1496451 -0.0145843 0.0224191 -0.0861157 0.4789765 -0.4447706 0.7628378 0.7110844 -0.3509483 1.0000000 0.6106291 -0.5930138 -0.1337635 -0.0844168 0.1904426 -0.0413308 0.0667723 0.1977084 -0.0870639 -0.5298813 0.1649284 0.1344020 0.2359080
env.bio_19 0.9064849 0.7893311 0.9351986 0.3375557 0.4266622 0.0099549 0.1945389 0.4948495 -0.0013905 -0.3385074 0.3619071 -0.3309889 0.7641805 -0.7650724 0.7072778 0.9320639 -0.6692034 0.6106291 1.0000000 -0.5894832 -0.2207150 -0.0580746 0.3417830 0.0150607 0.0015716 0.0673108 -0.1438877 -0.4089540 0.2748842 0.1941162 0.3490410
env.elev -0.6579087 -0.8088566 -0.5387853 -0.2702648 -0.0644255 -0.3037383 0.2985608 -0.1003456 -0.3043808 0.1685297 -0.3934250 0.3821173 -0.2005044 0.1075528 -0.6630353 -0.6213394 0.3091761 -0.5930138 -0.5894832 1.0000000 0.1776808 0.0973969 -0.2664306 0.0973135 0.0062860 -0.1804121 0.3347777 0.3623028 -0.3968661 -0.0874815 -0.3009313
env.urban -0.2201133 -0.2416197 -0.1778445 0.0226405 0.0457209 -0.0295608 0.0225795 0.0642175 -0.0294760 0.2582501 -0.0896497 -0.0890791 -0.1124490 0.0491570 -0.2740025 -0.1491519 -0.0078816 -0.1337635 -0.2207150 0.1776808 1.0000000 -0.0109690 -0.0607542 -0.0470701 0.0318901 -0.0606497 -0.0753713 0.1344147 -0.0366332 -0.0745566 -0.0958183
env.barren -0.0977410 -0.1129521 -0.0766928 -0.1373670 -0.1574742 -0.0459756 -0.0051382 -0.1537781 -0.0483047 -0.1263971 -0.0345635 0.0167159 -0.0021708 0.0151001 -0.1002805 -0.0630686 0.0078058 -0.0844168 -0.0580746 0.0973969 -0.0109690 1.0000000 -0.0116914 -0.0361940 -0.0154035 -0.0116054 -0.0235731 -0.0790421 -0.0543190 -0.0802550 0.0973328
env.water 0.2893823 0.2673516 0.3146130 0.3077364 0.2459976 0.2895092 -0.1606119 0.2693363 0.2836730 -0.1456711 0.4128212 -0.4386322 0.3366226 -0.2590556 0.1226871 0.4173645 -0.4383634 0.1904426 0.3417830 -0.2664306 -0.0607542 -0.0116914 1.0000000 -0.1898651 -0.0920385 0.1375010 -0.1324898 -0.3658775 0.7287007 0.7473932 0.9149495
env.savanna -0.0024650 0.0269795 -0.0212454 -0.4152737 -0.3587865 -0.3454885 0.2264854 -0.3170436 -0.3479909 -0.2570984 -0.3398411 0.3434812 -0.1551412 0.0693126 0.1672372 -0.1202489 0.2711251 -0.0413308 0.0150607 0.0973135 -0.0470701 -0.0361940 -0.1898651 1.0000000 -0.1167850 -0.1579102 -0.1249173 -0.1437237 -0.4725033 0.1212126 -0.2018991
env.woodysavanna 0.0280840 0.0437261 0.0151050 -0.1495779 -0.0619659 -0.1352915 0.1850820 -0.0375880 -0.1389403 0.0182359 -0.0967487 0.0467406 -0.0112436 0.0098816 0.0462821 0.0029894 0.0293186 0.0667723 0.0015716 0.0062860 0.0318901 -0.0154035 -0.0920385 -0.1167850 1.0000000 -0.0847233 -0.1104016 0.0006886 -0.0777231 -0.1006558 -0.1058182
env.wetland 0.1505896 0.2158389 0.0830030 -0.1146293 -0.1330635 -0.0004524 -0.0391527 -0.1611847 -0.0005642 -0.0638922 -0.0340330 -0.0727980 -0.0695311 0.0774311 0.1653903 0.1034344 -0.0121391 0.1977084 0.0673108 -0.1804121 -0.0606497 -0.0116054 0.1375010 -0.1579102 -0.0847233 1.0000000 -0.1258117 -0.3612828 0.2205404 0.2479464 0.2796946
env.grass -0.1029622 -0.1911302 -0.0941385 -0.1512988 0.1157962 -0.3242425 0.2617882 0.0346935 -0.3307918 0.0956723 -0.2794210 0.3469681 -0.0158723 -0.0168947 -0.0906072 -0.2159955 0.2074795 -0.0870639 -0.1438877 0.3347777 -0.0753713 -0.0235731 -0.1324898 -0.1249173 -0.1104016 -0.1258117 1.0000000 -0.1337146 -0.4646464 0.2073061 -0.1003525
env.npp -0.5423448 -0.5957826 -0.4287304 0.2195306 0.0741961 0.2813411 -0.2260104 0.0835534 0.2925463 0.2583383 0.1254955 -0.1737652 -0.1472418 0.1143688 -0.6102193 -0.3303117 -0.0198950 -0.5298813 -0.4089540 0.3623028 0.1344147 -0.0790421 -0.3658775 -0.1437237 0.0006886 -0.3612828 -0.1337146 1.0000000 -0.0468240 -0.5293037 -0.4653541
env.tree 0.2241057 0.2394162 0.2510269 0.5598284 0.3196852 0.5902548 -0.4273476 0.3395489 0.5897787 -0.0288362 0.6191653 -0.5951082 0.2873553 -0.1926304 0.0503882 0.4202314 -0.4936629 0.1649284 0.2748842 -0.3968661 -0.0366332 -0.0543190 0.7287007 -0.4725033 -0.0777231 0.2205404 -0.4646464 -0.0468240 1.0000000 0.2718941 0.7398183
env.nontree 0.1944363 0.2026016 0.1763470 -0.0677038 0.0073694 -0.0208942 0.0504557 -0.0039337 -0.0290542 -0.1901205 0.0444401 -0.0668483 0.1459596 -0.0852376 0.1630034 0.1793595 -0.1095460 0.1344020 0.1941162 -0.0874815 -0.0745566 -0.0802550 0.7473932 0.1212126 -0.1006558 0.2479464 0.2073061 -0.5293037 0.2718941 1.0000000 0.7880283
env.nonveg 0.3216861 0.3128536 0.3326884 0.2675771 0.2150625 0.2560326 -0.1488980 0.2253595 0.2499643 -0.1873301 0.3673542 -0.3700583 0.3206495 -0.2445389 0.1918470 0.4141109 -0.3848206 0.2359080 0.3490410 -0.3009313 -0.0958183 0.0973328 0.9149495 -0.2018991 -0.1058182 0.2796946 -0.1003525 -0.4653541 0.7398183 0.7880283 1.0000000

Variable Importance analyses

Simple GLM

Code
presabs.glm <- PA %>% 
  dplyr::select(-c(1,2,3,5)) %>% 
  filter(!is.na(env.elev)&!is.na(env.bio_1))

glm.full<- glm(presabs ~., 
               family = "binomial", 
               data = presabs.glm)

summary(glm.full)

Call:
glm(formula = presabs ~ ., family = "binomial", data = presabs.glm)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.8531  -0.7432  -0.1290   0.8810   2.3182  

Coefficients:
                   Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -4.891e+01  1.219e+02  -0.401  0.68824    
env.bio_1        -1.144e+01  7.343e+00  -1.558  0.11912    
env.bio_2        -3.418e+00  6.546e+00  -0.522  0.60161    
env.bio_3         3.325e+01  1.359e+01   2.447  0.01442 *  
env.bio_4        -4.941e+00  2.300e+00  -2.148  0.03168 *  
env.bio_5         1.980e-01  1.505e+00   0.132  0.89532    
env.bio_6        -2.994e+00  1.778e+00  -1.684  0.09210 .  
env.bio_7        -2.988e+00  7.645e-01  -3.909 9.28e-05 ***
env.bio_8         3.632e+00  2.303e+00   1.577  0.11476    
env.bio_9         6.168e-01  2.199e+00   0.280  0.77914    
env.bio_10        2.486e-01  4.234e-01   0.587  0.55702    
env.bio_11        1.637e+00  5.830e-01   2.808  0.00498 ** 
env.bio_12        1.938e+00  1.807e+00   1.072  0.28351    
env.bio_13       -2.599e+00  1.244e+00  -2.090  0.03664 *  
env.bio_14        1.377e+01  7.090e+00   1.943  0.05205 .  
env.bio_15        2.382e+04  8.986e+05   0.027  0.97885    
env.bio_16       -3.994e+04  1.506e+06  -0.027  0.97885    
env.bio_17       -3.394e+04  1.280e+06  -0.027  0.97885    
env.bio_18       -7.905e-01  8.638e-01  -0.915  0.36009    
env.bio_19       -5.695e-01  1.034e+00  -0.551  0.58169    
env.elev          4.861e-01  7.869e-01   0.618  0.53676    
env.urban         1.221e+00  3.026e-01   4.036 5.45e-05 ***
env.barren       -2.411e+02  6.152e+02  -0.392  0.69511    
env.water        -2.108e-01  4.440e-01  -0.475  0.63489    
env.savanna      -3.835e-01  2.229e-01  -1.721  0.08528 .  
env.woodysavanna  2.633e-01  2.205e-01   1.194  0.23252    
env.wetland      -4.071e-01  1.948e-01  -2.090  0.03659 *  
env.grass        -4.602e-01  2.964e-01  -1.552  0.12057    
env.npp           6.727e-01  2.610e-01   2.578  0.00994 ** 
env.tree         -5.638e-01  4.962e-01  -1.136  0.25593    
env.nontree       5.172e-01  4.647e-01   1.113  0.26576    
env.nonveg        1.916e-01  5.500e-01   0.348  0.72750    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 759.39  on 558  degrees of freedom
Residual deviance: 521.20  on 527  degrees of freedom
AIC: 585.2

Number of Fisher Scoring iterations: 14
Code
step(glm.full) # step might not work with gam so glm
Start:  AIC=585.2
presabs ~ env.bio_1 + env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + 
    env.bio_6 + env.bio_7 + env.bio_8 + env.bio_9 + env.bio_10 + 
    env.bio_11 + env.bio_12 + env.bio_13 + env.bio_14 + env.bio_15 + 
    env.bio_16 + env.bio_17 + env.bio_18 + env.bio_19 + env.elev + 
    env.urban + env.barren + env.water + env.savanna + env.woodysavanna + 
    env.wetland + env.grass + env.npp + env.tree + env.nontree + 
    env.nonveg

                   Df Deviance    AIC
- env.bio_15        1   521.20 583.20
- env.bio_17        1   521.20 583.20
- env.bio_16        1   521.20 583.20
- env.bio_5         1   521.21 583.21
- env.bio_9         1   521.28 583.28
- env.nonveg        1   521.32 583.32
- env.water         1   521.43 583.43
- env.bio_2         1   521.47 583.47
- env.bio_19        1   521.51 583.51
- env.bio_10        1   521.54 583.54
- env.elev          1   521.58 583.58
- env.bio_18        1   522.05 584.05
- env.bio_12        1   522.35 584.35
- env.nontree       1   522.44 584.44
- env.tree          1   522.48 584.48
- env.barren        1   522.48 584.48
- env.woodysavanna  1   522.64 584.64
<none>                  521.20 585.20
- env.grass         1   523.65 585.65
- env.bio_1         1   523.67 585.67
- env.bio_8         1   523.74 585.74
- env.bio_6         1   524.15 586.15
- env.savanna       1   524.26 586.26
- env.bio_14        1   525.11 587.11
- env.bio_13        1   525.82 587.82
- env.bio_4         1   526.04 588.04
- env.bio_3         1   527.49 589.49
- env.npp           1   528.12 590.12
- env.wetland       1   528.58 590.58
- env.bio_11        1   530.41 592.41
- env.bio_7         1   538.19 600.19
- env.urban         1   541.70 603.70

Step:  AIC=583.2
presabs ~ env.bio_1 + env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + 
    env.bio_6 + env.bio_7 + env.bio_8 + env.bio_9 + env.bio_10 + 
    env.bio_11 + env.bio_12 + env.bio_13 + env.bio_14 + env.bio_16 + 
    env.bio_17 + env.bio_18 + env.bio_19 + env.elev + env.urban + 
    env.barren + env.water + env.savanna + env.woodysavanna + 
    env.wetland + env.grass + env.npp + env.tree + env.nontree + 
    env.nonveg

                   Df Deviance    AIC
- env.bio_5         1   521.22 581.22
- env.bio_9         1   521.28 581.28
- env.nonveg        1   521.32 581.32
- env.water         1   521.43 581.43
- env.bio_2         1   521.47 581.47
- env.bio_19        1   521.51 581.51
- env.bio_10        1   521.54 581.54
- env.elev          1   521.58 581.58
- env.bio_18        1   522.05 582.05
- env.bio_12        1   522.37 582.37
- env.nontree       1   522.44 582.44
- env.barren        1   522.49 582.49
- env.tree          1   522.49 582.49
- env.woodysavanna  1   522.66 582.66
<none>                  521.20 583.20
- env.grass         1   523.65 583.65
- env.bio_1         1   523.67 583.67
- env.bio_8         1   523.76 583.76
- env.bio_6         1   524.15 584.15
- env.savanna       1   524.26 584.26
- env.bio_17        1   524.44 584.44
- env.bio_14        1   525.13 585.13
- env.bio_13        1   525.95 585.95
- env.bio_4         1   526.13 586.13
- env.bio_16        1   526.17 586.17
- env.bio_3         1   527.53 587.53
- env.npp           1   528.12 588.12
- env.wetland       1   528.59 588.59
- env.bio_11        1   530.41 590.41
- env.bio_7         1   538.43 598.43
- env.urban         1   541.77 601.77

Step:  AIC=581.22
presabs ~ env.bio_1 + env.bio_2 + env.bio_3 + env.bio_4 + env.bio_6 + 
    env.bio_7 + env.bio_8 + env.bio_9 + env.bio_10 + env.bio_11 + 
    env.bio_12 + env.bio_13 + env.bio_14 + env.bio_16 + env.bio_17 + 
    env.bio_18 + env.bio_19 + env.elev + env.urban + env.barren + 
    env.water + env.savanna + env.woodysavanna + env.wetland + 
    env.grass + env.npp + env.tree + env.nontree + env.nonveg

                   Df Deviance    AIC
- env.bio_9         1   521.29 579.29
- env.nonveg        1   521.33 579.33
- env.water         1   521.46 579.46
- env.bio_2         1   521.50 579.50
- env.bio_10        1   521.55 579.55
- env.bio_19        1   521.55 579.55
- env.elev          1   521.58 579.58
- env.bio_18        1   522.09 580.09
- env.barren        1   522.50 580.50
- env.tree          1   522.50 580.50
- env.nontree       1   522.53 580.53
- env.bio_12        1   522.55 580.55
- env.woodysavanna  1   522.66 580.66
<none>                  521.22 581.22
- env.grass         1   523.71 581.71
- env.bio_1         1   523.72 581.72
- env.bio_6         1   524.18 582.18
- env.savanna       1   524.29 582.29
- env.bio_17        1   524.72 582.72
- env.bio_14        1   525.14 583.14
- env.bio_8         1   526.10 584.10
- env.bio_13        1   526.12 584.12
- env.bio_4         1   526.13 584.13
- env.bio_16        1   526.24 584.24
- env.bio_3         1   527.55 585.55
- env.npp           1   528.13 586.13
- env.wetland       1   528.60 586.60
- env.bio_11        1   530.56 588.56
- env.bio_7         1   538.93 596.93
- env.urban         1   541.77 599.77

Step:  AIC=579.29
presabs ~ env.bio_1 + env.bio_2 + env.bio_3 + env.bio_4 + env.bio_6 + 
    env.bio_7 + env.bio_8 + env.bio_10 + env.bio_11 + env.bio_12 + 
    env.bio_13 + env.bio_14 + env.bio_16 + env.bio_17 + env.bio_18 + 
    env.bio_19 + env.elev + env.urban + env.barren + env.water + 
    env.savanna + env.woodysavanna + env.wetland + env.grass + 
    env.npp + env.tree + env.nontree + env.nonveg

                   Df Deviance    AIC
- env.nonveg        1   521.41 577.41
- env.water         1   521.53 577.53
- env.bio_2         1   521.53 577.53
- env.bio_19        1   521.61 577.61
- env.bio_10        1   521.63 577.63
- env.elev          1   521.69 577.69
- env.bio_18        1   522.21 578.21
- env.nontree       1   522.59 578.59
- env.barren        1   522.60 578.60
- env.tree          1   522.63 578.63
- env.woodysavanna  1   522.74 578.74
- env.bio_12        1   522.89 578.89
<none>                  521.29 579.29
- env.grass         1   523.96 579.96
- env.bio_1         1   524.12 580.12
- env.savanna       1   524.57 580.57
- env.bio_14        1   525.26 581.26
- env.bio_17        1   525.51 581.51
- env.bio_13        1   526.28 582.28
- env.bio_8         1   526.34 582.34
- env.bio_4         1   526.57 582.57
- env.bio_16        1   526.62 582.62
- env.bio_3         1   527.73 583.73
- env.wetland       1   528.62 584.62
- env.npp           1   528.81 584.81
- env.bio_11        1   531.43 587.43
- env.bio_6         1   532.97 588.97
- env.bio_7         1   539.43 595.43
- env.urban         1   541.77 597.77

Step:  AIC=577.41
presabs ~ env.bio_1 + env.bio_2 + env.bio_3 + env.bio_4 + env.bio_6 + 
    env.bio_7 + env.bio_8 + env.bio_10 + env.bio_11 + env.bio_12 + 
    env.bio_13 + env.bio_14 + env.bio_16 + env.bio_17 + env.bio_18 + 
    env.bio_19 + env.elev + env.urban + env.barren + env.water + 
    env.savanna + env.woodysavanna + env.wetland + env.grass + 
    env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.water         1   521.60 575.60
- env.bio_2         1   521.63 575.63
- env.elev          1   521.77 575.77
- env.bio_10        1   521.78 575.78
- env.bio_19        1   521.79 575.79
- env.bio_18        1   522.37 576.37
- env.barren        1   522.62 576.62
- env.tree          1   522.86 576.86
- env.bio_12        1   522.90 576.90
- env.woodysavanna  1   522.96 576.96
<none>                  521.41 577.41
- env.nontree       1   523.97 577.97
- env.grass         1   523.99 577.99
- env.bio_1         1   524.15 578.15
- env.savanna       1   524.57 578.57
- env.bio_14        1   525.26 579.26
- env.bio_17        1   525.53 579.53
- env.bio_13        1   526.29 580.29
- env.bio_8         1   526.48 580.48
- env.bio_4         1   526.68 580.68
- env.bio_16        1   526.68 580.68
- env.bio_3         1   527.73 581.73
- env.wetland       1   528.66 582.66
- env.npp           1   529.18 583.18
- env.bio_11        1   531.76 585.76
- env.bio_6         1   533.23 587.23
- env.bio_7         1   539.52 593.52
- env.urban         1   541.77 595.77

Step:  AIC=575.6
presabs ~ env.bio_1 + env.bio_2 + env.bio_3 + env.bio_4 + env.bio_6 + 
    env.bio_7 + env.bio_8 + env.bio_10 + env.bio_11 + env.bio_12 + 
    env.bio_13 + env.bio_14 + env.bio_16 + env.bio_17 + env.bio_18 + 
    env.bio_19 + env.elev + env.urban + env.barren + env.savanna + 
    env.woodysavanna + env.wetland + env.grass + env.npp + env.tree + 
    env.nontree

                   Df Deviance    AIC
- env.bio_2         1   521.82 573.82
- env.elev          1   521.93 573.93
- env.bio_10        1   521.95 573.95
- env.bio_19        1   521.97 573.97
- env.bio_18        1   522.54 574.54
- env.barren        1   522.87 574.87
- env.bio_12        1   523.18 575.18
- env.woodysavanna  1   523.20 575.20
<none>                  521.60 575.60
- env.grass         1   524.11 576.11
- env.bio_1         1   524.33 576.33
- env.savanna       1   524.69 576.69
- env.nontree       1   524.72 576.72
- env.tree          1   525.26 577.26
- env.bio_14        1   525.51 577.51
- env.bio_17        1   525.83 577.83
- env.bio_13        1   526.51 578.51
- env.bio_8         1   526.65 578.65
- env.bio_4         1   526.86 578.86
- env.bio_16        1   526.92 578.92
- env.bio_3         1   527.96 579.96
- env.wetland       1   528.66 580.66
- env.npp           1   530.15 582.15
- env.bio_11        1   531.84 583.84
- env.bio_6         1   533.35 585.35
- env.bio_7         1   539.71 591.71
- env.urban         1   542.21 594.21

Step:  AIC=573.82
presabs ~ env.bio_1 + env.bio_3 + env.bio_4 + env.bio_6 + env.bio_7 + 
    env.bio_8 + env.bio_10 + env.bio_11 + env.bio_12 + env.bio_13 + 
    env.bio_14 + env.bio_16 + env.bio_17 + env.bio_18 + env.bio_19 + 
    env.elev + env.urban + env.barren + env.savanna + env.woodysavanna + 
    env.wetland + env.grass + env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.bio_10        1   522.09 572.09
- env.bio_19        1   522.14 572.14
- env.elev          1   522.25 572.25
- env.bio_18        1   522.72 572.72
- env.barren        1   523.13 573.13
- env.woodysavanna  1   523.30 573.30
- env.bio_12        1   523.81 573.81
<none>                  521.82 573.82
- env.grass         1   524.40 574.40
- env.bio_1         1   524.88 574.88
- env.savanna       1   524.95 574.95
- env.nontree       1   524.98 574.98
- env.tree          1   526.08 576.08
- env.bio_8         1   526.86 576.86
- env.bio_4         1   526.91 576.91
- env.bio_13        1   527.33 577.33
- env.bio_14        1   527.50 577.50
- env.bio_17        1   528.16 578.16
- env.bio_16        1   528.49 578.49
- env.wetland       1   528.79 578.79
- env.bio_3         1   529.03 579.03
- env.npp           1   530.20 580.20
- env.bio_11        1   531.85 581.85
- env.bio_6         1   534.22 584.22
- env.bio_7         1   540.47 590.47
- env.urban         1   542.56 592.56

Step:  AIC=572.09
presabs ~ env.bio_1 + env.bio_3 + env.bio_4 + env.bio_6 + env.bio_7 + 
    env.bio_8 + env.bio_11 + env.bio_12 + env.bio_13 + env.bio_14 + 
    env.bio_16 + env.bio_17 + env.bio_18 + env.bio_19 + env.elev + 
    env.urban + env.barren + env.savanna + env.woodysavanna + 
    env.wetland + env.grass + env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.bio_19        1   522.41 570.41
- env.elev          1   522.52 570.52
- env.bio_18        1   522.87 570.87
- env.barren        1   523.44 571.44
- env.woodysavanna  1   523.67 571.67
<none>                  522.09 572.09
- env.bio_12        1   524.59 572.59
- env.grass         1   524.62 572.62
- env.bio_1         1   524.94 572.94
- env.savanna       1   525.15 573.15
- env.nontree       1   525.15 573.15
- env.tree          1   526.39 574.39
- env.bio_4         1   526.95 574.95
- env.bio_8         1   527.58 575.58
- env.bio_13        1   527.77 575.77
- env.bio_14        1   528.33 576.33
- env.bio_3         1   529.21 577.21
- env.wetland       1   529.24 577.24
- env.bio_16        1   530.19 578.19
- env.npp           1   530.57 578.57
- env.bio_17        1   532.08 580.08
- env.bio_11        1   533.88 581.88
- env.bio_6         1   534.26 582.26
- env.bio_7         1   540.52 588.52
- env.urban         1   544.97 592.97

Step:  AIC=570.41
presabs ~ env.bio_1 + env.bio_3 + env.bio_4 + env.bio_6 + env.bio_7 + 
    env.bio_8 + env.bio_11 + env.bio_12 + env.bio_13 + env.bio_14 + 
    env.bio_16 + env.bio_17 + env.bio_18 + env.elev + env.urban + 
    env.barren + env.savanna + env.woodysavanna + env.wetland + 
    env.grass + env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.elev          1   522.86 568.86
- env.bio_18        1   522.89 568.89
- env.barren        1   523.86 569.86
- env.woodysavanna  1   523.99 569.99
<none>                  522.41 570.41
- env.bio_12        1   524.75 570.75
- env.grass         1   524.86 570.86
- env.nontree       1   525.39 571.39
- env.savanna       1   525.58 571.58
- env.bio_1         1   526.32 572.32
- env.tree          1   526.49 572.49
- env.bio_4         1   527.45 573.45
- env.bio_13        1   527.78 573.78
- env.bio_8         1   528.02 574.02
- env.wetland       1   529.35 575.35
- env.bio_14        1   529.66 575.66
- env.bio_3         1   530.82 576.82
- env.npp           1   531.40 577.40
- env.bio_17        1   533.01 579.01
- env.bio_16        1   534.03 580.03
- env.bio_11        1   534.26 580.26
- env.bio_6         1   535.52 581.52
- env.bio_7         1   542.02 588.02
- env.urban         1   545.54 591.54

Step:  AIC=568.86
presabs ~ env.bio_1 + env.bio_3 + env.bio_4 + env.bio_6 + env.bio_7 + 
    env.bio_8 + env.bio_11 + env.bio_12 + env.bio_13 + env.bio_14 + 
    env.bio_16 + env.bio_17 + env.bio_18 + env.urban + env.barren + 
    env.savanna + env.woodysavanna + env.wetland + env.grass + 
    env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.bio_18        1   523.21 567.21
- env.woodysavanna  1   524.42 568.42
- env.barren        1   524.44 568.44
<none>                  522.86 568.86
- env.bio_12        1   525.07 569.07
- env.grass         1   525.33 569.33
- env.savanna       1   525.93 569.93
- env.nontree       1   525.93 569.93
- env.bio_1         1   526.47 570.47
- env.tree          1   527.11 571.11
- env.bio_4         1   527.90 571.90
- env.bio_13        1   528.02 572.02
- env.bio_8         1   528.18 572.18
- env.wetland       1   529.60 573.60
- env.bio_14        1   529.67 573.67
- env.bio_3         1   530.87 574.87
- env.npp           1   531.67 575.67
- env.bio_17        1   533.42 577.42
- env.bio_11        1   535.34 579.34
- env.bio_16        1   535.42 579.42
- env.bio_6         1   535.54 579.54
- env.bio_7         1   542.08 586.08
- env.urban         1   546.15 590.15

Step:  AIC=567.21
presabs ~ env.bio_1 + env.bio_3 + env.bio_4 + env.bio_6 + env.bio_7 + 
    env.bio_8 + env.bio_11 + env.bio_12 + env.bio_13 + env.bio_14 + 
    env.bio_16 + env.bio_17 + env.urban + env.barren + env.savanna + 
    env.woodysavanna + env.wetland + env.grass + env.npp + env.tree + 
    env.nontree

                   Df Deviance    AIC
- env.woodysavanna  1   524.68 566.68
- env.barren        1   524.81 566.81
<none>                  523.21 567.21
- env.bio_12        1   525.45 567.45
- env.grass         1   525.96 567.96
- env.savanna       1   526.35 568.35
- env.bio_1         1   526.72 568.72
- env.nontree       1   526.82 568.82
- env.bio_4         1   528.04 570.04
- env.tree          1   528.10 570.10
- env.bio_8         1   528.29 570.29
- env.bio_13        1   528.86 570.86
- env.bio_14        1   529.68 571.68
- env.wetland       1   530.34 572.34
- env.bio_3         1   530.87 572.87
- env.npp           1   531.79 573.79
- env.bio_17        1   533.43 575.43
- env.bio_16        1   535.71 577.71
- env.bio_6         1   535.79 577.79
- env.bio_11        1   536.53 578.53
- env.bio_7         1   542.15 584.15
- env.urban         1   546.25 588.25

Step:  AIC=566.68
presabs ~ env.bio_1 + env.bio_3 + env.bio_4 + env.bio_6 + env.bio_7 + 
    env.bio_8 + env.bio_11 + env.bio_12 + env.bio_13 + env.bio_14 + 
    env.bio_16 + env.bio_17 + env.urban + env.barren + env.savanna + 
    env.wetland + env.grass + env.npp + env.tree + env.nontree

              Df Deviance    AIC
- env.barren   1   526.66 566.66
<none>             524.68 566.68
- env.bio_12   1   527.02 567.02
- env.bio_1    1   528.20 568.20
- env.nontree  1   528.71 568.71
- env.grass    1   529.64 569.64
- env.bio_4    1   530.65 570.65
- env.bio_8    1   530.70 570.70
- env.bio_13   1   530.87 570.87
- env.bio_14   1   530.91 570.91
- env.savanna  1   530.95 570.95
- env.tree     1   531.65 571.65
- env.bio_3    1   532.22 572.22
- env.npp      1   532.43 572.43
- env.wetland  1   533.81 573.81
- env.bio_17   1   534.72 574.72
- env.bio_6    1   536.29 576.29
- env.bio_16   1   536.73 576.73
- env.bio_11   1   537.95 577.95
- env.bio_7    1   543.63 583.63
- env.urban    1   547.30 587.30

Step:  AIC=566.66
presabs ~ env.bio_1 + env.bio_3 + env.bio_4 + env.bio_6 + env.bio_7 + 
    env.bio_8 + env.bio_11 + env.bio_12 + env.bio_13 + env.bio_14 + 
    env.bio_16 + env.bio_17 + env.urban + env.savanna + env.wetland + 
    env.grass + env.npp + env.tree + env.nontree

              Df Deviance    AIC
<none>             526.66 566.66
- env.bio_12   1   528.73 566.73
- env.bio_1    1   529.73 567.73
- env.grass    1   531.26 569.26
- env.nontree  1   532.11 570.11
- env.savanna  1   532.18 570.18
- env.bio_14   1   532.63 570.63
- env.bio_4    1   532.63 570.63
- env.bio_8    1   532.74 570.74
- env.bio_13   1   532.78 570.78
- env.tree     1   533.11 571.11
- env.bio_3    1   534.08 572.08
- env.wetland  1   535.70 573.70
- env.bio_17   1   536.28 574.28
- env.bio_6    1   537.96 575.96
- env.npp      1   538.23 576.23
- env.bio_11   1   540.01 578.01
- env.bio_16   1   540.47 578.47
- env.bio_7    1   545.31 583.31
- env.urban    1   550.50 588.50

Call:  glm(formula = presabs ~ env.bio_1 + env.bio_3 + env.bio_4 + env.bio_6 + 
    env.bio_7 + env.bio_8 + env.bio_11 + env.bio_12 + env.bio_13 + 
    env.bio_14 + env.bio_16 + env.bio_17 + env.urban + env.savanna + 
    env.wetland + env.grass + env.npp + env.tree + env.nontree, 
    family = "binomial", data = presabs.glm)

Coefficients:
(Intercept)    env.bio_1    env.bio_3    env.bio_4    env.bio_6    env.bio_7  
    -1.2128     -10.8305      27.4563      -4.7145      -2.2691      -2.9086  
  env.bio_8   env.bio_11   env.bio_12   env.bio_13   env.bio_14   env.bio_16  
     3.8727       1.5414       2.1612      -2.7013      10.0441     -13.1920  
 env.bio_17    env.urban  env.savanna  env.wetland    env.grass      env.npp  
    -8.6567       1.1790      -0.4522      -0.4013      -0.5579       0.7006  
   env.tree  env.nontree  
    -0.6656       0.6079  

Degrees of Freedom: 558 Total (i.e. Null);  539 Residual
Null Deviance:      759.4 
Residual Deviance: 526.7    AIC: 566.7

Boosted regression trees

Boosted regression trees were fitted using packages: gbm and dismo — specifically the gbm.step() function (Hijmans et al., 2017)

Code
# cross-validation optimisation of a boosted regression tree model 
brt <- gbm.step(data = PA, 
                 gbm.x = 6:ncol(PA), 
                 gbm.y = "presabs", 
                 family = "bernoulli")

 
 GBM STEP - version 2.9 
 
Performing cross-validation optimisation of a boosted regression tree model 
for NA and using a family of bernoulli 
Using 565 observations and 31 predictors 
creating 10 initial models of 50 trees 

 folds are stratified by prevalence 
total mean deviance =  1.3602 
tolerance is fixed at  0.0014 
ntrees resid. dev. 
50    1.2522 
now adding trees... 
100   1.1864 
150   1.1448 
200   1.1214 
250   1.1071 
300   1.0936 
350   1.081 
400   1.0705 
450   1.0627 
500   1.0556 
550   1.0495 
600   1.0452 
650   1.0395 
700   1.0349 
750   1.0317 
800   1.0282 
850   1.0259 
900   1.0229 
950   1.0211 
1000   1.018 
1050   1.0162 
1100   1.0148 
1150   1.0133 
1200   1.0121 
1250   1.0091 
1300   1.0073 
1350   1.0063 
1400   1.0051 
1450   1.0038 
1500   1.003 
1550   1.0012 
1600   1.0001 
1650   0.9986 
1700   0.9974 
1750   0.9964 
1800   0.9955 
1850   0.9948 
1900   0.9929 
1950   0.9934 
2000   0.9929 
2050   0.9926 
2100   0.9913 
2150   0.9898 
2200   0.9902 
2250   0.9891 
2300   0.9883 
2350   0.9883 
2400   0.9876 
2450   0.9871 
2500   0.9866 
2550   0.9857 
2600   0.9867 
2650   0.9863 
2700   0.9858 
2750   0.9857 
2800   0.9858 
2850   0.986 
2900   0.9856 
2950   0.9851 
3000   0.9861 
3050   0.9873 
3100   0.9873 
3150   0.9863 


mean total deviance = 1.36 
mean residual deviance = 0.703 
 
estimated cv deviance = 0.985 ; se = 0.028 
 
training data correlation = 0.761 
cv correlation =  0.574 ; se = 0.016 
 
training data AUC score = 0.938 
cv AUC score = 0.83 ; se = 0.01 
 
elapsed time -  0.16 minutes 
Code
summary(brt)

                              var    rel.inf
env.tree                 env.tree 10.0299644
env.urban               env.urban  7.5111653
env.npp                   env.npp  7.4734145
env.bio_19             env.bio_19  7.3340558
env.bio_15             env.bio_15  6.5204476
env.bio_17             env.bio_17  5.7097991
env.bio_7               env.bio_7  5.4923361
env.bio_13             env.bio_13  5.3982862
env.bio_16             env.bio_16  5.3331750
env.grass               env.grass  5.1821453
env.bio_10             env.bio_10  3.8833683
env.bio_3               env.bio_3  3.2658389
env.bio_1               env.bio_1  3.0814506
env.elev                 env.elev  2.7462432
env.bio_6               env.bio_6  2.6768487
env.savanna           env.savanna  2.5404933
env.bio_5               env.bio_5  2.3301520
env.woodysavanna env.woodysavanna  2.0849750
env.bio_14             env.bio_14  1.9429295
env.nonveg             env.nonveg  1.6855494
env.bio_18             env.bio_18  1.6322938
env.bio_4               env.bio_4  1.4612438
env.bio_12             env.bio_12  1.4372397
env.bio_9               env.bio_9  0.8189502
env.bio_8               env.bio_8  0.7404866
env.wetland           env.wetland  0.6623812
env.bio_11             env.bio_11  0.4641735
env.bio_2               env.bio_2  0.3871408
env.nontree           env.nontree  0.1734525
env.barren             env.barren  0.0000000
env.water               env.water  0.0000000
Code
variables_brt <- brt$contributions[1:6,] %>% pull(var)
#exploration of shape of relationships
#gbm.plot(brt, n.plots = 12, plot.layout=c(6, 2))

Random forest

Code
presabs.rf <- PA %>% 
  dplyr::select(-c(1,2,3,5)) %>% 
  mutate(presabs = as.factor(presabs))

rf <- randomForest(presabs ~ .,
                   data=presabs.rf,
                   importance=T,
                   nperm=2, # two permutations per tree to estimate importance
                   na.action=na.omit,
                   mtry= 1/3*ncol(presabs.rf)-1)

varImpPlot(rf, type=2)

Code
variables_rf <- rf$importance %>% as_tibble(rownames = 'var') %>% arrange(desc(MeanDecreaseGini)) %>% head(n=6) %>% pull(var)

Ranger

Code
presabs.ranger <- PA %>% 
  dplyr::select(-c(1,2,3,5)) %>% 
  filter(!if_any(everything(), is.na)) %>% 
  mutate(presabs = as.factor(presabs))

## Learn the model:
ranger <- ranger(presabs ~ ., 
                 data = presabs.ranger,
                 num.trees = 150,
                 mtry = 1/3*ncol(presabs.ranger)-1,
                 min.node.size = 5,
                 max.depth = NULL,
                 write.forest = TRUE,
                 importance = "impurity")


# Get the variable importance
importance(ranger)
       env.bio_1        env.bio_2        env.bio_3        env.bio_4 
      11.4866155        6.4421674       15.6746082       10.6558984 
       env.bio_5        env.bio_6        env.bio_7        env.bio_8 
       7.8839045        5.9419526        7.4317895        8.4013731 
       env.bio_9       env.bio_10       env.bio_11       env.bio_12 
       6.0391354       11.1125221        5.8173381        7.1467652 
      env.bio_13       env.bio_14       env.bio_15       env.bio_16 
       9.5942731       10.4530989       10.3222644       13.9337983 
      env.bio_17       env.bio_18       env.bio_19         env.elev 
      14.8842593        7.4406250       18.3120989        8.6122978 
       env.urban       env.barren        env.water      env.savanna 
      10.0885256        0.2394952        0.5178292        6.2253823 
env.woodysavanna      env.wetland        env.grass          env.npp 
       5.2934251        1.7176239        5.0663925        6.2539165 
        env.tree      env.nontree       env.nonveg 
      12.5672480        7.2960651        6.4150878 
Code
importance(ranger) %>% 
  as.data.frame(row.names = names(.)) %>% 
  setNames(c("Importance")) %>% 
  rownames_to_column("covariate") %>% 
  # mutate(covariate = case_when(
  #   covariate == "env.bio_1" ~ "Annual Mean Temperature",
  # )) %>% 
  ggplot(aes(x = Importance, y = reorder(covariate, Importance))) +
  ylab('')+
  geom_point() + theme_bw()

Code
variables_ranger <- importance(ranger) %>% as_tibble(rownames = 'var') %>% arrange(desc(value)) %>% head(n=6) %>% pull(var)

Correlation

Correlation between the six more important variables detected.

  • Boosted regression tree: env.tree, env.urban, env.npp, env.bio_19, env.bio_15, env.bio_17
  • Random forest: env.bio_19, env.bio_16, env.bio_3, env.tree, env.bio_17, env.bio_10
  • Ranger: env.bio_19, env.bio_3, env.bio_17, env.bio_16, env.tree, env.bio_1
Code
selectedVariables <- unique(c(variables_brt, variables_rf, variables_ranger))

PA %>% 
  filter(!if_any(everything(), is.na)) %>% 
  dplyr::select(selectedVariables) %>% 
  pairs()

Code
PA %>% 
  filter(!if_any(everything(), is.na)) %>% 
  dplyr::select(selectedVariables)  %>% 
  cor() %>% kable()
env.tree env.urban env.npp env.bio_19 env.bio_15 env.bio_17 env.bio_16 env.bio_3 env.bio_10 env.bio_1
env.tree 1.0000000 -0.0366332 -0.0468240 0.2748842 0.0503882 -0.4936629 0.4202314 0.2510269 -0.0288362 0.2241057
env.urban -0.0366332 1.0000000 0.1344147 -0.2207150 -0.2740025 -0.0078816 -0.1491519 -0.1778445 0.2582501 -0.2201133
env.npp -0.0468240 0.1344147 1.0000000 -0.4089540 -0.6102193 -0.0198950 -0.3303117 -0.4287304 0.2583383 -0.5423448
env.bio_19 0.2748842 -0.2207150 -0.4089540 1.0000000 0.7072778 -0.6692034 0.9320639 0.9351986 -0.3385074 0.9064849
env.bio_15 0.0503882 -0.2740025 -0.6102193 0.7072778 1.0000000 -0.0543381 0.6102757 0.7284579 -0.4429341 0.8361199
env.bio_17 -0.4936629 -0.0078816 -0.0198950 -0.6692034 -0.0543381 1.0000000 -0.8241800 -0.6805953 -0.0648619 -0.5533539
env.bio_16 0.4202314 -0.1491519 -0.3303117 0.9320639 0.6102757 -0.8241800 1.0000000 0.9531144 -0.1997582 0.9132283
env.bio_3 0.2510269 -0.1778445 -0.4287304 0.9351986 0.7284579 -0.6805953 0.9531144 1.0000000 -0.2194668 0.9683961
env.bio_10 -0.0288362 0.2582501 0.2583383 -0.3385074 -0.4429341 -0.0648619 -0.1997582 -0.2194668 1.0000000 -0.2171595
env.bio_1 0.2241057 -0.2201133 -0.5423448 0.9064849 0.8361199 -0.5533539 0.9132283 0.9683961 -0.2171595 1.0000000
Code
tmpFiles(remove=T)