Clarification on variogram interpretation, model selection (OUF anisotropic), and handling dispersal phases in translocated elephants

54 views
Skip to first unread message

Chethan C M Hirikara

unread,
Jul 23, 2026, 2:43:29 AMJul 23
to ctmm R user group

Dear ctmm group,

Reading through past discussions in this group has helped me immensely to learn and understand various concepts. Here am writing to seek guidance and clarification regarding model fitting and variogram interpretation for GPS tracking data from translocated elephants.

Background & Observations: 
These individuals exhibit clear dispersal and range-shifting behavior. For instance, Gunda shows a distinct dispersal phase during its initial months before transitioning into a range-residential phase (where the variogram reaches an asymptote around 3.5 to 4.5 months, allowing for short-term aKDE segmentation). Running ctmm.guess followed by ctmm.select consistently yields OUF anisotropic as the best-fit model across all individuals, outperforming other candidates (OUF anisotropic, OUF, OU anisotropic, and Ouf anisotropic).

  1.  Since most individuals exhibit non-residential/dispersal phases, should I fit simpler models like IID or BM separately for those segments, or is it statistically valid to proceed with the best-fit continuous-time movement model (OUF anisotropic) to estimate speed and diffusion across all phases?

  2.  My data consists of irregular sampling intervals of 30 and 60 minutes, which I have accounted for in the variograms using the dt function. Given that the velocity autocorrelation timescale may be shorter than or close to these sampling intervals that can limit direct speed estimation based on frameworks (Scale-insensitive estimation of speed and distance traveled from animal tracking data | Movement Ecology | Springer Nature Link) is it methodologically sound to rely on diffusion rates as an alternative measure during the dispersal phase? (Following approaches discussed in recent literature on diffusion rates from coarse tracking data (Are your data too coarse for speed estimation? Diffusion rates as an alternative measure of animal movement | bioRxiv))                           

I would greatly appreciate any feedback on this workflow, as well as pointers to any empirical examples or literature using ctmm to analyze dispersal phases under similar sampling regimes. For your reference, I have attached both the R script used for model fitting and a PDF containing the corresponding variograms.  

Thank you for your time and expertise.



Script:

#load the csv

mat_csv <- read.csv("MAT.csv")

mat_csv <- subset(mat_csv,

                  select=c(Tag,

                           Time.Stamp,

                           Latitude,

                           Longitude))

#Parse the Timestamp

mat_csv$Time.Stamp <- as.POSIXct(mat_csv$Time.Stamp,

                                 format="%d-%m-%Y %H:%M",

                                 tz="Asia/Kolkata")  # adjust timezone if needed

#Rename the columns to Match ctmm

colnames(mat_csv) <- c("individual.local.identifier",

                       "timestamp",

                       "location.lat",

                       "location.long")

mat_csv$location.error <- 10   # DOP in meters

 

#Convert to telemetry, specify projection

mat_tel_utm <- as.telemetry(mat_csv,

                        timeformat="%Y-%m-%d %H:%M:%S",

                        projection=CRS("+proj=utm +zone=43 +datum=WGS84"))

 

# Automated model guess

GUESS_mat <- ctmm.guess(mat_tel_utm, interactive=FALSE)

 

#Irregular Sampling Schedules

dt.plot(mat_tel_utm)

dt_mat <- c(0.5,1) %#% "hour"

SVF_mat_irregular <- variogram(mat_tel_utm,dt=dt_mat)

variogram.fit(SVF_mat_irregular)

GUESS_mat_irregular <- ctmm.guess(mat_tel_utm, variogram = SVF_mat_irregular, interactive = TRUE)

 

  FITZ_mat <- ctmm.select(mat_tel_utm,

                          GUESS_mat,

                          verbose = TRUE,

                          cores = 7)

summary(FITZ_mat)

# Extract and view the full parameter summary for matturu's best model

summary(FITZ_mat[[1]])

variograms of translocated elephants.pdf

Christen Fleming

unread,
Jul 28, 2026, 10:02:34 PM (8 days ago) Jul 28
to ctmm R user group
Hi Chethan,

  1. Generally, you want to segment the data into different behaviors and fit one stationary model per behavior. Translocated elephants are going to be a more extreme example of having a mix of resident and dispersal segments. If using the whole dataset, the dispersal segments are going to dominate the larger scales of the fitted model.
  2. After you segment, the dispersal segments might get larger velocity autocorrelation timescale estimates. But, in general, the diffusion rate estimate will have much less bias if the velocity autocorrelation timescale is near or smaller than the sampling interval. In that case, you can report both, but you would probably want to base downstream analyses on the more reliable diffusion rate estimates.
Best,
Chris

Chethan C M Hirikara

unread,
Jul 29, 2026, 5:27:53 AM (8 days ago) Jul 29
to ctmm R user group
Hi Chris, 

            Thank you for the clarification. I have been working on the segmentation also. In this forum introduced me to segclust2d, thanks for the members. I have attached one individual (matturu) here for reference. I obtained two states 1 and 2, then as per the suggestions; 
1. I can fit stationary models for two (1 &2) states separately. 
2. Can fit dispersal models between two phases where it dispersed from one state to another that visible in the attached segment plot. Then need to fit BM & IOU (dispersal models) separately if I am not wrong. Because ctmm.select works only for stationary behavior.

Chethan C M Hirikara

unread,
Jul 29, 2026, 5:28:41 AM (8 days ago) Jul 29
to ctmm R user group
2_matturu_range_shift.tiff
3_matturu_seg_movement_plot.tiff
1_matturu_seg.tiff
4_Matturu_seg_likelihood.tiff

Christen Fleming

unread,
Jul 29, 2026, 11:04:07 PM (7 days ago) Jul 29
to ctmm R user group
Hi Chethan,

You can use the range=FALSE argument like this:
GUESS <- ctmm.guess(DATA,CTMM=ctmm(range=FALSE),interactive=FALSE)
to only consider non-resident models (BM, IOU) for the dispersal phase. Generally, it doesn't matter unless you are working with a small amount of data and can't afford the 3-5 extra parameters of the resident models.

Best,
Chris

Chethan C M Hirikara

unread,
Jul 30, 2026, 1:21:53 AM (7 days ago) Jul 30
to ctmm R user group

Hi Chris,

Thank you very much for taking the time to clarify this and for explaining the parameter mechanics behind (range=FALSE),that makes total sense.

I will go ahead and implement these suggestions for the isolated dispersal phases across all individuals in my dataset. I'll continue processing the rest of the tracking data and will reach out again if any questions arise down the road.

Thanks again for your time and guidance.

Best regards,

Chethan

Reply all
Reply to author
Forward
0 new messages