RSF returns 0 for one particular reference category

0 views
Skip to first unread message

Alex Brunswick

unread,
7:56 AM (2 hours ago) 7:56 AM
to ctmm R user group
Hi ctmm community, I am hoping this will be an easy question for someone with more experience than me using RSFs! 

In essence, my question is: why are one individual's RSF betas all NA/0 for only 1 reference habitat category, but the betas are vastly different from each other when I use a different reference category [i.e. in the habitat map raster]. 

I have run the rsf.select function for 5 birds. I used weighted AKDEs and all birds are range-resident. I am using the Riemann integrator to reduce computation load, as there are ~ 64 000 GPS fixes between 5 individuals, and I am not using any time-dependent covariates. 

The beta outputs work PERFECTLY for almost every bird - exactly as I would expect in nature - which is great!

HOWEVER, when I run rsf.select on one bird (PNC), with a reference category of "8" (coastal vegetation), the rsf returns the following information: 

******************************************************
> summary(pnc.RSF.select.wakde95.riemann8ref)
ΔAICc ΔRMSPE (m) DOF[area] isotropic ~ 0 0 0.000000 39.02854 isotropic ~ landsat Inf 3.452694 0.00000 > summary(pnc.RSF.select.wakde95.riemann8ref$`isotropic ~ landsat`) $name [1] "OUF" $DOF mean area diffusion speed 0 0 0 0 $CI low est high landsat.11_8 (1/landsat.11_8) -Inf NaN Inf landsat.10_8 (1/landsat.10_8) -Inf NaN Inf landsat.9_8 (1/landsat.9_8) -Inf NaN Inf landsat.7_8 (1/landsat.7_8) -Inf NaN Inf landsat.6_8 (1/landsat.6_8) -Inf NaN Inf landsat.5_8 (1/landsat.5_8) -Inf NaN Inf landsat.4_8 (1/landsat.4_8) -Inf NaN Inf landsat.3_8 (1/landsat.3_8) -Inf NaN Inf landsat.2_8 (1/landsat.2_8) -Inf NaN Inf landsat.1_8 (1/landsat.1_8) -Inf NaN Inf area (square kilometers) 0.000000 224.831239 Inf τ[position] (hours) 7.514885 10.518643 14.723026 τ[velocity] (minutes) 2.557814 2.651829 2.749299 speed (kilometers/day) 0.000000 172.042666 Inf diffusion (square kilometers/day) 0.000000 53.263211 Inf

***********************************************************************
With every other bird, the "8" reference category works fine. 

And with this bird, I can run the other habitat types as reference categories and there is substantial differentiation in betas for each habitat type. For example, with a reference category of 10 the following summary returns: 

> summary(pnc.RSF.select.wakde95.riemann.10ref) ΔAICc ΔRMSPE (m) DOF[area] isotropic ~ landsat 0.0000 0.0000 77.32282 isotropic ~ 0 127.7517 807.6134 39.02854

The betas are also different from one another and reflect my expectation sin nature. This leads me to think that the bird does indeed select the habitats differently, and that the NA/0 beta values are not accurate. 

I confirm that the bird PNC did have relocations that landed directly onto the 8/coastal vegetation habitat category. As well, its home-range mostly overlaps with the other birds, and the raw relocations are largely located at the same habitat categories as the other birds. I don't see why it would be an outlier. 

**As a side note, in early trials I ran rsf.fit on the same data, using a MonteCarlo integrator and the same 8/coastal vegetation reference category. 2 individuals returned the same NA/0 betas. They were different individuals than the one that is currently bringing the 0 values. 

Here is the code I used for the rsfs in full, with the only thing changing being the "reference" input. 

  #load the habitat map in as a raster
r <- raster("landsat__202305__prediction_37250.tif")

#raster is a habitat map with discrete categories 1-11
r <- as.factor(r)
Rlist <- list()
Rlist$landsat <- r

#calculate RSF using weighted AKDEs

pnc.RSF.select.wakde95.riemann8ref <- rsf.select(
  data = gttnov24_telemetry_cov_001$PNC,
  UD = GTT_nov24_wakde95_grid_weight_noperiod_pdf$PNC,
  R = Rlist, formula = ~ landsat,
  verbose = TRUE,  reference = "8",
  max.mem = "10 Gb", level.UD=0.95,
  trace = TRUE, integrator = "Riemann")



Thank you so much for your help! Although it seems I could just use another 'working' reference category and move on, I would hate to overlook something important in my data if I am missing something here. 

Cheers
Alex
Reply all
Reply to author
Forward
0 new messages