Herpailurus yagouaroundi Variable Selection

Author

Florencia Grattarola

Published

October 1, 2024

Variable Selection for Herpailurus yagouaroundi, 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()

Herpailurus yagouaroundi’ preferences

We will use the data from both periods

Code
PA_time1 <- readRDS('data/species_POPA_data/PA_hyagouaroundi_time1_blobs.rds')%>% ungroup()
PA_time2 <- readRDS('data/species_POPA_data/PA_hyagouaroundi_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 0 1769 days 1779 756798182 [m^2]
6 1 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 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 1 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.0044  -0.5718  -0.3831   0.4691   2.5916  

Coefficients:
                   Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -1.074e+02  1.377e+02  -0.780 0.435413    
env.bio_1         3.619e+00  7.514e+00   0.482 0.630079    
env.bio_2         1.475e+01  8.510e+00   1.734 0.082963 .  
env.bio_3        -2.370e+01  1.431e+01  -1.656 0.097784 .  
env.bio_4         2.236e+00  1.827e+00   1.224 0.221006    
env.bio_5        -2.494e+00  1.582e+00  -1.576 0.115064    
env.bio_6        -2.121e+00  1.565e+00  -1.355 0.175417    
env.bio_7         9.541e-01  5.486e-01   1.739 0.082017 .  
env.bio_8         1.763e+00  2.123e+00   0.830 0.406267    
env.bio_9         2.320e+00  2.008e+00   1.155 0.247959    
env.bio_10       -4.717e-01  4.438e-01  -1.063 0.287782    
env.bio_11       -1.199e+00  6.246e-01  -1.920 0.054832 .  
env.bio_12        8.862e+00  2.041e+00   4.342 1.41e-05 ***
env.bio_13       -2.514e+00  1.310e+00  -1.919 0.054971 .  
env.bio_14       -5.102e+00  8.250e+00  -0.618 0.536297    
env.bio_15       -1.318e+06  1.220e+06  -1.080 0.280105    
env.bio_16        2.209e+06  2.045e+06   1.080 0.280105    
env.bio_17        1.877e+06  1.738e+06   1.080 0.280109    
env.bio_18       -5.898e-02  9.893e-01  -0.060 0.952459    
env.bio_19        1.760e+00  1.178e+00   1.493 0.135399    
env.elev          9.756e-01  9.652e-01   1.011 0.312122    
env.urban         1.109e+00  2.924e-01   3.794 0.000148 ***
env.barren       -5.340e+02  6.949e+02  -0.768 0.442220    
env.water        -1.892e-01  3.087e-01  -0.613 0.540058    
env.savanna      -1.701e-01  2.392e-01  -0.711 0.477059    
env.woodysavanna  4.208e-01  2.585e-01   1.628 0.103452    
env.wetland      -1.179e-01  1.614e-01  -0.730 0.465351    
env.grass        -4.654e-01  3.519e-01  -1.323 0.185952    
env.npp           1.078e+00  3.402e-01   3.170 0.001526 ** 
env.tree          7.606e-02  5.639e-01   0.135 0.892698    
env.nontree      -2.874e-02  5.507e-01  -0.052 0.958382    
env.nonveg        2.627e-01  6.971e-01   0.377 0.706228    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 650.23  on 558  degrees of freedom
Residual deviance: 440.38  on 527  degrees of freedom
AIC: 504.38

Number of Fisher Scoring iterations: 14
Code
step(glm.full) # step might not work with gam so glm
Start:  AIC=504.38
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.nontree       1   440.38 502.38
- env.bio_18        1   440.38 502.38
- env.tree          1   440.40 502.40
- env.nonveg        1   440.52 502.52
- env.bio_1         1   440.61 502.61
- env.water         1   440.76 502.76
- env.bio_14        1   440.77 502.77
- env.savanna       1   440.89 502.89
- env.wetland       1   441.01 503.01
- env.bio_8         1   441.07 503.07
- env.elev          1   441.44 503.44
- env.bio_10        1   441.53 503.53
- env.bio_17        1   441.55 503.55
- env.bio_16        1   441.55 503.55
- env.bio_15        1   441.55 503.55
- env.barren        1   441.69 503.69
- env.bio_9         1   441.71 503.71
- env.bio_4         1   441.90 503.90
- env.grass         1   442.17 504.17
- env.bio_6         1   442.20 504.20
<none>                  440.38 504.38
- env.bio_19        1   442.53 504.53
- env.bio_5         1   442.88 504.88
- env.woodysavanna  1   443.05 505.05
- env.bio_3         1   443.15 505.15
- env.bio_7         1   443.51 505.51
- env.bio_2         1   443.58 505.58
- env.bio_13        1   444.15 506.15
- env.bio_11        1   444.43 506.43
- env.npp           1   451.91 513.91
- env.urban         1   459.64 521.64
- env.bio_12        1   462.57 524.57

Step:  AIC=502.38
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.nonveg

                   Df Deviance    AIC
- env.bio_18        1   440.39 500.39
- env.tree          1   440.44 500.44
- env.bio_1         1   440.62 500.62
- env.nonveg        1   440.69 500.69
- env.bio_14        1   440.79 500.79
- env.water         1   440.86 500.86
- env.savanna       1   440.91 500.91
- env.bio_8         1   441.07 501.07
- env.wetland       1   441.07 501.07
- env.elev          1   441.47 501.47
- env.bio_10        1   441.53 501.53
- env.bio_17        1   441.55 501.55
- env.bio_16        1   441.55 501.55
- env.bio_15        1   441.55 501.55
- env.bio_9         1   441.71 501.71
- env.barren        1   441.74 501.74
- env.bio_4         1   441.91 501.91
- env.grass         1   442.20 502.20
- env.bio_6         1   442.22 502.22
<none>                  440.38 502.38
- env.bio_19        1   442.54 502.54
- env.bio_5         1   442.89 502.89
- env.woodysavanna  1   443.05 503.05
- env.bio_3         1   443.19 503.19
- env.bio_7         1   443.53 503.53
- env.bio_2         1   443.58 503.58
- env.bio_13        1   444.16 504.16
- env.bio_11        1   444.50 504.50
- env.npp           1   452.67 512.67
- env.urban         1   460.34 520.34
- env.bio_12        1   463.65 523.65

Step:  AIC=500.39
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_19 + env.elev + env.urban + 
    env.barren + env.water + env.savanna + env.woodysavanna + 
    env.wetland + env.grass + env.npp + env.tree + env.nonveg

                   Df Deviance    AIC
- env.tree          1   440.45 498.45
- env.bio_1         1   440.62 498.62
- env.nonveg        1   440.70 498.70
- env.bio_14        1   440.79 498.79
- env.water         1   440.86 498.86
- env.savanna       1   440.92 498.92
- env.wetland       1   441.07 499.07
- env.bio_8         1   441.07 499.07
- env.elev          1   441.47 499.47
- env.bio_17        1   441.56 499.56
- env.bio_16        1   441.56 499.56
- env.bio_15        1   441.56 499.56
- env.bio_10        1   441.61 499.61
- env.barren        1   441.74 499.74
- env.bio_9         1   441.75 499.75
- env.bio_4         1   441.91 499.91
- env.grass         1   442.21 500.21
- env.bio_6         1   442.27 500.27
<none>                  440.39 500.39
- env.bio_5         1   442.89 500.89
- env.woodysavanna  1   443.06 501.06
- env.bio_3         1   443.19 501.19
- env.bio_7         1   443.53 501.53
- env.bio_2         1   443.61 501.61
- env.bio_19        1   443.88 501.88
- env.bio_13        1   444.16 502.16
- env.bio_11        1   444.53 502.53
- env.npp           1   452.75 510.75
- env.urban         1   460.34 518.34
- env.bio_12        1   463.67 521.67

Step:  AIC=498.45
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_19 + env.elev + env.urban + 
    env.barren + env.water + env.savanna + env.woodysavanna + 
    env.wetland + env.grass + env.npp + env.nonveg

                   Df Deviance    AIC
- env.bio_1         1   440.70 496.70
- env.water         1   440.89 496.89
- env.bio_14        1   440.93 496.93
- env.nonveg        1   441.06 497.06
- env.bio_8         1   441.07 497.07
- env.wetland       1   441.17 497.17
- env.savanna       1   441.61 497.61
- env.elev          1   441.61 497.61
- env.bio_17        1   441.65 497.65
- env.bio_16        1   441.65 497.65
- env.bio_15        1   441.65 497.65
- env.bio_10        1   441.71 497.71
- env.bio_9         1   441.76 497.76
- env.barren        1   441.85 497.85
- env.bio_4         1   442.18 498.18
- env.bio_6         1   442.28 498.28
<none>                  440.45 498.45
- env.bio_5         1   442.90 498.90
- env.woodysavanna  1   443.07 499.07
- env.bio_3         1   443.55 499.55
- env.bio_7         1   443.66 499.66
- env.bio_19        1   443.88 499.88
- env.bio_2         1   443.90 499.90
- env.bio_11        1   444.53 500.53
- env.grass         1   444.67 500.67
- env.bio_13        1   445.23 501.23
- env.npp           1   453.64 509.64
- env.urban         1   460.37 516.37
- env.bio_12        1   465.17 521.17

Step:  AIC=496.7
presabs ~ 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_19 + env.elev + env.urban + env.barren + 
    env.water + env.savanna + env.woodysavanna + env.wetland + 
    env.grass + env.npp + env.nonveg

                   Df Deviance    AIC
- env.bio_14        1   441.02 495.02
- env.water         1   441.15 495.15
- env.nonveg        1   441.22 495.22
- env.bio_8         1   441.28 495.28
- env.wetland       1   441.36 495.36
- env.bio_9         1   441.78 495.78
- env.bio_10        1   441.79 495.79
- env.bio_17        1   441.89 495.89
- env.bio_16        1   441.89 495.89
- env.bio_15        1   441.89 495.89
- env.barren        1   442.01 496.01
- env.elev          1   442.14 496.14
- env.bio_6         1   442.32 496.32
- env.savanna       1   442.33 496.33
- env.bio_4         1   442.63 496.63
<none>                  440.70 496.70
- env.bio_5         1   443.09 497.09
- env.woodysavanna  1   443.39 497.39
- env.bio_7         1   443.68 497.68
- env.bio_3         1   443.91 497.91
- env.bio_11        1   444.72 498.72
- env.grass         1   444.74 498.74
- env.bio_19        1   445.02 499.02
- env.bio_2         1   445.02 499.02
- env.bio_13        1   445.71 499.71
- env.npp           1   453.82 507.82
- env.urban         1   461.53 515.53
- env.bio_12        1   468.88 522.88

Step:  AIC=495.02
presabs ~ 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_15 + env.bio_16 + env.bio_17 + 
    env.bio_19 + env.elev + env.urban + env.barren + env.water + 
    env.savanna + env.woodysavanna + env.wetland + env.grass + 
    env.npp + env.nonveg

                   Df Deviance    AIC
- env.water         1   441.48 493.48
- env.bio_8         1   441.62 493.62
- env.nonveg        1   441.65 493.65
- env.wetland       1   441.73 493.73
- env.bio_9         1   442.14 494.14
- env.bio_17        1   442.14 494.14
- env.bio_16        1   442.14 494.14
- env.bio_15        1   442.14 494.14
- env.bio_10        1   442.18 494.18
- env.barren        1   442.44 494.44
- env.elev          1   442.47 494.47
- env.bio_6         1   442.66 494.66
- env.savanna       1   442.78 494.78
- env.bio_4         1   443.00 495.00
<none>                  441.02 495.02
- env.bio_5         1   443.58 495.58
- env.woodysavanna  1   444.03 496.03
- env.bio_7         1   444.44 496.44
- env.bio_11        1   444.92 496.92
- env.bio_19        1   445.21 497.21
- env.grass         1   445.37 497.37
- env.bio_13        1   446.07 498.07
- env.bio_3         1   454.67 506.67
- env.npp           1   458.01 510.01
- env.bio_2         1   464.91 516.91
- env.urban         1   468.48 520.48
- env.bio_12        1   469.81 521.81

Step:  AIC=493.48
presabs ~ 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_15 + env.bio_16 + env.bio_17 + 
    env.bio_19 + env.elev + env.urban + env.barren + env.savanna + 
    env.woodysavanna + env.wetland + env.grass + env.npp + env.nonveg

                   Df Deviance    AIC
- env.nonveg        1   441.65 491.65
- env.wetland       1   441.92 491.92
- env.bio_8         1   442.07 492.07
- env.bio_9         1   442.53 492.53
- env.bio_17        1   442.54 492.54
- env.bio_16        1   442.54 492.54
- env.bio_15        1   442.54 492.54
- env.barren        1   442.68 492.68
- env.bio_10        1   442.70 492.70
- env.elev          1   442.72 492.72
- env.bio_6         1   443.01 493.01
- env.savanna       1   443.07 493.07
- env.bio_4         1   443.40 493.40
<none>                  441.48 493.48
- env.bio_5         1   443.93 493.93
- env.woodysavanna  1   444.65 494.65
- env.bio_7         1   444.73 494.73
- env.bio_11        1   445.54 495.54
- env.grass         1   445.56 495.56
- env.bio_19        1   445.71 495.71
- env.bio_13        1   446.18 496.18
- env.bio_3         1   454.72 504.72
- env.npp           1   458.71 508.71
- env.bio_2         1   465.17 515.17
- env.urban         1   468.99 518.99
- env.bio_12        1   469.81 519.81

Step:  AIC=491.65
presabs ~ 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_15 + env.bio_16 + env.bio_17 + 
    env.bio_19 + env.elev + env.urban + env.barren + env.savanna + 
    env.woodysavanna + env.wetland + env.grass + env.npp

                   Df Deviance    AIC
- env.wetland       1   442.01 490.01
- env.bio_8         1   442.41 490.41
- env.bio_17        1   442.78 490.78
- env.bio_16        1   442.78 490.78
- env.bio_15        1   442.78 490.78
- env.barren        1   442.85 490.85
- env.elev          1   442.86 490.86
- env.bio_9         1   442.95 490.95
- env.bio_10        1   443.19 491.19
- env.bio_6         1   443.32 491.32
- env.savanna       1   443.38 491.38
- env.bio_4         1   443.41 491.41
<none>                  441.65 491.65
- env.bio_5         1   444.11 492.11
- env.woodysavanna  1   444.72 492.72
- env.bio_7         1   444.86 492.86
- env.bio_19        1   445.75 493.75
- env.grass         1   445.81 493.81
- env.bio_13        1   446.18 494.18
- env.bio_11        1   446.47 494.47
- env.bio_3         1   454.87 502.87
- env.npp           1   464.13 512.13
- env.bio_2         1   465.20 513.20
- env.urban         1   469.01 517.01
- env.bio_12        1   470.12 518.12

Step:  AIC=490.01
presabs ~ 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_15 + env.bio_16 + env.bio_17 + 
    env.bio_19 + env.elev + env.urban + env.barren + env.savanna + 
    env.woodysavanna + env.grass + env.npp

                   Df Deviance    AIC
- env.bio_8         1   442.88 488.88
- env.elev          1   443.09 489.09
- env.barren        1   443.16 489.16
- env.bio_17        1   443.18 489.18
- env.bio_16        1   443.18 489.18
- env.bio_15        1   443.18 489.18
- env.bio_9         1   443.21 489.21
- env.savanna       1   443.44 489.44
- env.bio_10        1   443.57 489.57
- env.bio_6         1   443.59 489.59
- env.bio_4         1   443.78 489.78
<none>                  442.01 490.01
- env.bio_5         1   444.68 490.68
- env.bio_7         1   445.05 491.05
- env.woodysavanna  1   445.62 491.62
- env.grass         1   445.86 491.86
- env.bio_13        1   446.27 492.27
- env.bio_19        1   446.39 492.39
- env.bio_11        1   446.66 492.66
- env.bio_3         1   454.88 500.88
- env.bio_2         1   466.26 512.26
- env.bio_12        1   470.12 516.12
- env.urban         1   470.54 516.54
- env.npp           1   473.00 519.00

Step:  AIC=488.88
presabs ~ 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_15 + env.bio_16 + env.bio_17 + env.bio_19 + 
    env.elev + env.urban + env.barren + env.savanna + env.woodysavanna + 
    env.grass + env.npp

                   Df Deviance    AIC
- env.bio_9         1   443.74 487.74
- env.savanna       1   443.94 487.94
- env.barren        1   443.97 487.97
- env.bio_17        1   444.22 488.22
- env.bio_16        1   444.22 488.22
- env.bio_15        1   444.22 488.22
- env.bio_10        1   444.40 488.40
- env.bio_6         1   444.44 488.44
- env.elev          1   444.77 488.77
<none>                  442.88 488.88
- env.bio_5         1   445.02 489.02
- env.bio_7         1   446.71 490.71
- env.woodysavanna  1   446.99 490.99
- env.bio_11        1   447.18 491.18
- env.bio_13        1   447.24 491.24
- env.grass         1   447.89 491.89
- env.bio_19        1   448.07 492.07
- env.bio_4         1   448.35 492.35
- env.bio_3         1   455.55 499.55
- env.bio_2         1   469.28 513.28
- env.bio_12        1   470.34 514.34
- env.urban         1   472.70 516.70
- env.npp           1   477.84 521.84

Step:  AIC=487.74
presabs ~ env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + env.bio_6 + 
    env.bio_7 + env.bio_10 + env.bio_11 + env.bio_12 + env.bio_13 + 
    env.bio_15 + env.bio_16 + env.bio_17 + env.bio_19 + env.elev + 
    env.urban + env.barren + env.savanna + env.woodysavanna + 
    env.grass + env.npp

                   Df Deviance    AIC
- env.barren        1   444.83 486.83
- env.savanna       1   444.85 486.85
- env.bio_6         1   444.90 486.90
- env.bio_17        1   445.14 487.14
- env.bio_16        1   445.14 487.14
- env.bio_15        1   445.14 487.14
- env.bio_10        1   445.19 487.19
- env.elev          1   445.55 487.55
<none>                  443.74 487.74
- env.bio_5         1   446.71 488.71
- env.bio_7         1   446.85 488.85
- env.bio_13        1   447.62 489.62
- env.woodysavanna  1   447.75 489.75
- env.bio_11        1   447.81 489.81
- env.bio_19        1   448.92 490.92
- env.grass         1   449.07 491.07
- env.bio_4         1   450.84 492.84
- env.bio_3         1   457.41 499.41
- env.bio_2         1   471.33 513.33
- env.bio_12        1   471.61 513.61
- env.urban         1   473.04 515.04
- env.npp           1   481.49 523.49

Step:  AIC=486.83
presabs ~ env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + env.bio_6 + 
    env.bio_7 + env.bio_10 + env.bio_11 + env.bio_12 + env.bio_13 + 
    env.bio_15 + env.bio_16 + env.bio_17 + env.bio_19 + env.elev + 
    env.urban + env.savanna + env.woodysavanna + env.grass + 
    env.npp

                   Df Deviance    AIC
- env.savanna       1   445.78 485.78
- env.bio_6         1   445.83 485.83
- env.bio_10        1   446.17 486.17
- env.bio_17        1   446.22 486.22
- env.bio_16        1   446.22 486.22
- env.bio_15        1   446.22 486.22
- env.elev          1   446.60 486.60
<none>                  444.83 486.83
- env.bio_5         1   447.53 487.53
- env.bio_7         1   447.83 487.83
- env.bio_13        1   448.77 488.77
- env.bio_11        1   448.80 488.80
- env.woodysavanna  1   449.02 489.02
- env.bio_19        1   450.03 490.03
- env.grass         1   450.75 490.75
- env.bio_4         1   451.50 491.50
- env.bio_3         1   458.11 498.11
- env.bio_12        1   472.60 512.60
- env.bio_2         1   474.00 514.00
- env.urban         1   474.60 514.60
- env.npp           1   489.02 529.02

Step:  AIC=485.78
presabs ~ env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + env.bio_6 + 
    env.bio_7 + env.bio_10 + env.bio_11 + env.bio_12 + env.bio_13 + 
    env.bio_15 + env.bio_16 + env.bio_17 + env.bio_19 + env.elev + 
    env.urban + env.woodysavanna + env.grass + env.npp

                   Df Deviance    AIC
- env.bio_6         1   446.84 484.84
- env.bio_10        1   447.26 485.26
- env.bio_17        1   447.33 485.33
- env.bio_16        1   447.33 485.33
- env.bio_15        1   447.33 485.33
- env.elev          1   447.42 485.42
<none>                  445.78 485.78
- env.bio_5         1   448.34 486.34
- env.bio_7         1   448.79 486.79
- env.bio_13        1   449.45 487.45
- env.bio_11        1   449.90 487.90
- env.bio_19        1   450.51 488.51
- env.grass         1   450.81 488.81
- env.woodysavanna  1   451.28 489.28
- env.bio_4         1   453.06 491.06
- env.bio_3         1   459.33 497.33
- env.bio_12        1   472.93 510.93
- env.urban         1   475.65 513.65
- env.bio_2         1   475.96 513.96
- env.npp           1   491.07 529.07

Step:  AIC=484.84
presabs ~ env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + env.bio_7 + 
    env.bio_10 + env.bio_11 + env.bio_12 + env.bio_13 + env.bio_15 + 
    env.bio_16 + env.bio_17 + env.bio_19 + env.elev + env.urban + 
    env.woodysavanna + env.grass + env.npp

                   Df Deviance    AIC
- env.elev          1   448.06 484.06
- env.bio_10        1   448.22 484.22
- env.bio_17        1   448.24 484.24
- env.bio_16        1   448.24 484.24
- env.bio_15        1   448.24 484.24
- env.bio_5         1   448.56 484.56
<none>                  446.84 484.84
- env.bio_7         1   450.88 486.88
- env.bio_11        1   451.02 487.02
- env.bio_13        1   451.31 487.31
- env.grass         1   451.76 487.76
- env.bio_19        1   451.86 487.86
- env.woodysavanna  1   452.34 488.34
- env.bio_4         1   453.54 489.54
- env.bio_3         1   459.84 495.84
- env.bio_12        1   472.99 508.99
- env.bio_2         1   476.18 512.18
- env.urban         1   478.41 514.41
- env.npp           1   491.43 527.43

Step:  AIC=484.06
presabs ~ env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + env.bio_7 + 
    env.bio_10 + env.bio_11 + env.bio_12 + env.bio_13 + env.bio_15 + 
    env.bio_16 + env.bio_17 + env.bio_19 + env.urban + env.woodysavanna + 
    env.grass + env.npp

                   Df Deviance    AIC
- env.bio_17        1   449.25 483.25
- env.bio_16        1   449.25 483.25
- env.bio_15        1   449.25 483.25
- env.bio_10        1   449.44 483.44
<none>                  448.06 484.06
- env.bio_5         1   450.32 484.32
- env.bio_11        1   451.97 485.97
- env.bio_13        1   452.19 486.19
- env.grass         1   452.58 486.58
- env.bio_19        1   452.82 486.82
- env.woodysavanna  1   453.79 487.79
- env.bio_7         1   454.03 488.03
- env.bio_4         1   455.29 489.29
- env.bio_3         1   460.53 494.53
- env.bio_12        1   474.41 508.41
- env.bio_2         1   476.23 510.23
- env.urban         1   479.48 513.48
- env.npp           1   491.71 525.71

Step:  AIC=483.25
presabs ~ env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + env.bio_7 + 
    env.bio_10 + env.bio_11 + env.bio_12 + env.bio_13 + env.bio_15 + 
    env.bio_16 + env.bio_19 + env.urban + env.woodysavanna + 
    env.grass + env.npp

                   Df Deviance    AIC
- env.bio_10        1   450.49 482.49
- env.bio_5         1   451.15 483.15
<none>                  449.25 483.25
- env.bio_13        1   452.60 484.60
- env.bio_11        1   452.85 484.85
- env.grass         1   453.60 485.60
- env.bio_19        1   454.02 486.02
- env.woodysavanna  1   454.50 486.50
- env.bio_7         1   454.62 486.62
- env.bio_4         1   455.62 487.62
- env.bio_16        1   458.99 490.99
- env.bio_3         1   460.81 492.81
- env.bio_12        1   474.41 506.41
- env.bio_2         1   476.72 508.72
- env.bio_15        1   478.92 510.92
- env.urban         1   481.99 513.99
- env.npp           1   492.81 524.81

Step:  AIC=482.49
presabs ~ env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + env.bio_7 + 
    env.bio_11 + env.bio_12 + env.bio_13 + env.bio_15 + env.bio_16 + 
    env.bio_19 + env.urban + env.woodysavanna + env.grass + env.npp

                   Df Deviance    AIC
<none>                  450.49 482.49
- env.bio_5         1   452.78 482.78
- env.bio_11        1   452.96 482.96
- env.bio_13        1   454.30 484.30
- env.grass         1   454.75 484.75
- env.bio_19        1   455.32 485.32
- env.woodysavanna  1   455.49 485.49
- env.bio_7         1   455.65 485.65
- env.bio_4         1   455.66 485.66
- env.bio_16        1   459.97 489.97
- env.bio_3         1   461.05 491.05
- env.bio_12        1   474.41 504.41
- env.urban         1   482.00 512.00
- env.bio_15        1   484.60 514.60
- env.npp           1   493.31 523.31
- env.bio_2         1   494.44 524.44

Call:  glm(formula = presabs ~ env.bio_2 + env.bio_3 + env.bio_4 + env.bio_5 + 
    env.bio_7 + env.bio_11 + env.bio_12 + env.bio_13 + env.bio_15 + 
    env.bio_16 + env.bio_19 + env.urban + env.woodysavanna + 
    env.grass + env.npp, family = "binomial", data = presabs.glm)

Coefficients:
     (Intercept)         env.bio_2         env.bio_3         env.bio_4  
         -2.0968            9.6369          -10.2678            2.0632  
       env.bio_5         env.bio_7        env.bio_11        env.bio_12  
         -1.2283            1.0403           -0.6014            7.6178  
      env.bio_13        env.bio_15        env.bio_16        env.bio_19  
         -2.0964          -12.2221           15.3985            1.8305  
       env.urban  env.woodysavanna         env.grass           env.npp  
          1.0692            0.5192           -0.4754            1.2654  

Degrees of Freedom: 558 Total (i.e. Null);  543 Residual
Null Deviance:      650.2 
Residual Deviance: 450.5    AIC: 482.5

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.1646 
tolerance is fixed at  0.0012 
ntrees resid. dev. 
50    1.0486 
now adding trees... 
100   0.979 
150   0.9358 
200   0.9087 
250   0.8922 
300   0.8781 
350   0.8673 
400   0.8574 
450   0.8488 
500   0.843 
550   0.8367 
600   0.8315 
650   0.8273 
700   0.823 
750   0.8185 
800   0.8154 
850   0.8143 
900   0.8114 
950   0.8096 
1000   0.8086 
1050   0.8076 
1100   0.8049 
1150   0.8038 
1200   0.8026 
1250   0.8016 
1300   0.8004 
1350   0.7981 
1400   0.797 
1450   0.7976 
1500   0.7979 
1550   0.7976 
1600   0.7984 
1650   0.7985 
1700   0.7974 
1750   0.7971 
1800   0.7977 
1850   0.7978 
1900   0.7985 
1950   0.7979 
2000   0.7974 
2050   0.798 
2100   0.7982 
2150   0.799 


mean total deviance = 1.165 
mean residual deviance = 0.627 
 
estimated cv deviance = 0.797 ; se = 0.032 
 
training data correlation = 0.742 
cv correlation =  0.615 ; se = 0.029 
 
training data AUC score = 0.924 
cv AUC score = 0.855 ; se = 0.016 
 
elapsed time -  0.1 minutes 
Code
summary(brt)

                              var     rel.inf
env.urban               env.urban 17.26861395
env.npp                   env.npp 15.01517364
env.woodysavanna env.woodysavanna 14.16072459
env.bio_10             env.bio_10  9.23881041
env.bio_7               env.bio_7  7.42318604
env.bio_15             env.bio_15  4.92413959
env.nonveg             env.nonveg  4.66377672
env.bio_13             env.bio_13  4.19897610
env.bio_9               env.bio_9  3.27987940
env.bio_19             env.bio_19  3.23337226
env.bio_8               env.bio_8  3.10326169
env.bio_4               env.bio_4  2.60126262
env.grass               env.grass  2.12961370
env.bio_5               env.bio_5  1.67426061
env.bio_16             env.bio_16  1.38605132
env.bio_11             env.bio_11  1.08115667
env.tree                 env.tree  1.04394678
env.bio_3               env.bio_3  1.04314388
env.bio_12             env.bio_12  0.63657303
env.bio_14             env.bio_14  0.35043006
env.savanna           env.savanna  0.32227466
env.bio_6               env.bio_6  0.30825035
env.bio_17             env.bio_17  0.30550370
env.wetland           env.wetland  0.13947752
env.bio_1               env.bio_1  0.12088078
env.elev                 env.elev  0.11976521
env.bio_2               env.bio_2  0.10446486
env.bio_18             env.bio_18  0.09746777
env.nontree           env.nontree  0.02556210
env.barren             env.barren  0.00000000
env.water               env.water  0.00000000
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 
       3.8830559        6.1994138        4.5932245        7.3239922 
       env.bio_5        env.bio_6        env.bio_7        env.bio_8 
       7.2002733        5.2138027        8.9940396        5.5199000 
       env.bio_9       env.bio_10       env.bio_11       env.bio_12 
       6.1900716       11.3700848        5.3196636        5.6688179 
      env.bio_13       env.bio_14       env.bio_15       env.bio_16 
       5.5827974        5.8312823        8.2539183        4.7307267 
      env.bio_17       env.bio_18       env.bio_19         env.elev 
       6.2734100        4.9970425        5.0778873        7.3248256 
       env.urban       env.barren        env.water      env.savanna 
      21.0199917        0.2081271        0.9086772        3.6009138 
env.woodysavanna      env.wetland        env.grass          env.npp 
      15.5240477        1.7918203        3.3481191       17.6537944 
        env.tree      env.nontree       env.nonveg 
       5.2666224        4.7026054        8.3579938 
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.urban, env.npp, env.woodysavanna, env.bio_10, env.bio_7, env.bio_15
  • Random forest: env.urban, env.woodysavanna, env.npp, env.bio_10, env.bio_7, env.nonveg
  • Ranger: env.urban, env.npp, env.woodysavanna, env.bio_10, env.bio_7, env.nonveg
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.urban env.npp env.woodysavanna env.bio_10 env.bio_7 env.bio_15 env.nonveg
env.urban 1.0000000 0.1344147 0.0318901 0.2582501 0.0225795 -0.2740025 -0.0958183
env.npp 0.1344147 1.0000000 0.0006886 0.2583383 -0.2260104 -0.6102193 -0.4653541
env.woodysavanna 0.0318901 0.0006886 1.0000000 0.0182359 0.1850820 0.0462821 -0.1058182
env.bio_10 0.2582501 0.2583383 0.0182359 1.0000000 -0.1345391 -0.4429341 -0.1873301
env.bio_7 0.0225795 -0.2260104 0.1850820 -0.1345391 1.0000000 0.2496259 -0.1488980
env.bio_15 -0.2740025 -0.6102193 0.0462821 -0.4429341 0.2496259 1.0000000 0.1918470
env.nonveg -0.0958183 -0.4653541 -0.1058182 -0.1873301 -0.1488980 0.1918470 1.0000000
Code
tmpFiles(remove=T)