Valeria Di Cola, Olivier Broennimann& Antoine Guisan
July 22, 2014
Miscellaneous methods and utilities for spatial ecology analysis, written by current and former members and collaborators of the ecospat group of Antoine Guisan, Department of Ecology and Evolution (DEE) & Institute of Earth Surface Dynamics (IDYST), University of Lausanne, Switzerland.
ecospat offers the possibility to perform Pre-modelling Analysis, such as Spatial autocorrelation analysis, MESS (Multivariate Environmental Similarity Surfaces) analyses, Phylogenetic diversity Measures, Biotic Interactions. It also provides functions to complement bi omod2 in preparing the data, calibrating and evaluating (e.g. boyce index) and projecting the models. Complementary analysis based on model predictions (e.g. co- occurrences analyses) are also provided.
In addition, the ecospat package includes Niche Quantification and Overlap functions that were used in Broennimann et al. 2012 and Petitpierre et al. 2012 to quantify climatic niche shifts between the native and invaded ranges of invasive species.
1
Contents 1 LOADING DATA EXAMPLE .................................................................................................................... 3 1.1 Test data for the ecospat library .................................................................................................. 4 1.2 Test data for Niche Overlap Analysis ........................................................................................... 4 1.3 Test tree for the phylogenetic diversity analysis ......................................................................... 5 2 Pre-Modelling Analysis ......................................................................................................................... 7 2.1 Spatial Auto-correlation ................................................................................................................. 7 2.2 Predictor Variable Selection ......................................................................................................... 7 2.3 MESS - Multivariate Environmental Similarity Surfaces .............................................................. 8 2.4 Phylogenetic Diversity Measures ............................................................................................... 11 2.5 Biotic Interactions ...................................................................................................................... 13 2.6 Niche Quantification with Ordination techniques........................................................................ 15 2.6.1 Species Occurrences Desaggregation .................................................................................... 15 2.6.2 Sample Environmental Variables ........................................................................................... 17 2.6.3 Dynamic Occurrence Densities Grid...................................................................................... 17 3 ECOLOGICAL NICHE MODELLING ....................................................................................................... 28 3.1 Data Preparation for Modelling .................................................................................................. 28 3.1.1 Calibration and Evaluation Dataset ...................................................................................... 28 3.1.2 Sample Pseudo Absences ..................................................................................................... 30 3.1.3 Make Data Frame .................................................................................................................. 30 3.2 Model Calibration ....................................................................................................................... 34 3.2.1 Modelling Techniques - Cross-validation .............................................................................. 34 3.2.2 Variables Importance ............................................................................................................ 37 3.2.3 Model Averaging and Ensemble Forecasting ........................................................................ 37 3.3 Model Evaluation ...................................................................................................................... 38 3.3.1 Presence-only Evaluation Indices- Boyce Index .................................................................... 38 3.3.2 Accuracy of Community Prediction ..................................................................................... 40 3.4 Spatial Predictions and Projections ............................................................................................. 41 3.4.1 Model Binarization ........................................................................................................ 41 3.4.2 Implementing species dispersal into projections of species distribution models ............................ 45 4 COMPLEMENTARY ANALYSIS ............................................................................................................. 46 4.1 Biotic Interactions ...................................................................................................................... 46 4.1.1 Co-occurrence pattern ............................................................................................................. 46 4.1.2 Co-occurrence analysis Environmentally Constrained Null Models ............................................... 47 2
1 LOADING DATA EXAMPLE
> l i br ar y( ecospat )
> l s( " package: ecospat " ) [ 1] " ecospat . bi nar y. model " " ecospat . boyce" [ 3] " ecospat . cal cul at e. pd" " ecospat . cal eval " [ 5] " ecospat . co_occur r ences" " ecospat . cons_Cscor e" [ 7] " ecospat . cv. exampl e" " ecospat . cv. gam" [ 9] " ecospat . cv. gbm" " ecospat . cv. gl m" [ 11] " ecospat . cv. me" " ecospat . cv. r f " [ 13] " ecospat . env" " ecospat . Epr ed" [ 15] " ecospat . f un. ar r ows" " ecospat . gr i d. cl i m. dyn" [ 17] " ecospat . makeDat aFr ame" " ecospat . mant el . cor r el ogr am" [ 19] " ecospat . maxent var i mpor t " " ecospat . mess" [ 21] " ecospat . mi gcl i m" " ecospat . ni che. dyn. i ndex" [ 23] " ecospat . ni che. equi val ency. t est " " ecospat . ni che. over l ap" [ 25] " ecospat . ni che. si mi l ar i t y. t est " " ecospat . npr ed" [ 27] " ecospat . occ. desaggr egat i on" " ecospat . per mut . gl m" [ 29] " ecospat . pl ot . cont r i b" " ecospat . pl ot . mess" [ 31] " ecospat . pl ot . ni che" " ecospat . pl ot . ni che. dyn" [ 33] " ecospat . pl ot . over l ap. t est " " ecospat . r and. pseudoabsences" [ 35] " ecospat . sampl e. envar " " ecospat . SSDMeval " [ 37] " ecospat . t est Dat a" " ecospat . t est Ni che" [ 39] " ecospat . var par t "
> dat a( package=" ecospat " ) . Dat a set s i n package ecospat :
ecospat . t est Dat a Test dat a f or t he ecospat l i br ar y ecospat . t est Ni che Test dat a f or t he ni che over l ap anal ysi s
> ci t at i on( " ecospat " )
To ci t e package ecospat i n publ i cat i ons use:
Ol i vi er Br oenni man, Bl ai se Pet i t pi er r e, Chr i st ophe Randi n, Robi n Engl er , Fr ank Br ei ner , Manuel a D`Amen, Loi c Pel l i ssi er , J ul i en Pot t i er , Dor ot hea P i o, Ruben Gar ci a Mat eo, Val er i a Di Col a, Wi mHor di j k, Anne Dubui s, Dani el Scher r er , Ni col as Sal ami n and Ant oi ne Gui san ( 2014) . ecospat : Spat i al ecol ogy mi scel l aneous met hods. R package ver si on 1. 0.
A Bi bTeX ent r y f or LaTeX user s i s
@Manual {, t i t l e = {ecospat : Spat i al ecol ogy mi scel l aneous met hods}, aut hor = {Ol i vi er Br oenni man and Bl ai se Pet i t pi er r e and Chr i st ophe Ran di n and Robi n Engl er and Fr ank Br ei ner and Manuel a D`Amen and Loi c Pel l i ss i er and J ul i en Pot t i er and Dor ot hea Pi o and Ruben Gar ci a Mat eo and Val er i a Di Col a and Wi mHor di j k and Anne Dubui s and Dani el Scher r er and Ni col as Sa l ami n and Ant oi ne Gui san}, year = {2014}, not e = {R package ver si on 1. 0}, }
3
1.1 Test data for the ecospat library
> di m( ecospat . t est Dat a) [ 1] 300 82
> names( ecospat . t est Dat a) [ 1] " numpl ot s" " l ong" [ 3] " l at " " ddeg" [ 5] " mi nd" " sr ad" [ 7] " sl p" " t opo" [ 9] " Agr ost i s_capi l l ar i s" " Leont odon_hi spi dus_sl " [ 11] " Dact yl i s_gl omer at a" " Tr i f ol i um_r epens_sst r " [ 13] " Ger ani um_syl vat i cum" " Ranuncul us_acr i s_sl " [ 15] " Pr unel l a_vul gar i s" " Ver oni ca_chamaedr ys" [ 17] " Tar axacum_of f i ci nal e_aggr " " Pl ant ago_l anceol at a" [ 19] " Pot ent i l l a_er ect a" " Car ex_semper vi r ens" [ 21] " Sol danel l a_al pi na" " Cynosur us_cr i st at us" [ 23] " Campanul a_scheuchzer i " " Fest uca_pr at ensi s_sl " [ 25] " Pol ygonum_vi vi par um" " Ranuncul us_mont anus_aggr " [ 27] " Rumex_acet osa" " Car ex_f l acca" [ 29] " Pot ent i l l a_aur ea" " Homogyne_al pi na" [ 31] " Br i za_medi a" " Lat hyr us_pr at ensi s" [ 33] " Poa_al pi na" " Sesl er i a_caer ul ea" [ 35] " Tr ol l i us_eur opaeus" " Ant hyl l i s_vul ner ar i a_sl " [ 37] " Deschampsi a_cespi t osa" " Tr i set um_f l avescens" [ 39] " Gal i um_ani sophyl l on" " Euphr asi a_mi ni ma" [ 41] " Ast r ant i a_maj or " " Nar dus_st r i ct a" [ 43] " Li gust i cum_mut el l i na" " Hi er aci um_l act ucel l a" [ 45] " Chaer ophyl l um_hi r sut um_aggr " " Hel i ant hemum_nummul ar i um_sl " [ 47] " Scabi osa_l uci da" " Cer ast i um_f ont anum_sl " [ 49] " Car ex_pal l escens" " Pl ant ago_al pi na" [ 51] " Cr epi s_aur ea" " Leont odon_hel vet i cus" [ 53] " Br omus_er ect us_sst r " " Pol ygonum_bi st or t a" [ 55] " Saxi f r aga_opposi t i f ol i a" " Daucus_car ot a" [ 57] " Par nassi a_pal ust r i s" " Pr i t zel ago_al pi na_sst r " [ 59] " gl m_Agr ost i s_capi l l ar i s" " gl m_Leont odon_hi spi dus_sl " [ 61] " gl m_Dact yl i s_gl omer at a" " gl m_Tr i f ol i um_r epens_sst r " [ 63] " gl m_Ger ani um_syl vat i cum" " gl m_Ranuncul us_acr i s_sl " [ 65] " gl m_Pr unel l a_vul gar i s" " gl m_Ver oni ca_chamaedr ys" [ 67] " gl m_Tar axacum_of f i ci nal e_aggr " " gl m_Pl ant ago_l anceol at a" [ 69] " gl m_Pot ent i l l a_er ect a" " gl m_Car ex_semper vi r ens" [ 71] " gl m_Sol danel l a_al pi na" " gl m_Cynosur us_cr i st at us" [ 73] " gl m_Campanul a_scheuchzer i " " gl m_Fest uca_pr at ensi s_sl " [ 75] " gl m_Br omus_er ect us_sst r " " gl m_Saxi f r aga_opposi t i f ol i a" [ 77] " gl m_Daucus_car ot a" " gl m_Pr i t zel ago_al pi na_sst r " [ 79] " gbm_Br omus_er ect us_sst r " " gbm_Saxi f r aga_opposi t i f ol i a" [ 81] " gbm_Daucus_car ot a" " gbm_Pr i t zel ago_al pi na_sst r "
1.2 Test data for Niche Overlap Analysis
> di m( ecospat . t est Ni che) [ 1] 99 4 > names( ecospat . t est Ni che) [ 1] " speci es" " l ong" " l at " " Spp"
4
1.3 Test tree for the phylogenetic diversity analysis
> f pat h<- syst em. f i l e( " ext dat a" , " ecospat . t est Tr ee. t r e" , package=" ecospat " ) > f pat h [ 1] " ~/ Document s/ R/ wi n- l i br ar y/ 3. 0/ ecospat / ext dat a/ ecospat . t est Tr ee. t r e" > t r ee<- r ead. t r ee( f pat h) > i s. ul t r amet r i c( t r ee) [ 1] TRUE > i s. r oot ed( t r ee) [ 1] TRUE > t r ee$t i p. l abel [ 1] " Rumex_acet osa" " Pol ygonum_bi st or t a" [ 3] " Pol ygonum_vi vi par um" " Rumex_cr i spus" [ 5] " Cer ast i um_l at i f ol i um" " Si l ene_acaul i s" [ 7] " Gypsophi l a_r epens" " Vacci ni um_gaul t her i oi des" [ 9] " Sol danel l a_al pi na" " Cr uci at a_l aevi pes" [ 11] " Gal i um_al bum" " Gal i um_ani sophyl l on" [ 13] " Gal i um_megal osper mum" " Gent i ana_ver na" [ 15] " Gent i ana_bavar i ca" " Gent i ana_pur pur ea" [ 17] " Gent i ana_l ut ea" " Bar t si a_al pi na" [ 19] " Rhi nant hus_al ect or ol ophus" " Pr unel l a_gr andi f l or a" [ 21] " Aci nos_al pi nus" " Pl ant ago_al pi na" [ 23] " Pl ant ago_l anceol at a" " Ver oni ca_of f i ci nal i s" [ 25] " Ver oni ca_aphyl l a" " Ver oni ca_al pi na" [ 27] " Ver oni ca_chamaedr ys" " Ver oni ca_per si ca" [ 29] " Gl obul ar i a_cor di f ol i a" " Gl obul ar i a_nudi caul i s" [ 31] " Myosot i s_al pest r i s" " Myosot i s_ar vensi s" [ 33] " Aposer i s_f oet i da" " Cent aur ea_mont ana" [ 35] " Hi er aci um_l act ucel l a" " Leont odon_hel vet i cus" [ 37] " Leont odon_aut umnal i s" " Hypochaer i s_r adi cat a" [ 39] " Achi l l ea_at r at a" " Achi l l ea_mi l l ef ol i um" [ 41] " Homogyne_al pi na" " Seneci o_dor oni cum" [ 43] " Adenost yl es_gl abr a" " Ar ni ca_mont ana" [ 45] " Ast er _bel l i di ast r um" " Bel l i s_per enni s" [ 47] " Dor oni cum_gr andi f l or um" " Phyt euma_or bi cul ar e" [ 49] " Phyt euma_spi cat um" " Campanul a_r ot undi f ol i a"
Mantel Correlogram with ecospat . mant el . cor r el ogr am
> ecospat . mant el . cor r el ogr am( df var =ecospat . t est Dat a[ c( 2: 16) ] , col xy=1: 2, n=100, col var =3: 7, max=1000, ncl ass=10, nper m=100)
The graph indicates that spatial autocorrelation (SA) is minimal at a distance of 180 meters. Note however that SA is not significantly different than zero for several distances (open circles).
2.2 Predictor Variable Selection
Number of Predictors with Pearson Correlation ecospat . npr ed
> col var <- ecospat . t est Dat a[ c( 4: 8) ] > x <- cor ( col var , met hod=" pear son" ) > ecospat . npr ed ( x, t h=0. 75) [ 1] 4
Number of Predictors with Spearman Correlation ecospat . npr ed
> x <- cor ( col var , met hod=" spear man" ) > ecospat . npr ed ( x, t h=0. 75) [ 1] 4
2.4 Phylogenetic Diversity Measures Calculate Phylogenetic Diversity Measures ecospat . cal cul at e. pd
> dat a <- ecospat . t est Dat a[ 9: 58]
> pd<- ecospat . cal cul at e. pd( t r ee, dat a, met hod = " spanni ng" , t ype = " speci es" , r oot = FALSE, aver age = FALSE, ver bose = TRUE ) Pr ogr ess ( . = 100 pi xel s cal cul at ed) : . . . [ 300] Al l 300 pi xel s done.
2.5 Biotic Interactions Species Co-occurrences pattern with a Presence-absence matrix
> dat a <- ecospat . t est Dat a[ c( 9: 16, 54: 57) ] > ecospat . co_occur r ences ( dat a)
Ger ani um_syl vat i cumRanuncul us_acr i s_sl Ger ani um_syl vat i cum 1. 0000000 0. 5339806 Ranuncul us_acr i s_sl 0. 5339806 1. 0000000 Pr unel l a_vul gar i s 0. 4950495 0. 6336634 Ver oni ca_chamaedr ys 0. 5463918 0. 6804124 Pol ygonum_bi st or t a 0. 6428571 0. 7500000 Saxi f r aga_opposi t i f ol i a 0. 0000000 0. 0000000 Daucus_car ot a 0. 2727273 0. 5000000 Par nassi a_pal ust r i s 0. 1500000 0. 1500000 Pr unel l a_vul gar i s Ver oni ca_chamaedr ys Ger ani um_syl vat i cum 0. 4950495 0. 5463918 Ranuncul us_acr i s_sl 0. 6336634 0. 6804124 Pr unel l a_vul gar i s 1. 0000000 0. 5979381 Ver oni ca_chamaedr ys 0. 5979381 1. 0000000 Pol ygonum_bi st or t a 0. 5000000 0. 3928571 Saxi f r aga_opposi t i f ol i a 0. 0000000 0. 0000000 Daucus_car ot a 0. 6818182 0. 6363636 Par nassi a_pal ust r i s 0. 1000000 0. 0500000 Pol ygonum_bi st or t a Ger ani um_syl vat i cum 0. 6428571 Ranuncul us_acr i s_sl 0. 7500000 Pr unel l a_vul gar i s 0. 5000000 Ver oni ca_chamaedr ys 0. 3928571 Pol ygonum_bi st or t a 1. 0000000 Saxi f r aga_opposi t i f ol i a 0. 0000000 Daucus_car ot a 0. 0000000 Par nassi a_pal ust r i s 0. 0000000 Saxi f r aga_opposi t i f ol i a Daucus_car ot a Ger ani um_syl vat i cum 0. 0 0. 2727273 Ranuncul us_acr i s_sl 0. 0 0. 5000000 Pr unel l a_vul gar i s 0. 0 0. 6818182 Ver oni ca_chamaedr ys 0. 0 0. 6363636 Pol ygonum_bi st or t a 0. 0 0. 0000000 Saxi f r aga_opposi t i f ol i a 1. 0 0. 0000000 Daucus_car ot a 0. 0 1. 0000000 Par nassi a_pal ust r i s 0. 1 0. 0000000 Par nassi a_pal ust r i s Ger ani um_syl vat i cum 0. 15 Ranuncul us_acr i s_sl 0. 15 Pr unel l a_vul gar i s 0. 10 Ver oni ca_chamaedr ys 0. 05 Pol ygonum_bi st or t a 0. 00 Saxi f r aga_opposi t i f ol i a 0. 10 Daucus_car ot a 0. 00 Par nassi a_pal ust r i s 1. 00
For each pair of species (sp1, sp2), the number (N) of plots where both species were present is divided by the number of plots where the rarest of the two species is present. This index ranges from 0 (no co- occurrence) to 1 (always in co-occurrence) as given in eq. 1.
where N (S1 S2) is the number of times species S1 and S2 co-occur, while Min(N S1 , N S2 ) is the number of times species S1 and S2 co-occur, while is the occurrence frequency of the rarest of the two species.
13
14
2.6 Niche Quantification with Ordination techniques 2.6.1 Species Occurrences Desaggregation Occurrences Desaggregation of Bromus erectus sstr with ecospat . occ. desaggr egat i on
> spp<- ecospat . t est Ni che > sp1<- spp[ 1: 32, 1: 3] > occ. sp1<- ecospat . occ. desaggr egat i on( df var =sp1, col xy=2: 3, col var =NULL, mi n. di st =500, pl ot =TRUE)
Pixels in red are more distant from each other than 500 meters and are kept in the final dataset.
560000 565000 570000 575000 1 2 5 0 0 0 1 3 0 0 0 0 1 3 5 0 0 0 1 4 0 0 0 0 1 4 5 0 0 0 1 5 0 0 0 0 distribution of occurences #initial (black): 32 | #kept (red): 30 long l a t 15
Occurrences Desaggregation of Saxifraga oppositifolia with ecospat . occ. desaggr egat i on
> sp2<- spp[ 33: 57, 1: 3] > occ. sp2<- ecospat . occ. desaggr egat i on( df var =sp2, col xy=2: 3, col var =NULL, mi n. di st =500, pl ot =TRUE)
Pixels in red are more distant from each other than 500 meters and are kept in the final dataset.
572000 574000 576000 578000 580000 582000 1 2 0 0 0 0 1 2 5 0 0 0 1 3 0 0 0 0 1 3 5 0 0 0 distribution of occurences #initial (black): 25 | #kept (red): 13 long l a t 16
2.6.2 Sample Environmental Variables
Add environmental values to the Bromus erectus sstr species dataframe with ecospat . sampl e. envar
> cl i m<- ecospat . t est Dat a[ 2: 8] > occ_sp1<- na. excl ude( ecospat . sampl e. envar ( df sp=occ. sp1, col spxy=1: 2, col spkept =1: 2, df var =cl i m, col var xy=1: 2, col var =" al l " , r esol ut i on=25) )
Add environmental values to the Saxifraga oppositifolia species dataframe with ecospat . sampl e. envar
> occ_sp2<- na. excl ude( ecospat . sampl e. envar ( df sp=occ. sp2, col spxy=1: 2, col spkept =1: 2, df var =cl i m, col var xy=1: 2, col var =" al l " , r esol ut i on=25) )
2.6.3 Dynamic Occurrence Densities Grid
> spp<- ecospat . t est Ni che > cl i m<- ecospat . t est Dat a[ 2: 8] > > > occ. sp_t est <- na. excl ude( ecospat . sampl e. envar ( df sp=spp, col spxy=2: 3, col s pkept =1: 3, df var =cl i m, col var xy=1: 2, col var =" al l " , r esol ut i on=25) ) > > occ. sp<- cbi nd( occ. sp_t est , spp[ , 4] ) #add speci es names > # l i st of speci es > sp. l i st <- l evel s( occ. sp[ , 1] ) > sp. nbocc<- c( ) > f or ( i i n 1: l engt h( sp. l i st ) ) {sp. nbocc<- c( sp. nbocc, l engt h( whi ch( occ. sp[ , 1 ] == sp. l i st [ i ] ) ) ) } > #cal cul at e t he nb of occur ences per speci es > #r emove speci es wi t h l ess t han 5 occur r ences > sp. l i st <- sp. l i st [ sp. nbocc>4] > nb. sp<- l engt h( sp. l i st ) #nb of speci es > l s( ) [ 1] " cl i m" " ecospat . t est Dat a" " ecospat . t est Ni che" " i " " nb. sp" [ 6] " occ. sp" " occ. sp_t est " " occ. sp1" " occ. sp2" " occ_sp1" [ 11] " occ_sp2" " sp. l i st " " sp. nbocc" " sp1" " sp2" [ 16] " spp"
> # sel ect i on of var i abl es t o i ncl ude i n t he anal yses > # t r y wi t h al l and t hen t r y onl y Wor l dCl i mVar i abl es > Xvar <- c( 3: 7) > nvar <- l engt h( Xvar ) > > #number of i nt er at i on f or t he t est s of equi val ency and si mi l ar i t y > i t er at i ons<- 100 > #r esol ut i on of t he gr i ddi ng of t he cl i mat e space > R=100
> dat a<- r bi nd( occ. sp[ , Xvar +1] , cl i m[ , Xvar ] ) > #dat aset f or t he anal ysi s, i ncl ues al l t he si t es of t he st udy ar ea + t he occur ences f or al l t he speci es > head( dat a) ddeg mi nd sr ad sl p t opo 1 2416 - 137 228574 9 4 2 2221 - 612 212396 17 - 137 3 2281 - 995 252419 20 36 4 2271 128 261695 20 65 5 2160 - 714 260045 23 6 6 2212 - 632 210162 4 - 121 > di m( dat a) [ 1] 399 5
> w<- c( r ep( 0, nr ow( occ. sp) ) , r ep( 1, nr ow( cl i m) ) ) > #vect or of wei ght , 0 f or t he occur ences, 1 f or t he si t es of t he st udy ar ea > pca. cal <- dudi . pca( dat a, r ow. w = w, cent er = T, scal e = T, scannf = F, n f = 2) > # t he pca i s cal i br at ed on al l t he si t es of t he st udy ar ea > # occur ences ar e not used f or t he cal i br at i on, but t hei r scor es ar e cal c ul at ed > ####### sel ect i on of speci es ###### > sp. l i st [ 1] " sp1" " sp2" " sp3" " sp4" > sp. combn<- combn( 1: 2, 2) > f or ( i i n 1: ncol ( sp. combn) ) { + r ow. sp1<- whi ch( occ. sp[ , 1] == sp. l i st [ sp. combn[ 1, i ] ] ) # r ows i n dat a co r r espondi ng t o sp1 + r ow. sp2<- whi ch( occ. sp[ , 1] == sp. l i st [ sp. combn[ 2, i ] ] ) # r ows i n dat a co r r espondi ng t o sp2 + name. sp1<- sp. l i st [ sp. combn[ 1, i ] ] + name. sp2<- sp. l i st [ sp. combn[ 2, i ] ] + # pr edi ct t he scor es on t he axes + scor es. cl i m<- pca. cal $l i [ ( nr ow( occ. sp) +1) : nr ow( dat a) , ] #scor es f or gl obal cl i mat e + scor es. sp1<- pca. cal $l i [ r ow. sp1, ] #scor es f or sp1 + scor es. sp2<- pca. cal $l i [ r ow. sp2, ] #scor es f or sp2 + }
Dynamic Occurrence Densities Grid ecospat . gr i d. cl i m. dyn
> z1. dyn<- ecospat . gr i d. cl i m. dyn ( scor es. cl i m, scor es. cl i m, scor es. sp1, R=1 00)
> z2. dyn<- ecospat . gr i d. cl i m. dyn ( scor es. cl i m, scor es. cl i m, scor es. sp2, R=1 00)
Niche Equivalency Test ecospat . ni che. equi val ency. t est
> a. dyn<- ecospat . ni che. equi val ency. t est ( z1=z1. dyn , z2=z2. dyn, r ep=100)
Niche Similarity Test ecospat . ni che. si mi l ar i t y. t est
> b. dyn<- ecospat . ni che. si mi l ar i t y. t est ( z1=z1. dyn , z2=z2. dyn, r ep=100)
> b2. dyn<- ecospat . ni che. si mi l ar i t y. t est ( z1=z2. dyn , z2=z1. dyn, r ep=100) 18
Plot Species Density ecospat . pl ot . ni che for one species
> z1<- ecospat . gr i d. cl i m. dyn( scor es. cl i m, scor es. cl i m, scor es. sp1, R) > ecospat . pl ot . ni che ( z1, t i t l e=" sp1" , name. axi s1=" PC1" , name. axi s2=" PC2" , cor =F)
The plot shows the occupancy of species 1 (grey gradient) and environmental availability in the study area (solid line shows 100% of available climates; dashed line shows 50% most frequent available climates)
19
> z2<- ecospat . gr i d. cl i m. dyn( scor es. cl i m, scor es. cl i m, scor es. sp2, R) > ecospat . pl ot . ni che ( z2, t i t l e=" sp2" , name. axi s1=" PC1" , name. axi s2=" PC2" , cor =F)
The plot shows the occupancy of species 2 (grey gradient) and environmental availability in the study area (solid line shows 100% of available climates; dashed line shows 50% most frequent available climates)
20
Niche Categories and Species Density ecospat . pl ot . ni che. dyn
> ecospat . pl ot . ni che. dyn( z1. dyn, z2. dyn, t i t l e=" Ni che Cat egor i es and Speci es Densi t y" , quant =0. 75)
Green pixels indicate the unfilled niche (native only), blue pixels the stable niche (common between native and invasive) and red pixels the expansion of the niche (invasive only).
21
## Dr aw Cent r oi d Ar r ows ## ecospat . f un. ar r ows
> ecospat . f un. ar r ows ( scor es. sp1, scor es. sp2, scor es. cl i m, scor es. cl i m)
The arrow indicates the change in the centroid of the niche.
22
Plot Variables Contribution ecospat . pl ot . cont r i b
> ecospat . pl ot . cont r i b( cont r i b=pca. cal $co, ei gen=pca. cal $ei g)
The correlation circle indicate the contribution of original predictors to the PCA axes
> ecospat . ni che. over l ap ( z1=z1. dyn, z2=z2. dyn, cor =TRUE) $D [ 1] 2. 409473e- 05
$I [ 1] 0. 2929149
23
Plot Overlap Test ecospat . pl ot . over l ap. t est Equivalency > ecospat . pl ot . over l ap. t est ( a. dyn, " D" , " Equi val ency" )
The plot indicates that the observed overlap is lower than 95% of simulated overlaps. The assumption of niche equivalency is thus rejected. 24
Similarity 2->1 > ecospat . pl ot . over l ap. t est ( b. dyn, " D" , " Si mi l ar i t y 2- >1" )
The plot indicates that the observed overlap is within 95% of simulated overlaps. The assumption of niche similarity thus cannot be rejected. 25
Similarity 1->2 > ecospat . pl ot . over l ap. t est ( b2. dyn, " D" , " Si mi l ar i t y 1- >2" )
The plot indicates that the observed overlap is within 95% of simulated overlaps. The assumption of niche similarity thus cannot be rejected.
26
Niche Expansion, Stability, and Unfilling ecospat . ni che. dyn. i ndex
R=10 #r esol ut i on of gr i d = 10
> t est <- ecospat . ni che. dyn. i ndex ( z1. dyn, z2. dyn, i nt er sect i on=NA) > t est
$dynami c. i ndex. w expansi on st abi l i t y unf i l l i ng 0. 96058755 0. 03941245 0. 95792798
27
3 ECOLOGICAL NICHE MODELLING 3.1 Data Preparation for Modelling 3.1.1 Calibration and Evaluation Dataset
Calibration and Evaluation Dataset ecospat . cal eval
> cal eval <- ecospat . cal eval ( dat a = ecospat . t est Dat a[ 9] , xy = dat a[ 2: 3] , r ow. num= 1: nr ow( dat a) , nr ep = 2, r at i o = 0. 7, di saggr egat e = 0. 2, pseudoabs = 100, npr es = 10, r epl ace = F)
Sample Pseudo Absences with ecospat . r and. pseudoabsences
> gl ob<- ecospat . t est Dat a[ 2: 8] > pr esence<- ecospat . t est Dat a[ c( 2: 3, 9) ] > pr esence<- pr esence[ pr esence[ , 3] ==1, 1: 2]
> ecospat . r and. pseudoabsences ( nbabsences=10, gl ob=gl ob, col xygl ob=1: 2, col var = " al l " , pr esence= pr esence, col xypr esence=1: 2, mi ndi st =20) l ong l at ddeg mi nd sr ad sl p t opo 113 576027. 9 148852. 9 1375 634 243876 35 - 205 156 573894. 0 118674. 0 1394 1643 118865 27 - 180 180 582675. 7 153675. 5 1021 1131 204805 8 - 145 134 571125. 0 136374. 6 1523 161 244663 15 21 245 577524. 7 122699. 5 952 1655 213170 23 - 270 193 580599. 0 142450. 0 999 1340 277033 34 83 232 576053. 4 136301. 8 778 2054 168960 16 412 293 572325. 0 119773. 0 845 1960 150244 22 390 94 572950. 0 134925. 0 1749 - 83 246320 12 17 150 579424. 7 152150. 3 1195 568 271496 29 29
3.1.3 Make Data Frame Create a biomod2-compatible dataframe with ecospat . makeDat aFr ame for Sol anum acaule and Bradypus variegatus
> f i l es <- l i st . f i l es( pat h=past e( syst em. f i l e( package=" di smo" ) , + ' / ex' , sep=' ' ) , pat t er n=' gr d' , f ul l . names=TRUE ) > pr edi ct or s <- r ast er : : st ack( f i l es[ c( 9, 1: 8) ] ) #f i l e 9 has mor e NA val ue s t han t he ot her f i l es, t hi s i s why we choose i t as t he f i r st l ayer ( see ? r andomPoi nt s) > sol anum<- ecospat . makeDat aFr ame( " Sol anumacaul e" , n=5000, expl . var =pr edi ct or s, use. gbi f =T)
Sol anumacaul e* : 1079 occur r ences f ound 1- 1000- 1079
################################ Sol anum. acaul e ########## Occur r ence dat a of f ol l owi ng speci es wher e added f r omGBI F: Sol anumacaul e sol anumacaul e acaul e BI TTER Sol anumacaul e Bi t t er Sol anumacaul e f . acaul e Sol anumacaul e subsp. punae
########## Dat af r ame cr eat ed wi t h 132 Pr esence Poi nt s and 5000 Pseudo- Absence Poi nt s. ################################
War ni ng: Ther e ar e 8 pr edi ct or var i abl e pai r s wi t h a cor r el at i on coef f i ci ent s of | r | > 0. 7. Be awar e of col l i near i t y!
30
################################ bi ome bi o1 bi o12 bi o16 bi o17 bi o5 bi o6 bi o7 bi o1 0. 41 bi o12 0. 64 0. 53 bi o16 0. 62 0. 62 0. 93 bi o17 0. 43 0. 13 0. 73 0. 45 bi o5 0. 10 0. 71 0. 14 0. 21 0. 08 bi o6 0. 46 0. 93 0. 63 0. 71 0. 23 0. 42 bi o7 0. 45 0. 61 0. 61 0. 66 0. 29 0. 10 0. 86 bi o8 0. 30 0. 86 0. 36 0. 43 0. 06 0. 76 0. 69 0. 33 > head( sol anum) x y cel l . i d PA Sol anum. acaul e bi ome bi o1 bi o12 1 - 97. 25 16. 75 8612 1 0 3 189 1230 2 - 66. 75 - 29. 25 25785 1 0 7 189 319 3 - 69. 75 - 44. 25 31359 1 0 8 79 142 4 - 75. 75 - 14. 75 20373 1 0 13 192 2 5 - 76. 25 35. 25 1772 1 0 5 167 1372 6 - 56. 75 - 10. 75 18923 1 0 1 251 2097 bi o16 bi o17 bi o5 bi o6 bi o7 bi o8 1 706 30 295 73 222 196 2 182 12 341 22 319 248 3 54 18 218 - 33 250 44 4 2 0 286 100 186 228 5 451 282 311 12 299 251 6 986 36 345 152 192 249
> f i l e <- past e( syst em. f i l e( package=" di smo" ) , " / ex/ br adypus. csv" , sep=" " ) > br adypus <- r ead. t abl e( f i l e, header =TRUE, sep=' , ' ) [ , c( 2, 3, 1) ] > head( br adypus) l on l at speci es 1 - 65. 4000 - 10. 3833 Br adypus var i egat us 2 - 65. 3833 - 10. 3833 Br adypus var i egat us 3 - 65. 1333 - 16. 8000 Br adypus var i egat us 4 - 63. 6667 - 17. 4500 Br adypus var i egat us 5 - 63. 8500 - 17. 4000 Br adypus var i egat us 6 - 64. 4167 - 16. 0000 Br adypus var i egat us
> sol . aca <- sol anum[ sol anum$Sol anum. acaul e==1, c( ' x' , ' y' ) ] > sol . aca$Spec <- " Sol anum. acaul e" > col names( br adypus) <- col names( sol . aca) > spec. l i st <- r bi nd( br adypus, sol . aca) > df <- ecospat . makeDat aFr ame( spec. l i st , expl . var =pr edi ct or s, n=5000 , use. gbi f =F)
################################ Br adypus. var i egat us ########## Dat af r ame cr eat ed wi t h 94 Pr esence Poi nt s and 5000 Pseudo- Absence Poi nt s. ################################
################################ Sol anum. acaul e ########## Dat af r ame cr eat ed wi t h 132 Pr esence Poi nt s and 5000 Pseudo- Absence Po i nt s. ################################
################################ War ni ng: Ther e ar e 8 pr edi ct or var i abl e pai r s wi t h a cor r el at i on coef f i c i ent s of | r | > 0. 7. Be awar e of col l i near i t y!
31
################################ bi ome bi o1 bi o12 bi o16 bi o17 bi o5 bi o6 bi o7 bi o1 0. 39 bi o12 0. 63 0. 51 bi o16 0. 62 0. 61 0. 93 bi o17 0. 42 0. 13 0. 75 0. 49 bi o5 0. 09 0. 71 0. 12 0. 19 0. 09 bi o6 0. 46 0. 93 0. 62 0. 70 0. 23 0. 42 bi o7 0. 45 0. 60 0. 61 0. 66 0. 31 0. 12 0. 85 bi o8 0. 28 0. 86 0. 34 0. 43 0. 05 0. 76 0. 70 0. 33 > head( df ) x y cel l . i d PA Br adypus. var i egat us 1 - 61. 25 - 23. 75 23750 1 0 2 - 94. 25 33. 75 2294 1 0 3 - 80. 25 34. 75 1950 1 0 4 - 55. 75 - 10. 25 18739 1 0 5 - 87. 25 37. 75 820 1 0 6 - 97. 25 16. 75 8612 1 0 Sol anum. acaul e bi ome bi o1 bi o12 bi o16 bi o17 bi o5 bi o6 1 0 2 231 631 292 35 350 102 2 0 5 169 1270 386 274 338 - 12 3 0 4 160 1179 358 244 321 - 9 4 0 1 255 2183 1034 47 357 156 5 0 4 135 1157 350 244 315 - 52 6 0 3 189 1230 706 30 295 73 bi o7 bi o8 1 248 267 2 350 169 3 330 252 4 201 251 5 367 133 6 222 196
> df . 1 <- ecospat . makeDat aFr ame( spec. l i st , expl . var =pr edi ct or s, n=5000 , use. gbi f =F, mi ndi st =1)
################################ Br adypus. var i egat us ########## Dat af r ame cr eat ed wi t h 60 Pr esence Poi nt s and 5000 Pseudo- Absence Poi nt s. ########## War ni ng: Number of pr esence poi nt s i s l ess t han 10 x number of pr edi ct or s. Be awar e of over par amet r i zat i on. You onl y have 60 Pr esences but 9 pr edi ct o r s.
################################ Sol anum. acaul e ########## Dat af r ame cr eat ed wi t h 45 Pr esence Poi nt s and 5000 Pseudo- Absence Poi nt s. ########## War ni ng: Number of pr esence poi nt s i s l ess t han 10 x number of pr edi ct or s . Be awar e of over par amet r i zat i on. You onl y have 45 Pr esences but 9 pr edi c t or s. ################################
################################ War ni ng: Ther e ar e 7 pr edi ct or var i abl e pai r s wi t h a cor r el at i on coef f i c i ent s of | r | > 0. 7. Be awar e of col l i near i t y! ################################ bi ome bi o1 bi o12 bi o16 bi o17 bi o5 bi o6 bi o7 bi o1 0. 40 bi o12 0. 64 0. 54 bi o16 0. 62 0. 63 0. 93 bi o17 0. 44 0. 14 0. 73 0. 47 bi o5 0. 08 0. 69 0. 14 0. 21 0. 09 bi o6 0. 45 0. 93 0. 63 0. 72 0. 23 0. 40 bi o7 0. 45 0. 63 0. 61 0. 66 0. 30 0. 11 0. 87 bi o8 0. 29 0. 85 0. 37 0. 44 0. 06 0. 74 0. 68 0. 34 32
> pl ot ( pr edi ct or s[ [ 1] ] ) > poi nt s( df [ df $Br adypus. var i egat us==1, c( ' x' , ' y' ) ] ) > poi nt s( df . 1[ df . 1$Br adypus. var i egat us==1, c( ' x' , ' y' ) ] , col =" r ed" )
33
3.2 Model Calibration 3.2.1 Modelling Techniques - Cross-validation
Cross Validation Example Function ecospat . cv. exampl e
> ecospat . cv. exampl e ( ) Comput at i ons 1 f or speci es Agr ost i s_capi l l ar i s i s st ar t i ng now. . . . . . . . . . . . . . . . GLM > cal i br at i on GAM > cal i br at i on GBM > cal i br at i on Di st r i but i on not speci f i ed, assumi ng ber noul l i . . . ME > cal i br at i on RF > cal i br at i on . . . . . . . . . . . . . . . . . . . . . . . . . . Comput at i ons 2 f or speci es Leont odon_hi spi dus_sl i s st ar t i ng now. . . . . . . . . . . . . . . . GLM > cal i br at i on GAM > cal i br at i on GBM > cal i br at i on Di st r i but i on not speci f i ed, assumi ng ber noul l i . . . ME > cal i br at i on RF > cal i br at i on . . . . . . . . . . . . . . . . . . . . . . . . . . K has been f i nal l y set t o 10 K has been f i nal l y set t o 10 K has been f i nal l y set t o 10 K has been f i nal l y set t o 10 K has been f i nal l y set t o 10
K-fold and leave-one-out cross validation for GLM with ecospat . cv. gl m
> gl m<- ecospat . cv. gl m( gl m. obj = get ( " gl m. Agr ost i s_capi l l ar i s" , envi r =eco spat . env) , K=10, cv. l i m=10, j ack. kni f e=F) K has been f i nal l y set t o 10
> head( gl m) i d obs pr edi ct i ons 1 1 1 0. 5218106 2 2 0 0. 2620242 3 3 0 0. 1763081 4 4 0 0. 2712630 5 5 0 0. 2261130 6 6 1 0. 3348829
34
Permutation function to get p-values on GLM coefficients and deviance with ecospat . per mut . gl m
> ecospat . per mut . gl m( get ( " gl m. Agr ost i s_capi l l ar i s" , envi r =ecospat . env) , 1000) Per mut at i on 100 i s st ar t i ng now. . . Per mut at i on 200 i s st ar t i ng now. . . Per mut at i on 300 i s st ar t i ng now. . . Per mut at i on 400 i s st ar t i ng now. . . Per mut at i on 500 i s st ar t i ng now. . . Per mut at i on 600 i s st ar t i ng now. . . Per mut at i on 700 i s st ar t i ng now. . . Per mut at i on 800 i s st ar t i ng now. . . Per mut at i on 900 i s st ar t i ng now. . . Per mut at i on 1000 i s st ar t i ng now. . . . . . Conmput i ng pval ues by per mut at i ons. . . . . . pval I nt er cept 0. 00000 ddeg 0. 00000 ddeg^2 0. 00000 mi nd 0. 00000 mi nd^2 0. 00000 sl p 0. 00000 sl p^2 0. 00000 t opo 0. 00000 t opo^2 0. 00000 D2 0. 00094 adj . D2 0. 00000
Permutation test on the GLM parameters. The function permutes randomly the observations (by default 999 times) and re-calculate some parameters (intercept, coeffecients of the predictors, pseudo- R2=deviance D2) for each of the random iterations. Then, the distribution of the random parameters is compared to the true parameters. From this, it is possible to derive a p-value, which shows how far a true value for a given parameters deviates from the random distribution. All the parameters are robust and significantly different from the random distribution for gl m. Agr ost i s_capi l l ar i s (at a 0.05 confidence interval).
K-fold and leave-one-out cross validation for GAM with ecospat . cv. gam
> gam<- ecospat . cv. gam( gam. obj = get ( " gam. Agr ost i s_capi l l ar i s" , envi r =ecos pat . env) , K=10, cv. l i m=10, j ack. kni f e=F) K has been f i nal l y set t o 10 > head( gam) i d obs pr edi ct i ons 1 1 1 0. 5157950 2 2 0 0. 3548040 3 3 0 0. 2422279 4 4 0 0. 3803751 5 5 0 0. 2419198 6 6 1 0. 4553161
35
K-fold and leave-one-out cross validation for GBM with ecospat . cv. gbm
> gbm<- ecospat . cv. gbm( gbm. obj = get ( " gbm. Agr ost i s_capi l l ar i s" , envi r =ecos pat . env) , ecospat . t est Dat a, K=10, cv. l i m=10, j ack. kni f e=F) K has been f i nal l y set t o 10
> head( gbm) i d obs pr edi ct i ons 1 1 1 0. 5489325 2 2 0 0. 2905992 3 3 0 0. 2614747 4 4 0 0. 3128251 5 5 0 0. 2652168 6 6 1 0. 4580952
K-fold and leave-one-out cross validation for Maxent with ecospat . cv. me
> df . out . cv. me. agr oca <- ecospat . cv. me( ecospat . t est Dat a, names( ecospat . t es t Dat a) [ 9] , names( ecospat . t est Dat a) [ 4: 8] , K = 10, cv. l i m= 10, j ack. kni f e = F) K has been f i nal l y set t o 10 > head( df . out . cv. me. agr oca) i d obs pr edi ct i ons 1 1 1 0. 421 2 2 0 0. 335 3 3 0 0. 289 4 4 0 0. 354 5 5 0 0. 344 6 6 1 0. 455
K-fold and leave-one-out cross validation for Random Forest with ecospat . cv. r f
> r f <- ecospat . cv. r f ( get ( " r f . Agr ost i s_capi l l ar i s" , envi r = ecospat . env) , ecospat . t est Dat a[ , c( 9, 4: 8) ] , K = 10, cv. l i m= 10, j ack. kni f e = F) K has been f i nal l y set t o 10 > head( r f ) i d obs pr edi ct i ons 1 1 1 0. 389 2 2 0 0. 081 3 3 0 0. 139 4 4 0 0. 185 5 5 0 0. 116 6 6 1 0. 484
Variance partitioning for binomial GLM or GAM based on the deviance of two groups or predicting variables with ecospat . var par t
> ecospat . var par t ( model . 1= get ( " gl m. Agr ost i s_capi l l ar i s" , envi r =ecospat . env) , model . 2= get ( " gl m. Leont odon_hi spi dus_sl " , envi r =ecospat . env) , mode l . 12= get ( " gl m. Leont odon_hi spi dus_sl " , envi r =ecospat . env) ) Devi ance D2. model . 1 0. 000 D2. model . 2 - 0. 275 D2. J oi ned. Cont r i b. 1. 2. 0. 420 D2. Unexpl ai ned 0. 855
36
3.2.2 Variables Importance
Calculate the importance of variables for Maxent in the same way Biomod does, with the function ecospat . maxent var i mpor t
> model <- get ( " me. Leont odon_hi spi dus_sl " , envi r =ecospat . env) > df var <- ecospat . t est Dat a[ 4: 8] > nper m<- 5 > ecospat . maxent var i mpor t ( model , df var , nper m) [ 1] " ddeg" [ 1] " mi nd" [ 1] " sr ad" [ 1] " sl p" [ 1] " t opo"
3.2.3 Model Averaging and Ensemble Forecasting
Calculate the mean (or weighted mean) of several predictions with ecospat . Epr ed
> x <- ecospat . t est Dat a[ c( 78, 82) ] #A dat af r ame obj ect wi t h SDM pr edi ct i ons
> mean<- ecospat . Epr ed ( x, w=r ep( 1, ncol ( x) ) , t h=0. 5) > head( mean) gl m_Pr i t zel ago_al pi na_sst r gbm_Pr i t zel ago_al pi na_sst r E [ 1, ] 0 0 0 [ 2, ] 0 0 0 [ 3, ] 0 0 0 [ 4, ] 0 0 0 [ 5, ] 0 0 0 [ 6, ] 0 0 0
> t ai l ( mean) gl m_Pr i t zel ago_al pi na_sst r gbm_Pr i t zel ago_al pi na_sst r E [ 295, ] 0 0 0 [ 296, ] 0 0 0 [ 297, ] 0 0 0 [ 298, ] 0 0 0 [ 299, ] 1000 1000 1000 [ 300, ] 0 0 0
37
3.3 Model Evaluation 3.3.1 Presence-only Evaluation Indices- Boyce Index
Calculate the Boyce index with ecospat . boyce
> obs <- ( ecospat . t est Dat a$gl m_Saxi f r aga_opposi t i f ol i a[ whi ch( ecospat . t est D at a$Saxi f r aga_opposi t i f ol i a==1) ] )
> ecospat . boyce ( f i t = ecospat . t est Dat a$gl m_Saxi f r aga_opposi t i f ol i a , obs, ncl ass=0, wi ndow. w=" def aul t " , r es=100, PEpl ot =T)
Here the boyce index is 0.819. If the rank of predicted expected ratio would be completely ordered along habitat suitability axis then boyce index would be 1.
39
3.3.2 Accuracy of Community Prediction
Indices of accuracy of community predictions ecospat . SSDMeval
> eval <- ecospat . t est Dat a[ c( 9: 24, 53, 55, 56, 58) ] > pr ed<- ecospat . t est Dat a[ c( 59: 78) ] > ecospat . SSDMeval ( eval , pr ed, pr oba=T, nt i r =2)
devi at i on. r i ch. pr ed. 1 devi at i on. r i ch. pr ed. 2 over pr edi ct i on. 1 1 - 2 - 3 0. 2352941 2 - 5 - 8 0. 3125000 3 - 6 - 4 0. 4666667 4 - 4 - 3 0. 3333333 5 - 9 - 9 0. 5000000 6 0 - 3 0. 0000000 over pr edi ct i on. 2 under pr edi ct i on. 1 under pr edi ct i on. 2 pr edi ct i on. success. 1 1 0. 2352941 0. 6666667 0. 3333333 0. 7 0 2 0. 5000000 0. 0000000 0. 0000000 0. 7 5 3 0. 3333333 0. 2000000 0. 2000000 0. 6 0 4 0. 2666667 0. 2000000 0. 2000000 0. 7 0 5 0. 5000000 0. 0000000 0. 0000000 0. 5 5 6 0. 3000000 0. 0000000 0. 0000000 1. 0 0 pr edi ct i on. success. 2 sensi t i vi t y. 1 sensi t i vi t y. 2 speci f i ci t y. 1 1 0. 75 0. 2000000 0. 3333333 0. 8666667 2 0. 60 0. 4444444 0. 3333333 1. 0000000 3 0. 70 0. 3636364 0. 4444444 0. 8888889 4 0. 75 0. 4444444 0. 5000000 0. 9090909 5 0. 55 0. 1818182 0. 1818182 1. 0000000 6 0. 85 1. 0000000 0. 7692308 1. 0000000 speci f i ci t y. 2 kappa. 1 kappa. 2 TSS. 1 TSS. 2 si mi l ar i t y. 1 1 0. 9285714 0. 07692308 0. 3055556 0. 06666667 0. 2619048 0. 2500000 2 1. 0000000 0. 46808511 0. 2857143 0. 44444444 0. 3333333 0. 6153846 3 0. 9090909 0. 23809524 0. 3684211 0. 25252525 0. 3535354 0. 5000000 4 0. 9166667 0. 36842105 0. 4444444 0. 35353535 0. 4166667 0. 5714286 5 1. 0000000 0. 16666667 0. 1666667 0. 18181818 0. 1818182 0. 3076923 6 1. 0000000 1. 00000000 0. 7000000 1. 00000000 0. 7692308 1. 0000000 si mi l ar i t y. 2 J accar d. 1 J accar d. 2 1 0. 4444444 0. 1428571 0. 2857143 2 0. 5000000 0. 4444444 0. 3333333 3 0. 5714286 0. 3333333 0. 4000000 4 0. 6153846 0. 4000000 0. 4444444 5 0. 3076923 0. 1818182 0. 1818182 6 0. 8695652 1. 0000000 0. 7692308
40
3.4 Spatial Predictions and Projections 3.4.1 Model Binarization
Generate a binary model from an original biomod2 model ecospat . bi nar y. model
> l i br ar y( bi omod2)
#Run bi omod2 t o pr oduce a model pr edi ct i on > Dat aSpeci es <- r ead. csv( syst em. f i l e( " ext er nal / speci es/ mammal s_t abl e. csv" , package=" bi omod2" ) ) > > myRespName <- ' Gul oGul o' > # t he pr esence/ absences dat a f or our speci es > myResp <- as. numer i c( Dat aSpeci es[ , myRespName] ) > # t he XY coor di nat es of speci es dat a > myRespXY <- Dat aSpeci es[ , c( " X_WGS84" , " Y_WGS84" ) ] > # l oad t he envi r onment al r ast er l ayer s ( coul d be . i mg, Ar cGI S > # r ast er s or any suppor t ed f or mat by t he r ast er package) > # Envi r onment al var i abl es ext r act ed f r omWor l dcl i m( bi o_3, bi o_4, > # bi o_7, bi o_11 & bi o_12) > myExpl = st ack( syst em. f i l e( " ext er nal / bi ocl i m/ cur r ent / bi o3. gr d" , + package=" bi omod2" ) , + syst em. f i l e( " ext er nal / bi ocl i m/ cur r ent / bi o4. gr d" , + package=" bi omod2" ) , + syst em. f i l e( " ext er nal / bi ocl i m/ cur r ent / bi o7. gr d" , + package=" bi omod2" ) , + syst em. f i l e( " ext er nal / bi ocl i m/ cur r ent / bi o11. gr d" , + package=" bi omod2" ) , + syst em. f i l e( " ext er nal / bi ocl i m/ cur r ent / bi o12. gr d" , + package=" bi omod2" ) ) > > myBi omodDat a <- BI OMOD_For mat i ngDat a( r esp. var = myResp, + expl . var = myExpl , + r esp. xy = myRespXY, + r esp. name = myRespName)
- =- =- =- =- =- =- =- =- =- =- =- =- = Gul oGul o Dat a For mat i ng - =- =- =- =- =- =- =- =- =- =- =- > No pseudo absences sel ect i on ! ! No dat a has been set asi de f or model i ng eval uat i on - =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- = Done - =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =
> myBi omodDat a - =- =- =- =- =- =- =- =- =- =- =- =- = ' BI OMOD. f or mat ed. dat a' - =- =- =- =- =- =- =- =- =- =- =- =
sp. name = Gul oGul o
661 pr esences, 1827 t r ue absences and 0 undi f i ned poi nt s i n dat aset
5 expl anat or y var i abl es
bi o3 bi o4 bi o7 bi o11 Mi n. : 10. 19 Mi n. : 72 Mi n. : 54. 5 Mi n. : - 447. 75 1st Qu. : 21. 22 1st Qu. : 2641 1st Qu. : 186. 0 1st Qu. : - 184. 32 Medi an : 35. 00 Medi an : 6682 Medi an : 306. 2 Medi an : 24. 23 Mean : 40. 29 Mean : 7358 Mean : 310. 9 Mean : - 2. 64 3r d Qu. : 56. 35 3r d Qu. : 11752 3r d Qu. : 424. 6 3r d Qu. : 196. 30 Max. : 92. 00 Max. : 22314 Max. : 718. 0 Max. : 283. 00 bi o12 Mi n. : 0. 028 1st Qu. : 276. 493 Medi an : 562. 931 Mean : 853. 516 3r d Qu. : 1200. 592 Max. : 5431. 002 - =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- = 41
> myBi omodOpt i on <- BI OMOD_Model i ngOpt i ons( ) > > > myBi omodModel Out <- BI OMOD_Model i ng( + myBi omodDat a, + model s = c( ' GLM' ) , + model s. opt i ons = myBi omodOpt i on, + NbRunEval =1, + Dat aSpl i t =80, + Pr eval ence=0. 5, + Var I mpor t =3, + model s. eval . met h = c( ' TSS' , ' ROC' ) , + SaveObj = TRUE, + r escal . al l . model s = TRUE, + do. f ul l . model s = FALSE, + model i ng. i d = past e( myRespName, " Fi r st Model i ng" , sep=" " ) )
Loadi ng r equi r ed l i br ar y. . .
Checki ng Model s ar gument s. . .
Cr eat i ng sui t abl e Wor kdi r . . .
> Aut omat i c wei ght s cr eat i on t o r i se a 0. 5 pr eval ence
- =- =- =- =- =- =- =- =- =- =- =- = Gul oGul o Model i ng Summar y - =- =- =- =- =- =- =- =- =- =- =-
5 envi r onment al var i abl es ( bi o3 bi o4 bi o7 bi o11 bi o12 ) Number of eval uat i on r epet i t i ons : 1 Model s sel ect ed : GLM
> myBi omodModel Eval <- get _eval uat i ons( myBi omodModel Out ) > > > myBi omodEM <- BI OMOD_Ensembl eModel i ng( + model i ng. out put = myBi omodModel Out , + chosen. model s = ' al l ' , + em. by=' al l ' , + eval . met r i c = c( ' TSS' ) , + eval . met r i c. qual i t y. t hr eshol d = c( 0. 7) , + pr ob. mean = T, + pr ob. cv = T, + pr ob. ci = T, + pr ob. ci . al pha = 0. 05, + pr ob. medi an = T, + commi t t ee. aver agi ng = T, + pr ob. mean. wei ght = T, + pr ob. mean. wei ght . decay = ' pr opor t i onal ' )
- =- =- =- =- =- =- =- =- =- =- =- =- = Bui l d Ensembl e Model s - =- =- =- =- =- =- =- =- =- =- =- =-
! al l model s avai l abl e wi l l be i ncl uded i n ensembl e. model i ng > Eval uat i on & Wei ght i ng met hods summar y : TSS over 0. 7
> Tot al Consensus ensembl e model i ng ! Model s pr oj ect i ons f or whol e zonat i on r equi r ed. . . > Pr oj ect i ng Gul oGul o_Al l Dat a_RUN1_GLM . . . > Mean of pr obabi l i t i es. . . Eval uat i ng Model st uf f . . . > Coef of var i at i on of pr obabi l i t i es. . . Eval uat i ng Model st uf f . . . > Conf i dence I nt er val . . . Eval uat i ng Model st uf f . . . Eval uat i ng Model st uf f . . . > Medi an of pt obabi l i t i es. . . Eval uat i ng Model st uf f . . . > Comi t t ee aver agi ng. . . Eval uat i ng Model st uf f . . . > Pr ababi l i t i es wegt hi ng mean. . . Eval uat i ng Model st uf f . . . - =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- = Done - =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- = > myBi omodEM
expl . var . names : bi o3 bi o4 bi o7 bi o11 bi o12
model s comput ed: Gul oGul o_Tot al Consensus_TSS_EMmean, Gul oGul o_Tot al Consensus_TSS_EMcv, Gul o Gul o_Tot al Consensus_TSS_EMci I nf , Gul oGul o_Tot al Consensus_TSS_EMci Sup, Gul o Gul o_Tot al Consensus_TSS_EMmedi an, Gul oGul o_Tot al Consensus_TSS_EMca, Gul oGu l o_Tot al Consensus_TSS_EMwmean
- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- = > > myBi omodPr oj <- BI OMOD_Pr oj ect i on( + model i ng. out put = myBi omodModel Out , + new. env = myExpl , + pr oj . name = ' cur r ent ' , + sel ect ed. model s = ' al l ' , + bi nar y. met h = ' TSS' , + compr ess = ' xz' , + cl ampi ng. mask = F, + out put . f or mat = ' . gr d' )
43
- =- =- =- =- =- =- =- =- =- =- =- =- = Do Model s Pr oj ect i ons - =- =- =- =- =- =- =- =- =- =- =- =- =
> Bui l di ng cl ampi ng mask
> Pr oj ect i ng Gul oGul o_Al l Dat a_RUN1_GLM . . .
> Bui l di ng TSS bi nar i es - =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- = Done - =- =- =- =- =- =- =- =- =- =- =- =- =- =- =- =
> myBi omodPr oj
- =- =- =- =- =- =- =- =- =- =- =- =- = ' BI OMOD. pr oj ect i on. out ' - =- =- =- =- =- =- =- =- =- =- =-
Pr oj ect i on di r ect or y : Gul oGul o/ cur r ent
sp. name : Gul oGul o
expl . var . names : bi o3 bi o4 bi o7 bi o11 bi o12
model i ng i d : Gul oGul oFi r st Model i ng ( Gul oGul o/ Gul oGul o. Gul oGul oFi r st Model i ng. model s. out )
model s pr oj ect ed : Gul oGul o_Al l Dat a_RUN1_GLM
> Pr ed <- get _pr edi ct i ons( myBi omodPr oj ) > Sp. occ. xy <- Dat aSpeci es[ Dat aSpeci es[ , 5] ==1, 2: 3] > Per cent age <- 7
> bi nar y. model <- ecospat . bi nar y. model ( Pr ed, Sp. occ. xy, Per cent age)
> pl ot ( bi nar y. model )
3.4.2 Implementing species dispersal into projections of species distribution models
Implementation of species-specific dispersal constraints into projections of species distribution models under environmental change and/or landscape fragmentation scenarios with ecospat . mi gcl i m
> ecospat . mi gcl i m( ) l oad t he Mi gCl i mpackage i ni t i al i zi ng . . . . . . done
Calculate an index of species co-occurrences where species were predicted as present with ecospat . co_occur r ences
> t est <- ecospat . t est Dat a[ c( 59: 66) ] > ecospat . co_occur r ences ( t est ) gl m_Ger ani um_syl vat i cumgl m_Ranuncul us_acr i s_sl gl m_Ger ani um_syl vat i cum 0. 4523111 0. 4791825 gl m_Ranuncul us_acr i s_sl 0. 4791825 0. 5533304 gl m_Pr unel l a_vul gar i s 0. 4595555 0. 5083275 gl m_Ver oni ca_chamaedr ys 0. 4905250 0. 5425753 gl m_Pr unel l a_vul gar i s gl m_Ver oni ca_chamaedr ys gl m_Ger ani um_syl vat i cum 0. 4595555 0. 4905250 gl m_Ranuncul us_acr i s_sl 0. 5083275 0. 5425753 gl m_Pr unel l a_vul gar i s 0. 4708349 0. 5004026 gl m_Ver oni ca_chamaedr ys 0. 5004026 0. 5503356
For each pair of species (sp1, sp2), the number (N) of plots where both species were present is divided by the number of plots where the rarest of the two species is present. This index ranges from 0 (no co- occurrence) to 1 (always in co-occurrence) as given in eq. 1.
where N (S1 S2) is the number of times species S1 and S2 co-occur, while Min(N S1 , N S2 ) is the number of times species S1 and S2 co-occur, while is the occurrence frequency of the rarest of the two species.
The function tests for non-random patterns of species co-occurrence in a presence- absence matrix. It calculates the C-score index for the whole community and for each species pair. An environmental constraint is applied during the generation of the null communities.
> pr esence<- ecospat . t est Dat a[ c( 9: 24) ] > pr ed<- ecospat . t est Dat a[ 65: 82] > nbper mut <- 10000 > out pat h<- get wd( )
> ecospat . cons_Cscor e( pr esence, pr ed, nbper mut , out pat h) Comput i ng obser ved co- occur ence mat r i x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comput i ng per mut at i ons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Per mut at i ons f i ni shed Fr i J un 20 16: 32: 31 2014 . . . . . . . . . . . . . . . . . . . . . . . . . . Expor t i ng dat aset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ObsCscor eTot [ 1] 3308. 25
$Si mCscor eTot [ 1] 4876. 848
$PVal . l ess [ 1] 9. 999e- 05
$PVal . gr eat er [ 1] 1
$SES. Tot [ 1] - 40. 77995
The function returns - the C-score index for the observed community (ObsCscoreTot), - the mean of C-score for the simulated communities (SimCscoreTot), the p.values (PVal.less and PVal.greater) to evaluate the significance of the difference between the former two indices. - the standardized effect size for the whole community (SES.Tot). A SES that is greater than 2 or less than -2 is statistically significant with a tail probability of less than 0.05 (Gotelli & McCabe 2002 - Ecology).
47
If a community was structured by competition, we would expect the C-score to be large relative to a randomly assembled community (positive SES). In this case the observed C-score is significantly lower than expected by chance, this meaning that the community is dominate by positive interactions (aggregated pattern).
A table is saved in the path specified where the same metrics are calculated for each species pair (only the table with species pairs with significant p.values is saved).
48
> Cscor es<- r ead. t abl e( " Si gni f i c_const _Cscor es. t xt " , head=T) > head( Cscor es)
Col Row Sps1 Sps2 C. scor eObs 1 1 2 Agr ost i s_capi l l ar i s Leont odon_hi spi dus_sl 2970 2 1 6 Agr ost i s_capi l l ar i s Ranuncul us_acr i s_sl 2080 3 1 7 Agr ost i s_capi l l ar i s Pr unel l a_vul gar i s 1176 4 1 9 Agr ost i s_capi l l ar i s Tar axacum_of f i ci nal e_aggr 3200 5 1 10 Agr ost i s_capi l l ar i s Pl ant ago_l anceol at a 2409 6 1 12 Agr ost i s_capi l l ar i s Car ex_semper vi r ens 5936 C. scor eExp p. l ess p. gr eat er ses 1 2173. 144 0. 98500150 0. 02739726 2. 215496 2 8917. 397 0. 00009999 1. 00000000 - 9. 982066 3 7231. 134 0. 00009999 1. 00000000 - 9. 497185 4 8838. 164 0. 00009999 1. 00000000 - 8. 505857 5 1728. 877 0. 98000200 0. 03859614 2. 059305 6 9973. 942 0. 00009999 1. 00000000 - 7. 753379