I am studying small-bodied ground snakes and skinks (lizards). I use artifical cover objects to determine their presence.
Artificial cover objects (hereafter CO) consisting of 7 different types of materials were placed at seven different sites within my study area. At each site, seven CO were placed on each side of a mowed path along a 60m transect (10m between successive CO). At each site there were 14 total CO (two of each material type: plywood, metal, rubber mat, etc.). Each time the COs were checked at a site I recorded any reptiles present under them and how many were present (red-bellied snake, garter snake, prairie skink). I want to determine which statistical test(s) is/are most appropriate to assess if there was any difference in CO use by the snakes and skinks that used the COs. My null hypothesis is that there was no preference by or any of the three reptile groups with regard to the 7 different CO materials.
Best Answer
As a biologist I really like you experiment! So I thought I give you an idea of how this type of data could be analyzed. I am working in R so my post will be R-centric, but the general process is the same across other statistical programming software packages.
1.) First of all since you are measuring counts, you probably want to look into a Poisson GLM (there a lot of great posts here on this, for example to get started see here, there are many other links in there too).
2.) More specifically, you probably want to look into a GLMM (generalized mixed effects model) since in ecology we always have some sort of clustering, such as measurements within sites, that we need to account for. This can be done using a so called "mixed-model". I am mostly using the
glmmTMB()
function from the glmmTMB package3.) With the Poisson GLM, you should also be aware of overdispersion and how to deal with it once you encounter it. A great package to learn, explore and further educate yourself is the DHARMa package in R.
4.) Then you should check whether those model terms are significant. One way to do this is to use the
Anova()
function from the car package.5.) Then you need to extract the "model means" for the significant effects. There are many packages that can do that for example via the emmeans, or ggeffects packages.
6.) And lastly, you need some sort of plot that visualizes your results. I am using the
ggplot()
function for this from the tidyverse packagesFinal words: This is just a very general approach I would take to get started. This process takes time and you will usually encounter issues along the way. Answers to many of those issues you can be found here on this site. If you don't, you can consider asking a new question.
So here is the approach from above, provided as a reproducible example. I hope that helps.
Created on 2024-03-02 with reprex v2.1.0