Overall research goal
We want to know whether the assemblage of species present in a location is due to:
- environment
- non-environmental factors, eg competition
- random
Key questions
- Is the community trait mean different from that of a random assemblage of mammals?
- Does the community trait mean correlate significantly with climate?
Four null models:
- Continental/Permissive: the set of all species on a continent
- Dispersion field: the set of all species whose ranges overlap those species found in a locality
- Spatial autocorrelation null: retains the real spatial distribution of the species and randomly reassigns trait values to them
- Phylogenetic null: assumes that more closely related species may have more similar trait values and the effects of the shared phylogenetic history are removed.
Data
I have provided you with several datasets:
- NAPresAbsMatrix.csv. Presence/absence data for mammals at different locations (global ID) across North America
- NA_AllMammals_AllTraits.csv. Trait data for mammals. (originally from https://ecologicaldata.org/wiki/pantheria)
- BioclimVariables.csv. Climate data for all locations in North America.
There are a few other datasets provided in the “data” folder, but they are not necessary for this exercise.
Trait Note: use the following column indices for traits:
- which.trait <- c(2,30,1,12,25,16,17,5,22,27,9,26)+1
These indices should correspond to the following traits in the trait dataframe:
- “X5_1_AdultBodyMass_g”
- “XHYP_JTE”
- “X1_1_ActivityCycle”
- “X12_1_HabitatBreadth”
- “X12_2_Terrestriality”
- “X15_1_LitterSize”
- “X16_1_LittersPerYear”
- “X2_1_AgeatEyeOpening_d”
- “X23_1_SexualMaturityAge_d”
- “X25_1_WeaningAge_d”
- “X6_1_DietBreadth”
- “X6_2_TrophicLevel”
Climate Note:
Your Task
Determine if the ecometric mean for each location, for the given 12 traits, is significantly different from a null model where any species can get to any location within North America. (ie, the ‘free dispersal’ model of Lawing et al. 2017, or the 1st null model described above.)
Here are all the relevant datasets you will need for this exercise:
pa <- read.csv("data/NAPresAbsMatrix.csv", header=T)
traits <- read.csv("data/NA_AllMammals_AllTraits.csv", header=T)
clim <- read.csv("data/BioclimVariables.csv", header=T)
LS0tCnRpdGxlOiAiQW5hbHl0aWNhbCBQYWxlb2Jpb2xvZ3kgVHV0b3JpYWxzIDIwMTgiCnN1YnRpdGxlOiAiVHJhaXQgYW5hbHlzaXMiCmF1dGhvcjogIkplc3NpY2EgQmxvaXMiCmRhdGU6ICJBdWd1c3QgMywgMjAxOCAobGFzdCB1cGRhdGVkOiBPY3RvYmVyIDI5LCAyMDE4KSIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyMjIE92ZXJhbGwgcmVzZWFyY2ggZ29hbApXZSB3YW50IHRvIGtub3cgd2hldGhlciB0aGUgYXNzZW1ibGFnZSBvZiBzcGVjaWVzIHByZXNlbnQgaW4gYSBsb2NhdGlvbiBpcyBkdWUgdG86CgogIGEuIGVudmlyb25tZW50CiAgYi4gbm9uLWVudmlyb25tZW50YWwgZmFjdG9ycywgZWcgY29tcGV0aXRpb24KICBjLiByYW5kb20KCiMjIyBLZXkgcXVlc3Rpb25zCiAgMS4gSXMgdGhlIGNvbW11bml0eSB0cmFpdCBtZWFuIGRpZmZlcmVudCBmcm9tIHRoYXQgb2YgYSByYW5kb20gYXNzZW1ibGFnZSBvZiBtYW1tYWxzPwogIDIuIERvZXMgdGhlIGNvbW11bml0eSB0cmFpdCBtZWFuIGNvcnJlbGF0ZSBzaWduaWZpY2FudGx5IHdpdGggY2xpbWF0ZT8KCkZvdXIgbnVsbCBtb2RlbHM6CgoxLiBDb250aW5lbnRhbC9QZXJtaXNzaXZlOiB0aGUgc2V0IG9mIGFsbCBzcGVjaWVzIG9uIGEgY29udGluZW50CjIuIERpc3BlcnNpb24gZmllbGQ6IHRoZSBzZXQgb2YgYWxsIHNwZWNpZXMgd2hvc2UgcmFuZ2VzIG92ZXJsYXAgdGhvc2Ugc3BlY2llcyBmb3VuZCBpbiBhIGxvY2FsaXR5CjMuIFNwYXRpYWwgYXV0b2NvcnJlbGF0aW9uIG51bGw6IHJldGFpbnMgdGhlIHJlYWwgc3BhdGlhbCBkaXN0cmlidXRpb24gb2YgdGhlIHNwZWNpZXMgYW5kIHJhbmRvbWx5IHJlYXNzaWducyB0cmFpdCB2YWx1ZXMgdG8gdGhlbQo0LiBQaHlsb2dlbmV0aWMgbnVsbDogYXNzdW1lcyB0aGF0IG1vcmUgY2xvc2VseSByZWxhdGVkIHNwZWNpZXMgbWF5IGhhdmUgbW9yZSBzaW1pbGFyIHRyYWl0IHZhbHVlcyBhbmQgdGhlIGVmZmVjdHMgb2YgdGhlIHNoYXJlZCBwaHlsb2dlbmV0aWMgaGlzdG9yeSBhcmUgcmVtb3ZlZC4KCiMjIyBEYXRhCkkgaGF2ZSBwcm92aWRlZCB5b3Ugd2l0aCBzZXZlcmFsIGRhdGFzZXRzOgoKMS4gTkFQcmVzQWJzTWF0cml4LmNzdi4gIFByZXNlbmNlL2Fic2VuY2UgZGF0YSBmb3IgbWFtbWFscyBhdCBkaWZmZXJlbnQgbG9jYXRpb25zIChnbG9iYWwgSUQpIGFjcm9zcyBOb3J0aCBBbWVyaWNhCjIuIE5BX0FsbE1hbW1hbHNfQWxsVHJhaXRzLmNzdi4gIFRyYWl0IGRhdGEgZm9yIG1hbW1hbHMuIChvcmlnaW5hbGx5IGZyb20gPGh0dHBzOi8vZWNvbG9naWNhbGRhdGEub3JnL3dpa2kvcGFudGhlcmlhPikKMy4gQmlvY2xpbVZhcmlhYmxlcy5jc3YuICBDbGltYXRlIGRhdGEgZm9yIGFsbCBsb2NhdGlvbnMgaW4gTm9ydGggQW1lcmljYS4KClRoZXJlIGFyZSBhIGZldyBvdGhlciBkYXRhc2V0cyBwcm92aWRlZCBpbiB0aGUgImRhdGEiIGZvbGRlciwgYnV0IHRoZXkgYXJlIG5vdCBuZWNlc3NhcnkgZm9yIHRoaXMgZXhlcmNpc2UuCgpUcmFpdCBOb3RlOiB1c2UgdGhlIGZvbGxvd2luZyBjb2x1bW4gaW5kaWNlcyBmb3IgdHJhaXRzOiAKCi0gd2hpY2gudHJhaXQgPC0gYygyLDMwLDEsMTIsMjUsMTYsMTcsNSwyMiwyNyw5LDI2KSsxCgpUaGVzZSBpbmRpY2VzIHNob3VsZCBjb3JyZXNwb25kIHRvIHRoZSBmb2xsb3dpbmcgdHJhaXRzIGluIHRoZSB0cmFpdCBkYXRhZnJhbWU6CgoxLiAiWDVfMV9BZHVsdEJvZHlNYXNzX2ciCjIuICJYSFlQX0pURSIKMy4gIlgxXzFfQWN0aXZpdHlDeWNsZSIKNC4gIlgxMl8xX0hhYml0YXRCcmVhZHRoIgo1LiAiWDEyXzJfVGVycmVzdHJpYWxpdHkiCjYuICJYMTVfMV9MaXR0ZXJTaXplIgo3LiAiWDE2XzFfTGl0dGVyc1BlclllYXIiCjguICJYMl8xX0FnZWF0RXllT3BlbmluZ19kIgo5LiAiWDIzXzFfU2V4dWFsTWF0dXJpdHlBZ2VfZCIKMTAuICJYMjVfMV9XZWFuaW5nQWdlX2QiCjExLiAiWDZfMV9EaWV0QnJlYWR0aCIKMTIuICJYNl8yX1Ryb3BoaWNMZXZlbCIgCgpDbGltYXRlIE5vdGU6CgotIEJJTzAxID0gQW5udWFsIG1lYW4gdGVtcGVyYXR1cmUgKMKwQykKLSBCSU8wNCA9IFRlbXBlcmF0dXJlIHNlYXNvbmFsaXR5IChDIG9mIFYpCi0gQklPMTIgPSBBbm51YWwgcHJlY2lwaXRhdGlvbiAobW0pCi0gQklPMTUgPSBQcmVjaXBpdGF0aW9uIHNlYXNvbmFsaXR5IChDIG9mIFYpCi0gPGh0dHBzOi8vd3d3LmNsaW1vbmQub3JnL0Jpb2NsaW1SZWdpc3RyeS5hc3B4PgogCiMjIyBZb3VyIFRhc2sKCkRldGVybWluZSBpZiB0aGUgZWNvbWV0cmljIG1lYW4gZm9yIGVhY2ggbG9jYXRpb24sIGZvciB0aGUgZ2l2ZW4gMTIgdHJhaXRzLCBpcyBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBmcm9tIGEgbnVsbCBtb2RlbCB3aGVyZSBhbnkgc3BlY2llcyBjYW4gZ2V0IHRvIGFueSBsb2NhdGlvbiB3aXRoaW4gTm9ydGggQW1lcmljYS4gKGllLCB0aGUgJ2ZyZWUgZGlzcGVyc2FsJyBtb2RlbCBvZiBMYXdpbmcgZXQgYWwuIDIwMTcsIG9yIHRoZSAxc3QgbnVsbCBtb2RlbCBkZXNjcmliZWQgYWJvdmUuKQoKSGVyZSBhcmUgYWxsIHRoZSByZWxldmFudCBkYXRhc2V0cyB5b3Ugd2lsbCBuZWVkIGZvciB0aGlzIGV4ZXJjaXNlOgoKYGBge3J9CnBhIDwtIHJlYWQuY3N2KCJkYXRhL05BUHJlc0Fic01hdHJpeC5jc3YiLCBoZWFkZXI9VCkKdHJhaXRzIDwtIHJlYWQuY3N2KCJkYXRhL05BX0FsbE1hbW1hbHNfQWxsVHJhaXRzLmNzdiIsIGhlYWRlcj1UKQpjbGltIDwtIHJlYWQuY3N2KCJkYXRhL0Jpb2NsaW1WYXJpYWJsZXMuY3N2IiwgaGVhZGVyPVQpCmBgYAoK