Finally! We now have all we need to properly build a statistical
model of the relationship between diversity facets and the different
co-variables. We’ll be building linear models with lm()
with environmental variables and possible co-variables that may confound
the effect of logging.
We first combine the diversity metrics to the environmental
co-variables:
plot_div_env = merge(
all_diversity,
plot_data[, c(1, 6:21)],
by = "plot.code"
)
dim(plot_div_env)
head(plot_div_env)
Single-predictor models
Then we can build models of disturbance variables on diversity
metrics. Let’s build individual models with the main disturbance
variables: local forest loss forestloss17
, primary road
density roaddensprim
, and distance to primary roads
roaddistprim
.
First a model on taxa richness:
mod_taxa_loss = lm(ntaxa ~ forestloss17, data = plot_div_env)
mod_taxa_loss
summary(mod_taxa_loss)
We can plot the regression line from the model with the data with the
following:
par(mfrow = c(1, 1))
plot(mod_taxa_loss$model$forestloss17, mod_taxa_loss$model$ntaxa,
xlab = "Forest Loss (%)", ylab = "Taxa Richness")
abline(coef = coef(mod_taxa_loss), col = "darkred", lwd = 1)
Questions for you
- Q29: How would you qualify the effect of forest
loss on the taxa richness?
- Q30: With the same formula build similar models
with the other predictors
roaddensprim
and
roaddistprim
. How do they compare with forest loss?
We can now build similar models for both functional and phylogenetic
diversity. Because we do not want to consider the potential confounding
factor of taxa richness we can consider directly the SES values we
carefully built with our null models.
mod_fd_loss = lm(ses_Q ~ forestloss17, data = plot_div_env)
mod_pd_loss = lm(mpd.obs.z ~ forestloss17, data = plot_div_env)
Multi-predictors models
Because of the many possible confounding variables (different local
environmental conditions, difference in vegetation types) we should
build a model with many more predictors.
Let’s build a complete model with all environmental predictors:
mod_taxa_all = lm(
ntaxa ~ elevation + forestloss17 + forestloss562 + roaddenssec +
roaddistprim + soilPC1 + soilPC2,
data = plot_div_env
)
mod_fd_all = lm(
ses_Q ~ elevation + forestloss17 + forestloss562 + roaddenssec +
roaddistprim + soilPC1 + soilPC2,
data = plot_div_env
)
mod_pd_all = lm(
mpd.obs.z ~ elevation + forestloss17 + forestloss562 + roaddenssec +
roaddistprim + soilPC1 + soilPC2,
data = plot_div_env
)
Question for you
- Q31: What can you say about the effect of the
disturbances on the different diversity metrics? What are the
explanatory power of our models?
To explain the issues we have with the models we can look at the
model diagnostics:
par(mfrow = c(2, 2))
plot(mod_taxa_all)
# Or even better
performance::check_model(mod_taxa_all)
To go further (but it’s beyond the scope of this tutorial) we could
follow the tracks of the paper:
- Build a generalized linear model (GLM) when working with taxa
richness as it is a count data.
- Leverage the fact that we have a block design in our sampling data
and use mixed-models to account for that (the observations are not fully
independent of one another and are structured in groups).
- Account for some non-linear effects of some predictors (forest loss
have a strong quadratic component).
- Perform model averaging or model selection to prune the model to the
most important predictors.
LS0tCnRpdGxlOiAiU3RhdGlzdGljYWwgTW9kZWxsaW5nIgpvdXRwdXQ6IGh0bWxfZG9jdW1lbnQKYmlibGlvZ3JhcGh5OiBiaWJsaW9ncmFwaHkuYmliCmVkaXRvcl9vcHRpb25zOgogIGNodW5rX291dHB1dF90eXBlOiBjb25zb2xlCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGUgPSBGQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLCBldmFsID0gRkFMU0UpCmBgYAoKRmluYWxseSEgV2Ugbm93IGhhdmUgYWxsIHdlIG5lZWQgdG8gcHJvcGVybHkgYnVpbGQgYSBzdGF0aXN0aWNhbCBtb2RlbCBvZiB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gZGl2ZXJzaXR5IGZhY2V0cyBhbmQgdGhlIGRpZmZlcmVudCBjby12YXJpYWJsZXMuIFdlJ2xsIGJlIGJ1aWxkaW5nIGxpbmVhciBtb2RlbHMgd2l0aCBgbG0oKWAgd2l0aCBlbnZpcm9ubWVudGFsIHZhcmlhYmxlcyBhbmQgcG9zc2libGUgY28tdmFyaWFibGVzIHRoYXQgbWF5IGNvbmZvdW5kIHRoZSBlZmZlY3Qgb2YgbG9nZ2luZy4KCldlIGZpcnN0IGNvbWJpbmUgdGhlIGRpdmVyc2l0eSBtZXRyaWNzIHRvIHRoZSBlbnZpcm9ubWVudGFsIGNvLXZhcmlhYmxlczoKCmBgYHtyIG1lcmdlLWRpdi1lbnZ9CnBsb3RfZGl2X2VudiA9IG1lcmdlKAogIGFsbF9kaXZlcnNpdHksCiAgcGxvdF9kYXRhWywgYygxLCA2OjIxKV0sCiAgYnkgPSAicGxvdC5jb2RlIgopCgpkaW0ocGxvdF9kaXZfZW52KQpoZWFkKHBsb3RfZGl2X2VudikKYGBgCgoKIyMgU2luZ2xlLXByZWRpY3RvciBtb2RlbHMKClRoZW4gd2UgY2FuIGJ1aWxkIG1vZGVscyBvZiBkaXN0dXJiYW5jZSB2YXJpYWJsZXMgb24gZGl2ZXJzaXR5IG1ldHJpY3MuCkxldCdzIGJ1aWxkIGluZGl2aWR1YWwgbW9kZWxzIHdpdGggdGhlIG1haW4gZGlzdHVyYmFuY2UgdmFyaWFibGVzOiBsb2NhbCBmb3Jlc3QgbG9zcyBgZm9yZXN0bG9zczE3YCwgcHJpbWFyeSByb2FkIGRlbnNpdHkgYHJvYWRkZW5zcHJpbWAsIGFuZCBkaXN0YW5jZSB0byBwcmltYXJ5IHJvYWRzIGByb2FkZGlzdHByaW1gLgoKRmlyc3QgYSBtb2RlbCBvbiB0YXhhIHJpY2huZXNzOgoKYGBge3IgbW9kLXRheGEtbG9zc30KbW9kX3RheGFfbG9zcyA9IGxtKG50YXhhIH4gZm9yZXN0bG9zczE3LCBkYXRhID0gcGxvdF9kaXZfZW52KQoKbW9kX3RheGFfbG9zcwpzdW1tYXJ5KG1vZF90YXhhX2xvc3MpCmBgYAoKV2UgY2FuIHBsb3QgdGhlIHJlZ3Jlc3Npb24gbGluZSBmcm9tIHRoZSBtb2RlbCB3aXRoIHRoZSBkYXRhIHdpdGggdGhlIGZvbGxvd2luZzoKCmBgYHtyIHBsb3QtbW9kLXRheGEtbG9zc30KcGFyKG1mcm93ID0gYygxLCAxKSkKcGxvdChtb2RfdGF4YV9sb3NzJG1vZGVsJGZvcmVzdGxvc3MxNywgbW9kX3RheGFfbG9zcyRtb2RlbCRudGF4YSwKICAgICB4bGFiID0gIkZvcmVzdCBMb3NzICglKSIsIHlsYWIgPSAiVGF4YSBSaWNobmVzcyIpCmFibGluZShjb2VmID0gY29lZihtb2RfdGF4YV9sb3NzKSwgY29sID0gImRhcmtyZWQiLCBsd2QgPSAxKQpgYGAKCjo6OiB7LnF1ZXN0aW9uc30KIyMjIyBRdWVzdGlvbnMgZm9yIHlvdQoKKiAqKlEyOSoqOiBIb3cgd291bGQgeW91IHF1YWxpZnkgdGhlIGVmZmVjdCBvZiBmb3Jlc3QgbG9zcyBvbiB0aGUgdGF4YSByaWNobmVzcz8KKiAqKlEzMCoqOiBXaXRoIHRoZSBzYW1lIGZvcm11bGEgYnVpbGQgc2ltaWxhciBtb2RlbHMgd2l0aCB0aGUgb3RoZXIgcHJlZGljdG9ycyBgcm9hZGRlbnNwcmltYCBhbmQgYHJvYWRkaXN0cHJpbWAuIEhvdyBkbyB0aGV5IGNvbXBhcmUgd2l0aCBmb3Jlc3QgbG9zcz8KOjo6CgpgYGB7ciBtb2QtdGF4YS1vdGhlci1kaXN0dXJiYW5jZXMsIGluY2x1ZGUgPSBGQUxTRX0KbW9kX3RheGFfZGVucyA9IGxtKG50YXhhIH4gcm9hZGRlbnNwcmltLCBkYXRhID0gcGxvdF9kaXZfZW52KQptb2RfdGF4YV9kaXN0ID0gbG0obnRheGEgfiByb2FkZGlzdHByaW0sIGRhdGEgPSBwbG90X2Rpdl9lbnYpCmBgYAoKV2UgY2FuIG5vdyBidWlsZCBzaW1pbGFyIG1vZGVscyBmb3IgYm90aCBmdW5jdGlvbmFsIGFuZCBwaHlsb2dlbmV0aWMgZGl2ZXJzaXR5LiBCZWNhdXNlIHdlIGRvIG5vdCB3YW50IHRvIGNvbnNpZGVyIHRoZSBwb3RlbnRpYWwgY29uZm91bmRpbmcgZmFjdG9yIG9mIHRheGEgcmljaG5lc3Mgd2UgY2FuIGNvbnNpZGVyIGRpcmVjdGx5IHRoZSBTRVMgdmFsdWVzIHdlIGNhcmVmdWxseSBidWlsdCB3aXRoIG91ciBudWxsIG1vZGVscy4KCmBgYHtyIG1vZC1mZC1sb3NzfQptb2RfZmRfbG9zcyA9IGxtKHNlc19RIH4gZm9yZXN0bG9zczE3LCBkYXRhID0gcGxvdF9kaXZfZW52KQptb2RfcGRfbG9zcyA9IGxtKG1wZC5vYnMueiB+IGZvcmVzdGxvc3MxNywgZGF0YSA9IHBsb3RfZGl2X2VudikKYGBgCgoKIyMgTXVsdGktcHJlZGljdG9ycyBtb2RlbHMKCkJlY2F1c2Ugb2YgdGhlIG1hbnkgcG9zc2libGUgY29uZm91bmRpbmcgdmFyaWFibGVzIChkaWZmZXJlbnQgbG9jYWwgZW52aXJvbm1lbnRhbCBjb25kaXRpb25zLCBkaWZmZXJlbmNlIGluIHZlZ2V0YXRpb24gdHlwZXMpIHdlIHNob3VsZCBidWlsZCBhIG1vZGVsIHdpdGggbWFueSBtb3JlIHByZWRpY3RvcnMuCgpMZXQncyBidWlsZCBhIGNvbXBsZXRlIG1vZGVsIHdpdGggYWxsIGVudmlyb25tZW50YWwgcHJlZGljdG9yczoKCmBgYHtyIG1vZC1kaXYtYWxsfQptb2RfdGF4YV9hbGwgPSBsbSgKICBudGF4YSB+IGVsZXZhdGlvbiArIGZvcmVzdGxvc3MxNyArIGZvcmVzdGxvc3M1NjIgKyByb2FkZGVuc3NlYyArCiAgICByb2FkZGlzdHByaW0gKyBzb2lsUEMxICsgc29pbFBDMiwKICBkYXRhID0gcGxvdF9kaXZfZW52CikKbW9kX2ZkX2FsbCA9IGxtKAogIHNlc19RIH4gZWxldmF0aW9uICsgZm9yZXN0bG9zczE3ICsgZm9yZXN0bG9zczU2MiArIHJvYWRkZW5zc2VjICsKICAgIHJvYWRkaXN0cHJpbSArIHNvaWxQQzEgKyBzb2lsUEMyLAogIGRhdGEgPSBwbG90X2Rpdl9lbnYKKQptb2RfcGRfYWxsID0gbG0oCiAgbXBkLm9icy56IH4gZWxldmF0aW9uICsgZm9yZXN0bG9zczE3ICsgZm9yZXN0bG9zczU2MiArIHJvYWRkZW5zc2VjICsKICAgIHJvYWRkaXN0cHJpbSArIHNvaWxQQzEgKyBzb2lsUEMyLAogIGRhdGEgPSBwbG90X2Rpdl9lbnYKKQpgYGAKCjo6OiB7LnF1ZXN0aW9uc30KIyMjIyBRdWVzdGlvbiBmb3IgeW91CgoqICoqUTMxKio6IFdoYXQgY2FuIHlvdSBzYXkgYWJvdXQgdGhlIGVmZmVjdCBvZiB0aGUgZGlzdHVyYmFuY2VzIG9uIHRoZSBkaWZmZXJlbnQgZGl2ZXJzaXR5IG1ldHJpY3M/IFdoYXQgYXJlIHRoZSBleHBsYW5hdG9yeSBwb3dlciBvZiBvdXIgbW9kZWxzPwo6OjoKClRvIGV4cGxhaW4gdGhlIGlzc3VlcyB3ZSBoYXZlIHdpdGggdGhlIG1vZGVscyB3ZSBjYW4gbG9vayBhdCB0aGUgbW9kZWwgZGlhZ25vc3RpY3M6CgpgYGB7ciBtb2QtZGlhZ30KcGFyKG1mcm93ID0gYygyLCAyKSkKcGxvdChtb2RfdGF4YV9hbGwpCiMgT3IgZXZlbiBiZXR0ZXIKcGVyZm9ybWFuY2U6OmNoZWNrX21vZGVsKG1vZF90YXhhX2FsbCkKYGBgCgpUbyBnbyBmdXJ0aGVyIChidXQgaXQncyBiZXlvbmQgdGhlIHNjb3BlIG9mIHRoaXMgdHV0b3JpYWwpIHdlIGNvdWxkIGZvbGxvdyB0aGUgdHJhY2tzIG9mIHRoZSBwYXBlcjoKCjEuIEJ1aWxkIGEgZ2VuZXJhbGl6ZWQgbGluZWFyIG1vZGVsIChHTE0pIHdoZW4gd29ya2luZyB3aXRoIHRheGEgcmljaG5lc3MgYXMgaXQgaXMgYSBjb3VudCBkYXRhLgoxLiBMZXZlcmFnZSB0aGUgZmFjdCB0aGF0IHdlIGhhdmUgYSBibG9jayBkZXNpZ24gaW4gb3VyIHNhbXBsaW5nIGRhdGEgYW5kIHVzZSBtaXhlZC1tb2RlbHMgdG8gYWNjb3VudCBmb3IgdGhhdCAodGhlIG9ic2VydmF0aW9ucyBhcmUgbm90IGZ1bGx5IGluZGVwZW5kZW50IG9mIG9uZSBhbm90aGVyIGFuZCBhcmUgc3RydWN0dXJlZCBpbiBncm91cHMpLgoxLiBBY2NvdW50IGZvciBzb21lIG5vbi1saW5lYXIgZWZmZWN0cyBvZiBzb21lIHByZWRpY3RvcnMgKGZvcmVzdCBsb3NzIGhhdmUgYSBzdHJvbmcgcXVhZHJhdGljIGNvbXBvbmVudCkuCjEuIFBlcmZvcm0gbW9kZWwgYXZlcmFnaW5nIG9yIG1vZGVsIHNlbGVjdGlvbiB0byBwcnVuZSB0aGUgbW9kZWwgdG8gdGhlIG1vc3QgaW1wb3J0YW50IHByZWRpY3RvcnMu
License: Matthias Grenié & Marten Winter CC-BY 4.0