Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

rsf.select vs rsf.fit and population analysis recomendation

76 views
Skip to first unread message

Josue David Arteaga-Torres (Yoshi)

unread,
Dec 17, 2024, 11:51:08 PM12/17/24
to ctmm R user group
Hi Chris, 

I'm trying to determine the selection of specific conditions in the environment, both at the population level and individual level of owls on one particular island. 

When we performed the `rsf.fit` at the individual level, we found ourselves having a problem with the analysis. There are individuals with very limited AKDEs and others expanding half of the island. We are analyzing eight variables: average NDVI, tree cover, elevation, ruggedness, slope, distance to road, urban spaces, and farmlands. The urban and farmland rasters are just binomial rasters, and the rest are continuous variables. 

Because we wanted to do `mean()` for the population level, it would be recommended to use `rsf.select()` according to one of your posts on the forum. 

The problem is that we would like to analyze the resource preferences using the whole extent of the island rather than randomizing points near the occurrences. For example, we know of one individual living in an urban area in the lowlands. However, the estimates from an  `rsf.fit` on the individual don't show a preference for those variables (low elevation and urban areas) because its OD is limited to that space and won't consider that it is not using any high elevation or spaces outside urban areas. 

Confusion also arises when we perform the mean() using rsf.fit rather than rsf.select(). The pattern we were expecting has a selection at the individual level but at the population scale. 

We are thinking of making an `rsf.fit` at the population level by combining all the points of the different individuals and running it as if it were one individual. We understand that this might not work, but we are kind of lost on what would be the best approach to this. 

I'm happy to provide more detailed code based on your suggestions, but at this point, it is more a question of how the back-end calculations are happening for rsf.fit and rsf.select and how we can approach our question with them. 

Thank you again for any insight you can provide. 

Take care, Josue


Christen Fleming

unread,
Jan 15, 2025, 12:49:00 PMJan 15
to ctmm R user group
Hi Josue,

If AKDE sizes vary widely, then you might want to check for stationarity in the individuals (i.e., a variogram that asymptotes).

Individual selection without underlying variation in the predictor is not really possible - and adjusting the "available" area by hand rather than using the statistical estimate corresponding to their distribution is essentially just making up selection. If you live completely inside a habitat, then you won't see selection for that at the individual level. You need a different kind of population-level model to get at second-order selection. One way would be to randomly sample one point per individual, estimate the population-level point process, and then resample and re-estimate over and over before taking an average. I'm working on something a little more rigorous. Normally, you would think of a mixed-effects model for this, but the individual-level random slopes could run different directions than the population trend (Simpson's paradox).

Currently, you would do rsf.select at the individual level and then mean() to look at the population average and variation in selection. (This does not deal with the above.)

In more recent versions of the package on Github, I turned off the ability for mean() to do population-level selection of the selection means. Please try updating and seeing if mean() now retains all parameters. If it does not, then please message me a minimal working example (MWE) so that I can check for bugs.

Best,
Chris

Josue David Arteaga-Torres (Yoshi)

unread,
Jan 15, 2025, 8:46:02 PMJan 15
to ctmm R user group
Hi Chris, 

Thank you for the reply. We checked the stationarity of the owls, and they all stabilized reasonably well but at very different scales. I'm attaching a forest plot from the RSF-informed AKDE we performed so you can visualize the varying scales of UD.  

I will try again with rsf.select, but with the new update, it is taking a lot of extra time to run. I will get you a minimal working example so you can run it. 

Thank you again for the insight. 
Screenshot 2024-12-15 121533.png
Reply all
Reply to author
Forward
0 new messages