In this exercise, we use `R`

(R Core Team, 2019) and the `Distance`

package (Miller, Rexstad, Thomas, Marshall, & Laake, 2019) to fit different detection function models to point transect survey data of savanna sparrows *(Passerculus sandwichensis)* density and abundance. These data were part of a study examining the effect of livestock grazing upon vegetation structure and consequently upon the avian community described by Knopf et al. (1988). This dataset was also used to demonstrate point transect analysis

- Fit a detection function pooling data across pastures,
- Fit pasture-specific detection functions,
- Choose most appropriate analysis using model selection.

A total of 373 point transects were placed in three pastures in the Arapaho National Wildlife Refuge in Colorado. Elevation of these pastures was ~2500m. In this example, we **will** perform pasture-level analysis of these data.

The fields of the `Savannah_sparrow_1980`

data set are:

- Region.Label - three pastures that constituted sections of the study area.

- Area - size of the study region. A place holder, because pasture sizes are not known. Estimates of density and abundance will be equivalent.
- Sample.Label - point transect identifier (total of 273)
- Effort - number of visits to each point
- object - unique identifier for each detected savanna sparrow
- distance - radial distance (metres) to each detection
- Study.Area - only data for savanna sparrow (SASP) are included in this data set

This command assumes that the `dsdata`

package has been installed on your computer. The R workspace `Savannah_sparrow_1980`

contains detections of savanna sparrows from point transect surveys of Knopf et al. (1988).

The simplest way to fit pasture-specific detection functions is to subset the data. This could be done at the time the `ds()`

function is called, but we perform the step here as a data preparation step.

Fit half-normal key functions without adjustments to each pasture separately after performing 5% right truncation.

```
past1.hn <- ds(data=sasp.past1, key="hn", adjustment=NULL,
transect="point", convert.units=conversion.factor, truncation="5%")
past2.hn <- ds(data=sasp.past2, key="hn", adjustment=NULL,
transect="point", convert.units=conversion.factor, truncation="5%")
past3.hn <- ds(data=sasp.past3, key="hn", adjustment=NULL,
transect="point", convert.units=conversion.factor, truncation="5%")
```

The total AIC for the model that fits separate detection functions to each pasture is the sum of the AICs for the individual pastures.

This model is much simpler to fit because there is only a single call to `ds()`

using the original data.

```
cat(paste("Stratum-specific detection AIC", round(model.separate.AIC),
"\nCommon detection function AIC", round(model.pooled.AIC$AIC)), sep=" ")
```

```
## Stratum-specific detection AIC 2007
## Common detection function AIC 2022
```

Because the AIC for model with stratum-specific detection functions (2007) is less than AIC for model with pooled detection function (2022), we base our inference upon the stratum-specific detection function model.

```
cutpoints <- c(0,5,10,15,20,30,40,53)
par(mfrow=c(1,3))
plot(past1.hn, breaks=cutpoints, pdf=TRUE, main="Pasture 1")
plot(past2.hn, breaks=cutpoints, pdf=TRUE, main="Pasture 2")
plot(past3.hn, breaks=cutpoints, pdf=TRUE, main="Pasture 3")
```

Always best to check the fit of the preferred model to the data.

```
##
## Goodness of fit results for ddf object
##
## Distance sampling Cramer-von Mises test (unweighted)
## Test statistic = 0.0939637 p-value = 0.615284
```

```
##
## Goodness of fit results for ddf object
##
## Distance sampling Cramer-von Mises test (unweighted)
## Test statistic = 0.0478569 p-value = 0.889167
```

```
##
## Goodness of fit results for ddf object
##
## Distance sampling Cramer-von Mises test (unweighted)
## Test statistic = 0.0402974 p-value = 0.931609
```

Further exploration of analyses involving stratification can be found in the example of dung survey analysis.

Knopf, F. L., Sedgwick, J. A., & Cannon, R. W. (1988). Guild structure of a riparian avifauna relative to seasonal cattle grazing. *The Journal of Wildlife Management*, *52*(2), 280–290. https://doi.org/10.2307/3801235

Miller, D. L., Rexstad, E., Thomas, L., Marshall, L., & Laake, J. L. (2019). Distance sampling in R. *Journal of Statistical Software*, *89*(1), 1–28. https://doi.org/10.18637/jss.v089.i01

R Core Team. (2019). *R: A Language and Environment for Statistical Computing*. Vienna Austria: R Foundation for Statistical Computing.

## Comments

Note there is a difference of roughly 14 AIC units between the model using stratum-specific detection functions and the model using a pooled detection function, with the stratum-specific detection function model being preferrable. To be thorough, absolute goodness of fit for the three stratum-specific detection functions is checked, and all models fit the data adequately.

This vignette focuses upon use of stratum-specific detection functions as a model selection exercise. Consequently, the vignette does not examine stratum-specific abundance or density estimates. That output is not provided.