Leopardus wiedii Variable Selection

Author

Florencia Grattarola

Published

October 1, 2024

Variable Selection for Leopardus wiedii, 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()

Leopardus wiedii’ preferences

We will use the data from both periods

Code
PA_time1 <- readRDS('data/species_POPA_data/PA_lwiedii_time1_blobs.rds')%>% ungroup()
PA_time2 <- readRDS('data/species_POPA_data/PA_lwiedii_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 1 1769 days 2404 537081878 [m^2]
3 1 6222 days 11078 2241827859 [m^2]
4 1 720 days 1291 162791738 [m^2]
5 1 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 1 510 days 11095 2.229446e+09 [m^2]
2 1 150 days 12276 1.542295e+03 [m^2]
3 1 407 days 1585 1.049520e-01 [m^2]
4 1 869 days 1440 7.494574e+01 [m^2]
5 0 70 days 400 2.546836e+01 [m^2]
6 1 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  
-3.0457  -0.4784  -0.2840   0.2407   3.0053  

Coefficients:
                   Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -6.449e+00  1.675e+01  -0.385 0.700271    
env.bio_1         1.002e+01  7.765e+00   1.290 0.197053    
env.bio_2         1.655e+00  7.393e+00   0.224 0.822903    
env.bio_3        -3.063e+01  1.468e+01  -2.087 0.036920 *  
env.bio_4         6.742e-01  1.992e+00   0.338 0.735063    
env.bio_5        -1.125e+00  1.738e+00  -0.647 0.517424    
env.bio_6        -1.200e+00  1.901e+00  -0.631 0.528034    
env.bio_7         6.165e-01  6.734e-01   0.916 0.359888    
env.bio_8        -3.007e-01  2.204e+00  -0.136 0.891470    
env.bio_9         1.903e+00  2.260e+00   0.842 0.399948    
env.bio_10        1.153e+00  4.598e-01   2.508 0.012136 *  
env.bio_11       -7.415e-01  5.449e-01  -1.361 0.173618    
env.bio_12       -2.929e+00  2.293e+00  -1.277 0.201483    
env.bio_13        2.773e+00  1.597e+00   1.736 0.082553 .  
env.bio_14       -1.285e+01  7.998e+00  -1.607 0.108153    
env.bio_15        6.405e+05  1.262e+06   0.508 0.611708    
env.bio_16       -1.074e+06  2.115e+06  -0.508 0.611711    
env.bio_17       -9.123e+05  1.797e+06  -0.508 0.611712    
env.bio_18        2.068e+00  9.438e-01   2.191 0.028433 *  
env.bio_19        3.289e+00  1.170e+00   2.812 0.004929 ** 
env.elev          2.633e-01  9.947e-01   0.265 0.791259    
env.urban         6.511e-01  2.140e-01   3.043 0.002344 ** 
env.barren       -2.460e+01  8.456e+01  -0.291 0.771101    
env.water         6.383e-02  3.088e-01   0.207 0.836207    
env.savanna       3.281e-01  3.135e-01   1.046 0.295457    
env.woodysavanna  4.248e-01  2.672e-01   1.590 0.111873    
env.wetland       5.931e-02  1.900e-01   0.312 0.754930    
env.grass        -1.979e-01  4.952e-01  -0.400 0.689413    
env.npp           1.519e+00  3.907e-01   3.889 0.000101 ***
env.tree          2.681e-01  6.558e-01   0.409 0.682594    
env.nontree      -3.012e-01  5.858e-01  -0.514 0.607172    
env.nonveg        6.917e-02  7.274e-01   0.095 0.924246    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 646.18  on 558  degrees of freedom
Residual deviance: 395.05  on 527  degrees of freedom
AIC: 459.05

Number of Fisher Scoring iterations: 12
Code
step(glm.full) # step might not work with gam so glm
Start:  AIC=459.05
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.nonveg        1   395.06 457.06
- env.bio_8         1   395.07 457.07
- env.water         1   395.09 457.09
- env.bio_2         1   395.10 457.10
- env.elev          1   395.12 457.12
- env.wetland       1   395.14 457.14
- env.bio_4         1   395.16 457.16
- env.grass         1   395.21 457.21
- env.tree          1   395.21 457.21
- env.bio_17        1   395.31 457.31
- env.bio_16        1   395.31 457.31
- env.bio_15        1   395.31 457.31
- env.nontree       1   395.31 457.31
- env.barren        1   395.38 457.38
- env.bio_6         1   395.44 457.44
- env.bio_5         1   395.47 457.47
- env.bio_9         1   395.75 457.75
- env.bio_7         1   395.90 457.90
- env.savanna       1   396.17 458.17
- env.bio_12        1   396.69 458.69
- env.bio_1         1   396.73 458.73
- env.bio_11        1   397.02 459.02
<none>                  395.05 459.05
- env.woodysavanna  1   397.54 459.54
- env.bio_14        1   397.66 459.66
- env.bio_13        1   398.06 460.06
- env.bio_3         1   399.47 461.47
- env.bio_18        1   400.30 462.30
- env.bio_10        1   401.51 463.51
- env.bio_19        1   403.72 465.72
- env.urban         1   404.62 466.62
- env.npp           1   413.46 475.46

Step:  AIC=457.06
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

                   Df Deviance    AIC
- env.bio_8         1   395.07 455.07
- env.water         1   395.10 455.10
- env.bio_2         1   395.11 455.11
- env.elev          1   395.12 455.12
- env.wetland       1   395.15 455.15
- env.bio_4         1   395.17 455.17
- env.grass         1   395.21 455.21
- env.bio_17        1   395.32 455.32
- env.bio_16        1   395.32 455.32
- env.bio_15        1   395.32 455.32
- env.barren        1   395.39 455.39
- env.bio_6         1   395.47 455.47
- env.bio_5         1   395.49 455.49
- env.tree          1   395.53 455.53
- env.nontree       1   395.55 455.55
- env.bio_9         1   395.79 455.79
- env.bio_7         1   395.92 455.92
- env.savanna       1   396.22 456.22
- env.bio_1         1   396.83 456.83
- env.bio_12        1   396.97 456.97
- env.bio_11        1   397.02 457.02
<none>                  395.06 457.06
- env.woodysavanna  1   397.61 457.61
- env.bio_14        1   397.87 457.87
- env.bio_13        1   398.27 458.27
- env.bio_3         1   399.65 459.65
- env.bio_18        1   400.30 460.30
- env.bio_10        1   401.53 461.53
- env.bio_19        1   403.80 463.80
- env.urban         1   404.66 464.66
- env.npp           1   415.42 475.42

Step:  AIC=455.07
presabs ~ env.bio_1 + env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + 
    env.bio_6 + env.bio_7 + 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

                   Df Deviance    AIC
- env.water         1   395.12 453.12
- env.bio_2         1   395.12 453.12
- env.elev          1   395.12 453.12
- env.bio_4         1   395.18 453.18
- env.wetland       1   395.18 453.18
- env.grass         1   395.21 453.21
- env.bio_17        1   395.35 453.35
- env.bio_16        1   395.35 453.35
- env.bio_15        1   395.35 453.35
- env.barren        1   395.41 453.41
- env.bio_6         1   395.50 453.50
- env.tree          1   395.60 453.60
- env.nontree       1   395.65 453.65
- env.bio_9         1   395.88 453.88
- env.bio_7         1   395.92 453.92
- env.savanna       1   396.29 454.29
- env.bio_5         1   396.51 454.51
- env.bio_1         1   396.84 454.84
- env.bio_12        1   396.97 454.97
<none>                  395.07 455.07
- env.bio_11        1   397.09 455.09
- env.woodysavanna  1   397.61 455.61
- env.bio_14        1   397.87 455.87
- env.bio_13        1   398.34 456.34
- env.bio_3         1   399.65 457.65
- env.bio_18        1   400.31 458.31
- env.bio_10        1   401.53 459.53
- env.bio_19        1   403.82 461.82
- env.urban         1   404.71 462.71
- env.npp           1   415.96 473.96

Step:  AIC=453.12
presabs ~ env.bio_1 + env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + 
    env.bio_6 + env.bio_7 + 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.savanna + env.woodysavanna + env.wetland + 
    env.grass + env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.bio_2         1   395.17 451.17
- env.elev          1   395.18 451.18
- env.wetland       1   395.19 451.19
- env.bio_4         1   395.23 451.23
- env.grass         1   395.26 451.26
- env.bio_17        1   395.38 451.38
- env.bio_16        1   395.38 451.38
- env.bio_15        1   395.38 451.38
- env.barren        1   395.51 451.51
- env.bio_6         1   395.58 451.58
- env.nontree       1   395.81 451.81
- env.bio_9         1   395.96 451.96
- env.bio_7         1   395.98 451.98
- env.tree          1   396.11 452.11
- env.savanna       1   396.31 452.31
- env.bio_5         1   396.61 452.61
- env.bio_1         1   396.91 452.91
- env.bio_12        1   397.00 453.00
- env.bio_11        1   397.10 453.10
<none>                  395.12 453.12
- env.woodysavanna  1   397.64 453.64
- env.bio_14        1   397.97 453.97
- env.bio_13        1   398.34 454.34
- env.bio_3         1   399.78 455.78
- env.bio_18        1   400.35 456.35
- env.bio_10        1   401.69 457.69
- env.bio_19        1   403.83 459.83
- env.urban         1   404.72 460.72
- env.npp           1   416.84 472.84

Step:  AIC=451.17
presabs ~ env.bio_1 + env.bio_3 + env.bio_4 + env.bio_5 + env.bio_6 + 
    env.bio_7 + 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.savanna + env.woodysavanna + env.wetland + env.grass + 
    env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.elev          1   395.21 449.21
- env.wetland       1   395.23 449.23
- env.bio_4         1   395.25 449.25
- env.grass         1   395.30 449.30
- env.bio_17        1   395.45 449.45
- env.bio_16        1   395.45 449.45
- env.bio_15        1   395.45 449.45
- env.barren        1   395.56 449.56
- env.bio_6         1   395.63 449.63
- env.nontree       1   395.87 449.87
- env.bio_9         1   396.03 450.03
- env.bio_7         1   396.08 450.08
- env.tree          1   396.31 450.31
- env.savanna       1   396.40 450.40
- env.bio_5         1   396.64 450.64
- env.bio_11        1   397.10 451.10
- env.bio_1         1   397.14 451.14
<none>                  395.17 451.17
- env.bio_12        1   397.18 451.18
- env.woodysavanna  1   397.78 451.78
- env.bio_13        1   398.51 452.51
- env.bio_14        1   400.08 454.08
- env.bio_18        1   400.40 454.40
- env.bio_3         1   400.92 454.92
- env.bio_10        1   402.24 456.24
- env.bio_19        1   403.85 457.85
- env.urban         1   406.32 460.32
- env.npp           1   419.52 473.52

Step:  AIC=449.21
presabs ~ env.bio_1 + env.bio_3 + env.bio_4 + env.bio_5 + env.bio_6 + 
    env.bio_7 + 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.urban + env.barren + env.savanna + 
    env.woodysavanna + env.wetland + env.grass + env.npp + env.tree + 
    env.nontree

                   Df Deviance    AIC
- env.wetland       1   395.28 447.28
- env.bio_4         1   395.31 447.31
- env.grass         1   395.35 447.35
- env.bio_17        1   395.51 447.51
- env.bio_16        1   395.51 447.51
- env.bio_15        1   395.51 447.51
- env.barren        1   395.62 447.62
- env.bio_6         1   395.65 447.65
- env.nontree       1   395.87 447.87
- env.bio_9         1   396.06 448.06
- env.tree          1   396.36 448.36
- env.bio_7         1   396.40 448.40
- env.savanna       1   396.49 448.49
- env.bio_5         1   396.78 448.78
- env.bio_11        1   397.10 449.10
<none>                  395.21 449.21
- env.bio_12        1   397.28 449.28
- env.bio_1         1   397.38 449.38
- env.woodysavanna  1   397.84 449.84
- env.bio_13        1   398.62 450.62
- env.bio_18        1   400.60 452.60
- env.bio_14        1   400.71 452.71
- env.bio_3         1   401.24 453.24
- env.bio_10        1   402.25 454.25
- env.bio_19        1   403.93 455.93
- env.urban         1   406.50 458.50
- env.npp           1   420.09 472.09

Step:  AIC=447.28
presabs ~ env.bio_1 + env.bio_3 + env.bio_4 + env.bio_5 + env.bio_6 + 
    env.bio_7 + 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.urban + env.barren + env.savanna + 
    env.woodysavanna + env.grass + env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.bio_4         1   395.37 445.37
- env.grass         1   395.45 445.45
- env.bio_17        1   395.59 445.59
- env.bio_16        1   395.59 445.59
- env.bio_15        1   395.59 445.59
- env.barren        1   395.70 445.70
- env.bio_6         1   395.75 445.75
- env.nontree       1   395.91 445.91
- env.bio_9         1   396.18 446.18
- env.tree          1   396.46 446.46
- env.bio_7         1   396.49 446.49
- env.savanna       1   396.50 446.50
- env.bio_5         1   396.84 446.84
- env.bio_11        1   397.16 447.16
<none>                  395.28 447.28
- env.bio_12        1   397.31 447.31
- env.bio_1         1   397.50 447.50
- env.woodysavanna  1   397.85 447.85
- env.bio_13        1   398.62 448.62
- env.bio_18        1   400.66 450.66
- env.bio_14        1   400.91 450.91
- env.bio_3         1   401.46 451.46
- env.bio_10        1   402.35 452.35
- env.bio_19        1   403.93 453.93
- env.urban         1   406.51 456.51
- env.npp           1   421.56 471.56

Step:  AIC=445.37
presabs ~ env.bio_1 + env.bio_3 + env.bio_5 + env.bio_6 + env.bio_7 + 
    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.urban + env.barren + env.savanna + env.woodysavanna + 
    env.grass + env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.grass         1   395.56 443.56
- env.bio_17        1   395.75 443.75
- env.bio_16        1   395.75 443.75
- env.bio_15        1   395.75 443.75
- env.barren        1   395.77 443.77
- env.bio_6         1   395.93 443.93
- env.nontree       1   396.04 444.04
- env.tree          1   396.50 444.50
- env.bio_9         1   396.55 444.55
- env.savanna       1   396.56 444.56
- env.bio_7         1   396.63 444.63
- env.bio_11        1   397.20 445.20
<none>                  395.37 445.37
- env.bio_1         1   397.59 445.59
- env.woodysavanna  1   397.87 445.87
- env.bio_12        1   398.30 446.30
- env.bio_5         1   398.42 446.42
- env.bio_13        1   399.18 447.18
- env.bio_18        1   400.80 448.80
- env.bio_3         1   401.64 449.64
- env.bio_14        1   401.99 449.99
- env.bio_19        1   404.31 452.31
- env.bio_10        1   404.85 452.85
- env.urban         1   406.53 454.53
- env.npp           1   421.59 469.59

Step:  AIC=443.56
presabs ~ env.bio_1 + env.bio_3 + env.bio_5 + env.bio_6 + env.bio_7 + 
    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.urban + env.barren + env.savanna + env.woodysavanna + 
    env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.barren        1   395.97 441.97
- env.bio_17        1   395.98 441.98
- env.bio_16        1   395.98 441.98
- env.bio_15        1   395.98 441.98
- env.bio_6         1   396.15 442.15
- env.bio_9         1   396.80 442.80
- env.bio_7         1   397.01 443.01
- env.nontree       1   397.19 443.19
- env.bio_11        1   397.42 443.42
<none>                  395.56 443.56
- env.bio_1         1   397.66 443.66
- env.bio_12        1   398.39 444.39
- env.bio_5         1   398.79 444.79
- env.savanna       1   398.99 444.99
- env.woodysavanna  1   399.12 445.12
- env.tree          1   399.36 445.36
- env.bio_13        1   399.38 445.38
- env.bio_18        1   400.98 446.98
- env.bio_3         1   401.69 447.69
- env.bio_14        1   402.00 448.00
- env.bio_19        1   404.91 450.91
- env.bio_10        1   405.19 451.19
- env.urban         1   408.76 454.76
- env.npp           1   422.51 468.51

Step:  AIC=441.97
presabs ~ env.bio_1 + env.bio_3 + env.bio_5 + env.bio_6 + env.bio_7 + 
    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.urban + env.savanna + env.woodysavanna + 
    env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.bio_17        1   396.46 440.46
- env.bio_16        1   396.46 440.46
- env.bio_15        1   396.46 440.46
- env.bio_6         1   396.54 440.54
- env.bio_9         1   397.20 441.20
- env.bio_7         1   397.46 441.46
- env.nontree       1   397.54 441.54
- env.bio_11        1   397.77 441.77
<none>                  395.97 441.97
- env.bio_1         1   398.08 442.08
- env.bio_12        1   398.87 442.87
- env.bio_5         1   399.30 443.30
- env.savanna       1   399.46 443.46
- env.woodysavanna  1   399.53 443.53
- env.tree          1   399.68 443.68
- env.bio_13        1   399.80 443.80
- env.bio_18        1   401.50 445.50
- env.bio_3         1   401.97 445.97
- env.bio_14        1   402.28 446.28
- env.bio_19        1   405.38 449.38
- env.bio_10        1   405.46 449.46
- env.urban         1   409.63 453.63
- env.npp           1   425.83 469.83

Step:  AIC=440.46
presabs ~ env.bio_1 + env.bio_3 + env.bio_5 + env.bio_6 + env.bio_7 + 
    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_18 + env.bio_19 + 
    env.urban + env.savanna + env.woodysavanna + env.npp + env.tree + 
    env.nontree

                   Df Deviance    AIC
- env.bio_16        1   396.71 438.71
- env.bio_6         1   397.11 439.11
- env.bio_9         1   397.84 439.84
- env.bio_7         1   398.04 440.04
- env.nontree       1   398.08 440.08
- env.bio_11        1   398.32 440.32
<none>                  396.46 440.46
- env.bio_1         1   398.63 440.63
- env.bio_12        1   399.19 441.19
- env.bio_5         1   399.87 441.87
- env.bio_13        1   400.02 442.02
- env.savanna       1   400.06 442.06
- env.tree          1   400.12 442.12
- env.woodysavanna  1   400.27 442.27
- env.bio_18        1   402.04 444.04
- env.bio_3         1   402.69 444.69
- env.bio_14        1   403.02 445.02
- env.bio_15        1   404.05 446.05
- env.bio_19        1   405.81 447.81
- env.bio_10        1   406.17 448.17
- env.urban         1   409.72 451.72
- env.npp           1   426.16 468.16

Step:  AIC=438.71
presabs ~ env.bio_1 + env.bio_3 + env.bio_5 + env.bio_6 + env.bio_7 + 
    env.bio_9 + env.bio_10 + env.bio_11 + env.bio_12 + env.bio_13 + 
    env.bio_14 + env.bio_15 + env.bio_18 + env.bio_19 + env.urban + 
    env.savanna + env.woodysavanna + env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.bio_6         1   397.41 437.41
- env.bio_9         1   398.17 438.17
- env.bio_7         1   398.35 438.35
- env.nontree       1   398.45 438.45
<none>                  396.71 438.71
- env.bio_11        1   398.74 438.74
- env.bio_1         1   398.88 438.88
- env.bio_5         1   399.90 439.90
- env.savanna       1   400.25 440.25
- env.tree          1   400.27 440.27
- env.woodysavanna  1   400.30 440.30
- env.bio_13        1   401.24 441.24
- env.bio_12        1   401.63 441.63
- env.bio_18        1   402.11 442.11
- env.bio_14        1   403.26 443.26
- env.bio_3         1   403.78 443.78
- env.bio_15        1   404.74 444.74
- env.bio_19        1   405.91 445.91
- env.bio_10        1   406.42 446.42
- env.urban         1   409.73 449.73
- env.npp           1   426.78 466.78

Step:  AIC=437.41
presabs ~ env.bio_1 + env.bio_3 + env.bio_5 + env.bio_7 + env.bio_9 + 
    env.bio_10 + env.bio_11 + env.bio_12 + env.bio_13 + env.bio_14 + 
    env.bio_15 + env.bio_18 + env.bio_19 + env.urban + env.savanna + 
    env.woodysavanna + env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.bio_7         1   398.74 436.74
- env.bio_11        1   399.05 437.05
- env.nontree       1   399.19 437.19
- env.bio_9         1   399.30 437.30
<none>                  397.41 437.41
- env.bio_1         1   399.42 437.42
- env.bio_5         1   400.82 438.82
- env.savanna       1   400.96 438.96
- env.woodysavanna  1   400.98 438.98
- env.tree          1   401.27 439.27
- env.bio_13        1   401.67 439.67
- env.bio_12        1   401.82 439.82
- env.bio_18        1   402.29 440.29
- env.bio_14        1   403.56 441.56
- env.bio_3         1   404.01 442.01
- env.bio_15        1   405.04 443.04
- env.bio_19        1   406.29 444.29
- env.bio_10        1   407.91 445.91
- env.urban         1   410.67 448.67
- env.npp           1   429.75 467.75

Step:  AIC=436.74
presabs ~ env.bio_1 + env.bio_3 + env.bio_5 + env.bio_9 + env.bio_10 + 
    env.bio_11 + env.bio_12 + env.bio_13 + env.bio_14 + env.bio_15 + 
    env.bio_18 + env.bio_19 + env.urban + env.savanna + env.woodysavanna + 
    env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.bio_9         1   399.30 435.30
- env.bio_1         1   400.05 436.05
- env.nontree       1   400.14 436.14
<none>                  398.74 436.74
- env.bio_11        1   400.99 436.99
- env.bio_5         1   401.30 437.30
- env.savanna       1   402.11 438.11
- env.tree          1   402.93 438.93
- env.bio_12        1   402.95 438.95
- env.woodysavanna  1   403.20 439.20
- env.bio_14        1   403.87 439.87
- env.bio_18        1   404.38 440.38
- env.bio_3         1   404.47 440.47
- env.bio_15        1   406.32 442.32
- env.bio_13        1   406.86 442.86
- env.bio_19        1   409.51 445.51
- env.bio_10        1   409.67 445.67
- env.urban         1   411.94 447.94
- env.npp           1   436.25 472.25

Step:  AIC=435.3
presabs ~ env.bio_1 + env.bio_3 + env.bio_5 + env.bio_10 + env.bio_11 + 
    env.bio_12 + env.bio_13 + env.bio_14 + env.bio_15 + env.bio_18 + 
    env.bio_19 + env.urban + env.savanna + env.woodysavanna + 
    env.npp + env.tree + env.nontree

                   Df Deviance    AIC
- env.bio_1         1   400.20 434.20
- env.nontree       1   400.60 434.60
- env.bio_11        1   401.02 435.02
<none>                  399.30 435.30
- env.savanna       1   402.51 436.51
- env.bio_5         1   402.83 436.83
- env.woodysavanna  1   403.38 437.38
- env.bio_12        1   403.55 437.55
- env.bio_14        1   403.90 437.90
- env.bio_3         1   404.49 438.49
- env.tree          1   404.58 438.58
- env.bio_18        1   404.70 438.70
- env.bio_15        1   407.21 441.21
- env.bio_13        1   407.91 441.91
- env.bio_19        1   410.35 444.35
- env.urban         1   411.96 445.96
- env.bio_10        1   419.09 453.09
- env.npp           1   438.13 472.13

Step:  AIC=434.2
presabs ~ env.bio_3 + env.bio_5 + env.bio_10 + env.bio_11 + env.bio_12 + 
    env.bio_13 + env.bio_14 + env.bio_15 + env.bio_18 + env.bio_19 + 
    env.urban + env.savanna + env.woodysavanna + env.npp + env.tree + 
    env.nontree

                   Df Deviance    AIC
- env.nontree       1   401.87 433.87
- env.bio_11        1   401.99 433.99
<none>                  400.20 434.20
- env.savanna       1   402.77 434.77
- env.bio_5         1   403.07 435.07
- env.bio_12        1   403.55 435.55
- env.woodysavanna  1   403.91 435.91
- env.tree          1   404.66 436.66
- env.bio_18        1   406.41 438.41
- env.bio_15        1   407.57 439.57
- env.bio_13        1   407.93 439.93
- env.bio_14        1   408.05 440.05
- env.urban         1   411.98 443.98
- env.bio_19        1   413.17 445.17
- env.bio_3         1   414.85 446.85
- env.bio_10        1   419.61 451.61
- env.npp           1   439.78 471.78

Step:  AIC=433.87
presabs ~ env.bio_3 + env.bio_5 + env.bio_10 + env.bio_11 + env.bio_12 + 
    env.bio_13 + env.bio_14 + env.bio_15 + env.bio_18 + env.bio_19 + 
    env.urban + env.savanna + env.woodysavanna + env.npp + env.tree

                   Df Deviance    AIC
- env.bio_11        1   403.02 433.02
- env.savanna       1   403.36 433.36
<none>                  401.87 433.87
- env.bio_12        1   405.08 435.08
- env.woodysavanna  1   405.20 435.20
- env.tree          1   405.29 435.29
- env.bio_5         1   405.31 435.31
- env.bio_13        1   408.57 438.57
- env.bio_18        1   408.58 438.58
- env.bio_15        1   409.85 439.85
- env.bio_14        1   411.18 441.18
- env.urban         1   413.50 443.50
- env.bio_19        1   414.79 444.79
- env.bio_3         1   416.66 446.66
- env.bio_10        1   425.80 455.80
- env.npp           1   475.17 505.17

Step:  AIC=433.02
presabs ~ env.bio_3 + env.bio_5 + env.bio_10 + env.bio_12 + env.bio_13 + 
    env.bio_14 + env.bio_15 + env.bio_18 + env.bio_19 + env.urban + 
    env.savanna + env.woodysavanna + env.npp + env.tree

                   Df Deviance    AIC
- env.savanna       1   404.75 432.75
<none>                  403.02 433.02
- env.bio_12        1   405.09 433.09
- env.tree          1   406.53 434.53
- env.woodysavanna  1   407.19 435.19
- env.bio_13        1   409.24 437.24
- env.bio_5         1   409.79 437.79
- env.bio_15        1   409.86 437.86
- env.bio_18        1   410.20 438.20
- env.bio_14        1   412.19 440.19
- env.urban         1   415.31 443.31
- env.bio_19        1   416.23 444.23
- env.bio_3         1   416.71 444.71
- env.bio_10        1   432.36 460.36
- env.npp           1   475.17 503.17

Step:  AIC=432.75
presabs ~ env.bio_3 + env.bio_5 + env.bio_10 + env.bio_12 + env.bio_13 + 
    env.bio_14 + env.bio_15 + env.bio_18 + env.bio_19 + env.urban + 
    env.woodysavanna + env.npp + env.tree

                   Df Deviance    AIC
<none>                  404.75 432.75
- env.tree          1   406.88 432.88
- env.bio_12        1   407.14 433.14
- env.woodysavanna  1   407.83 433.83
- env.bio_13        1   411.02 437.02
- env.bio_18        1   411.89 437.89
- env.bio_15        1   412.36 438.36
- env.bio_5         1   413.70 439.70
- env.bio_14        1   415.71 441.71
- env.urban         1   416.52 442.52
- env.bio_19        1   418.72 444.72
- env.bio_3         1   419.95 445.95
- env.bio_10        1   433.42 459.42
- env.npp           1   475.32 501.32

Call:  glm(formula = presabs ~ env.bio_3 + env.bio_5 + env.bio_10 + 
    env.bio_12 + env.bio_13 + env.bio_14 + env.bio_15 + env.bio_18 + 
    env.bio_19 + env.urban + env.woodysavanna + env.npp + env.tree, 
    family = "binomial", data = presabs.glm)

Coefficients:
     (Intercept)         env.bio_3         env.bio_5        env.bio_10  
         -1.8505          -14.7065           -1.3637            1.6043  
      env.bio_12        env.bio_13        env.bio_14        env.bio_15  
         -1.2054            1.7429           -6.7205            5.9447  
      env.bio_18        env.bio_19         env.urban  env.woodysavanna  
          2.2964            3.7907            0.5882            0.3972  
         env.npp          env.tree  
          1.6473            0.2855  

Degrees of Freedom: 558 Total (i.e. Null);  545 Residual
Null Deviance:      646.2 
Residual Deviance: 404.8    AIC: 432.8

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.1502 
tolerance is fixed at  0.0012 
ntrees resid. dev. 
50    0.9974 
now adding trees... 
100   0.9411 
150   0.9056 
200   0.8745 
250   0.8505 
300   0.8301 
350   0.8163 
400   0.8005 
450   0.7882 
500   0.777 
550   0.7667 
600   0.759 
650   0.7538 
700   0.7488 
750   0.7421 
800   0.7365 
850   0.7303 
900   0.7261 
950   0.7229 
1000   0.7193 
1050   0.7157 
1100   0.7124 
1150   0.7102 
1200   0.7069 
1250   0.7043 
1300   0.7009 
1350   0.6979 
1400   0.6953 
1450   0.6944 
1500   0.6916 
1550   0.6892 
1600   0.6877 
1650   0.6855 
1700   0.6829 
1750   0.6805 
1800   0.6785 
1850   0.6776 
1900   0.6754 
1950   0.6744 
2000   0.6726 
2050   0.6717 
2100   0.6698 
2150   0.6688 
2200   0.6678 
2250   0.6665 
2300   0.6658 
2350   0.6646 
2400   0.6641 
2450   0.6635 
2500   0.6632 
2550   0.6629 
2600   0.6629 
2650   0.6626 
2700   0.6616 
2750   0.6614 
2800   0.6602 
2850   0.6597 
2900   0.6595 
2950   0.6595 
3000   0.6591 
3050   0.6585 
3100   0.659 
3150   0.6596 
3200   0.6588 
3250   0.6586 
3300   0.659 
3350   0.658 
3400   0.6573 
3450   0.6569 
3500   0.6569 
3550   0.6563 
3600   0.6561 
3650   0.6555 
3700   0.6561 
3750   0.6559 
3800   0.6562 
3850   0.6559 
3900   0.6567 
3950   0.6576 
4000   0.6566 
4050   0.6566 
4100   0.6564 
4150   0.6567 


mean total deviance = 1.15 
mean residual deviance = 0.387 
 
estimated cv deviance = 0.655 ; se = 0.073 
 
training data correlation = 0.863 
cv correlation =  0.709 ; se = 0.04 
 
training data AUC score = 0.974 
cv AUC score = 0.906 ; se = 0.022 
 
elapsed time -  0.21 minutes 
Code
summary(brt)

                              var    rel.inf
env.npp                   env.npp 29.2632535
env.bio_7               env.bio_7 10.7616260
env.nontree           env.nontree  8.4807878
env.woodysavanna env.woodysavanna  6.9180109
env.bio_10             env.bio_10  5.5806587
env.urban               env.urban  4.5147804
env.bio_9               env.bio_9  4.3934988
env.nonveg             env.nonveg  3.5207357
env.bio_19             env.bio_19  2.9252155
env.bio_4               env.bio_4  2.6741733
env.bio_18             env.bio_18  2.2293873
env.bio_12             env.bio_12  2.0622015
env.bio_13             env.bio_13  2.0095698
env.bio_8               env.bio_8  1.8953799
env.bio_3               env.bio_3  1.8859477
env.tree                 env.tree  1.6106334
env.bio_14             env.bio_14  1.4619804
env.bio_11             env.bio_11  1.4407766
env.bio_17             env.bio_17  1.2190097
env.bio_16             env.bio_16  1.1231869
env.elev                 env.elev  0.9689513
env.bio_1               env.bio_1  0.6177356
env.bio_2               env.bio_2  0.5372641
env.bio_15             env.bio_15  0.4935636
env.bio_6               env.bio_6  0.3935883
env.wetland           env.wetland  0.2853478
env.bio_5               env.bio_5  0.2526800
env.grass               env.grass  0.2462057
env.savanna           env.savanna  0.2338498
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 
       4.1698726        4.4656697        3.8640164        6.2105000 
       env.bio_5        env.bio_6        env.bio_7        env.bio_8 
       5.1095798        4.8119835        9.7190390        5.8843484 
       env.bio_9       env.bio_10       env.bio_11       env.bio_12 
       8.0349541       12.8025151        4.3685936        6.9179461 
      env.bio_13       env.bio_14       env.bio_15       env.bio_16 
       6.1818748        6.3221521        3.9493733        6.2083303 
      env.bio_17       env.bio_18       env.bio_19         env.elev 
       5.9348606        4.3298542        4.4513588        5.1778142 
       env.urban       env.barren        env.water      env.savanna 
       4.8001362        0.4453489        0.5211972        3.1991353 
env.woodysavanna      env.wetland        env.grass          env.npp 
       6.4762220        1.0071619        2.4821251       37.0187370 
        env.tree      env.nontree       env.nonveg 
       7.8036443       14.3119810       10.6692806 
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.npp, env.bio_7, env.nontree, env.woodysavanna, env.bio_10, env.urban
  • Random forest: env.npp, env.nontree, env.bio_10, env.nonveg, env.bio_7, env.bio_12
  • Ranger: env.npp, env.nontree, env.bio_10, env.nonveg, env.bio_7, env.bio_9
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.npp env.bio_7 env.nontree env.woodysavanna env.bio_10 env.urban env.nonveg env.bio_12 env.bio_9
env.npp 1.0000000 -0.2260104 -0.5293037 0.0006886 0.2583383 0.1344147 -0.4653541 -0.1737652 0.2925463
env.bio_7 -0.2260104 1.0000000 0.0504557 0.1850820 -0.1345391 0.0225795 -0.1488980 0.4185941 -0.8782263
env.nontree -0.5293037 0.0504557 1.0000000 -0.1006558 -0.1901205 -0.0745566 0.7880283 -0.0668483 -0.0290542
env.woodysavanna 0.0006886 0.1850820 -0.1006558 1.0000000 0.0182359 0.0318901 -0.1058182 0.0467406 -0.1389403
env.bio_10 0.2583383 -0.1345391 -0.1901205 0.0182359 1.0000000 0.2582501 -0.1873301 -0.1343382 0.1840244
env.urban 0.1344147 0.0225795 -0.0745566 0.0318901 0.2582501 1.0000000 -0.0958183 -0.0890791 -0.0294760
env.nonveg -0.4653541 -0.1488980 0.7880283 -0.1058182 -0.1873301 -0.0958183 1.0000000 -0.3700583 0.2499643
env.bio_12 -0.1737652 0.4185941 -0.0668483 0.0467406 -0.1343382 -0.0890791 -0.3700583 1.0000000 -0.5272262
env.bio_9 0.2925463 -0.8782263 -0.0290542 -0.1389403 0.1840244 -0.0294760 0.2499643 -0.5272262 1.0000000
Code
tmpFiles(remove=T)