Beginner Line-transect Analysis

Estimation of a simple distance function

Beginner
Author

Trent McDonald

Published

January 21, 2023

This tutorial demonstrates estimation a distance function using Rdistance.

Estimation

library(Rdistance)
Loading required package: units
udunits database from C:/Users/trent/AppData/Local/R/win-library/4.4/units/share/udunits/udunits2.xml
Rdistance (v4.0.3)
data(sparrowDf)

summary(sparrowDf, formula = dist ~ groupsize(groupsize))
Transect type: line
Effort:
       Transects: 72        
    Total length: 36000 [m] 
Distances:
   0 [m] to 207 [m]: 356
Sightings:
         Groups: 356 
    Individuals: 374 
dfunc <- dfuncEstim(sparrowDf
                  , dist ~ groupsize(groupsize)
                  , likelihood = "halfnorm")

dfunc
Call: dfuncEstim(data = sparrowDf, dist ~ groupsize(groupsize),
   likelihood = "halfnorm")
Coefficients:
             Estimate  SE          z         p(>|z|)
(Intercept)  3.959313  0.03767961  105.0784  0      

The dfunc output shows parameter estimates, convergence status, and effective strip width (i.e., 65.69518 [m]).

Plots

Plots of the estimated function are easy.

plot(dfunc)

Plots can be customized in a number of ways. For example, we can change the number of bars, color the bars, the titles, etc.

plot(dfunc
     , density = -1
     , col.dfunc = "blue"
     , nbins = 30
     , col = c("darkgoldenrod1", "darkgoldenrod3")
     )

plot(dfunc
     , nbins = 40
     , col ="blue"
     , density = -1
     , col.dfunc = "orange"
     , main = "Sparrow detection")
rug(unnest(dfunc$data)$dist, col="red")

Abundance Estimates

Information on the transects (i.e., number and length of each) is contained in sparrowDf data frame.

Let’s assume the study area on which these transects were collected was 300 ha. Estimates of sparrow density on the sampled transects and sparrow abundance in the study area are obtained by calling the abundEstim function with an estimate distance function, transect data frame, and study area size. Measurement units must be applied to study area size so that Rdistance computes density correctly. By default, Rdistance computes 95% confidence intervals by bootstrap resampling individual transects in the transect information data frame. Setting showProgress to FALSE shuts off the progress bar. Outside of markup documents, the bootstrap progress bar can improve sanity of the analyst.

abund <- abundEstim(dfunc
                    , area = units::set_units(300, "ha")
                    , plot.bs = TRUE
                    , R = 100
                    , showProgress = FALSE)

summary(abund)
Call: dfuncEstim(data = sparrowDf, dist ~ groupsize(groupsize),
   likelihood = "halfnorm")
Coefficients:
             Estimate  SE          z         p(>|z|)
(Intercept)  3.959313  0.03767961  105.0784  0      

Convergence: Success
Function: HALFNORM  
Strip: 0 [m] to 207 [m] 
Effective strip width (ESW): 65.69518 [m] 
Probability of detection: 0.317368
Scaling: g(0 [m]) = 1
Log likelihood: -1667.639 
AICc: 3337.289

     Surveyed Units: 36000 [m] 
   Individuals seen: 374 in 356 groups 
 Average group size: 1.050562 
   Group size range: 1 to 3 

Density in sampled area: 7.906888e-05 [1/m^2]
                 95% CI: 6.152619e-05 [1/m^2] to 9.892083e-05 [1/m^2]

Abundance in 3e+06 [m^2] study area: 237.2066
                             95% CI: 184.5786 to 296.7625

In the summary output, density and abundance estimates along with boostrap confidence intervals appear below the distance function.