Modeling plan and spOccupancy capabilities

9 views
Skip to first unread message

Aaron Skinner

unread,
Jan 22, 2026, 3:32:57 PM (5 days ago) Jan 22
to spOccupancy and spAbundance users

Hi Jeff, Marc, and all

I wanted to see if you have any general recommendations for the modeling adventure I am embarking on here, including whether you’d recommend I approach certain questions outside of spOccupancy ! I’ve included the functions I’ve determined to be appropriate for the data / questions of interest, but I’d appreciate any other suggestions.

Data structure:
Data was collected in 5 ecoregions across Colombia from 2013 - 2024 by 5 different data collectors (with similar but not standardized methodologies). Some point counts were revisited several times (eg, 2013, 2017, 2024). Within each ecoregion point counts were distributed across farms so I would guess there is high autocorrelation within farms (centroids of many point counts are only 50m apart). I’ve attached a map of our study region within Colombia and point counts on an example farm.

Overall modeling plan:
Ultimately, I want to fit a multi-species model, depending on the capabilities of spOccupancy:
-Full community: We’ve observed ~600 species, although many extremely rare, but it might be possible to get estimates of species richness?
Function: sfMsPGOcc
-Minimum cutoff: If the full community is too challenging to model, could select a few hundred species that were observed above some minimum threshold (e.g., there are about 300 species observed at least 5x)
Function: sfMsPGOcc
-Reduced community: I will likely start by trying to model 10-30 specific species that are thought to provide specific ecosystem services in cattle ranching systems
Function: spMsPGOcc

With that in mind, I  wanted to ask a few specific questions regarding the capabilities of SpOccupancy:

Multi-species spatio-temporal occupancy model -
stPGOcc conducts single-species multi-season spatio-temporal occupancy model, are there any multi-species versions of this?

Biogeographic clipping -
The idea here is to separate absences from structural zeros using species range maps to delimit which survey locations are outside of the species elevational or distributional range. However, I don’t think you can have different size matrices (a ragged array) for the different species?  

Functional traits -
There are certain species-level functional traits that will influence the relationship of interest. For example, a species habitat preference (i.e., forest, grassland, etc) will influence how it responds to silvopasture, so it would make sense to include an interaction between a species’ habitat preference * silvopasture. I know this can be examined with postHocLM() , but it seems like the species traits might actually help the model fit better?

Thanks so much for any thoughts,
Aaron
PhD Candidate, University of British Columbia

Spatial_summary.pdf

Jeffrey Doser

unread,
9:04 AM (14 hours ago) 9:04 AM
to Aaron Skinner, spOccupancy and spAbundance users
Hi Aaron, 

Thanks for the questions, sounds like a cool project. Here are some answers to your questions and your overall modeling plan: 
  • Fitting these models with ~600 species is possible but from what you describe would present substantial computational challenges. First off, even with the smaller community of ~300 species, having only 5 (or similar) detections for many species is a very small number. Multi-species models can certainly handle rare species, but the reliability of those estimates is dependent on a variety of characteristics, and the ability of the model to fit will also depend on how many common species there are, the spatial (and temporal) pattern of the detections, and how similar those are across species. These challenges are all of course compounded when fitting a spatial model, which adds in additional parameters that the model needs to try and identify. All that to say, I would certainly suggest starting with the smaller, targeted community before scaling up to larger sets of species. 
  • For the reduced community, I would suggest still using the sfMsPGOcc function as opposed to spMsPGOcc. The spMsPGOcc function will be substantially slower, and simulations from Doser et al. 2023 showed that even under conditions that favored spMsPGOcc, the sfMsPGOcc version provided nearly identical inference and predictive performance. So, sfMsPGOcc will be faster and likely easier to estimate if any of those species are very rare. 
  • A multi-species spatio-temporal occupancy model can be fit with the function stMsPGOcc
  • A basic form of biogeographic clipping as defined in some of Jacob Socolar's work can be implemented in the svcMsPGOcc function. If you set svc.cols = 1 in that function, it is equivalent to the sfMsPGOcc function. This allows you to specify an additional matrix "range.ind" that indicates if each site is within the species range for each individual species. This can of course vary by species. If the value of range.ind is 1, that site will be used for the given species. If it is 0, it is assumed the species cannot occupy that site. You could define this matrix based on either elevational or distributional ranges. 
  • There is no way in spOccupancy to include species functional traits directly in the model. You are certainly correct that this could improve model fit, but it would require a substantial overhaul of the machinery in spOccupancy that I don't foresee happening in the near future. So, in terms of spOccupancy capabilities, the only option for assessing those patterns would be with postHocLM().
Hope that helps. 

Jeff

--
You received this message because you are subscribed to the Google Groups "spOccupancy and spAbundance users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to spocc-spabund-u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/spocc-spabund-users/31977a2a-377a-495b-a095-fd529f91bcbbn%40googlegroups.com.


--
Jeffrey W. Doser, Ph.D.
Assistant Professor
Department of Forestry and Environmental Resources
North Carolina State University
Pronouns: he/him/his
Reply all
Reply to author
Forward
0 new messages