Organizes count data along with the covariates. This S4 class is required by the data argument of multinomPois

unmarkedFrameMPois(y, siteCovs=NULL, obsCovs=NULL, type, obsToY, 
    mapInfo, piFun)

Arguments

y

An RxJ matrix of count data, where R is the number of sites (transects) and J is the maximum number of observations per site.

siteCovs

A data.frame of covariates that vary at the site level. This should have R rows and one column per covariate

obsCovs

Either a named list of RxJ data.frames or a data.frame with RxJ rows and one column per covariate. For the latter format, the covariates should be in site-major order.

type

Either "removal" for removal sampling, "double" for standard double observer sampling, or "depDouble" for dependent double observer sampling. If this argument not specified, the user must provide an obsToY matrix. See details.

obsToY

A matrix describing the relationship between obsCovs and y. This is necessary because under some sampling designs the dimensions of y do not equal the dimensions of each observation level covariate. For example, in double observer sampling there are 3 observations (seen only by observer A, detected only by observer B, and detected by both), but each observation-level covariate can only have 2 columns, one for each observer. This matrix is created automatically if type is specified.

mapInfo

Currently ignored

piFun

Function used to compute the multinomial cell probabilities from a matrix of detection probabilities. This is created automatically if type is specified.

Details

unmarkedFrameMPois is the S4 class that holds data to be passed to the multinomPois model-fitting function.

Value

an object of class unmarkedFrameMPois

References

Royle, J. A. (2004). Generalized estimators of avian abundance from count survey data. Animal Biodiversity and Conservation, 27(1), 375-386.

Examples


# Fake doulbe observer data
R <- 4 # number of sites
J <- 2 # number of observers

y <- matrix(c(
   1,0,3,
   0,0,0,
   2,0,1,
   0,0,2), nrow=R, ncol=J+1, byrow=TRUE)
y
#>      [,1] [,2] [,3]
#> [1,]    1    0    3
#> [2,]    0    0    0
#> [3,]    2    0    1
#> [4,]    0    0    2

site.covs <- data.frame(x1=1:4, x2=factor(c('A','B','A','B')))
site.covs
#>   x1 x2
#> 1  1  A
#> 2  2  B
#> 3  3  A
#> 4  4  B

obs.covs <- list(
   x3 = matrix(c(
      -1,0,
      -2,0,
      -3,1,
       0,0), 
      nrow=R, ncol=J, byrow=TRUE),
   x4 = matrix(c(
      'a','b',
      'a','b',
      'a','b',
      'a','b'), 
      nrow=R, ncol=J, byrow=TRUE))
obs.covs
#> $x3
#>      [,1] [,2]
#> [1,]   -1    0
#> [2,]   -2    0
#> [3,]   -3    1
#> [4,]    0    0
#> 
#> $x4
#>      [,1] [,2]
#> [1,] "a"  "b" 
#> [2,] "a"  "b" 
#> [3,] "a"  "b" 
#> [4,] "a"  "b" 
#> 


# Create unmarkedFrame
umf <- unmarkedFrameMPois(y=y, siteCovs=site.covs, obsCovs=obs.covs,
    type="double")
#> Warning: obsCovs contains characters. Converting them to factors.
    
# The above is the same as:
o2y <- matrix(1, 2, 3)
pifun <- function(p)
{
    M <- nrow(p)
    pi <- matrix(NA, M, 3)
    pi[, 1] <- p[, 1] * (1 - p[, 2])
    pi[, 2] <- p[, 2] * (1 - p[, 1])
    pi[, 3] <- p[, 1] * p[, 2]
    return(pi)
}

umf <- unmarkedFrameMPois(y=y, siteCovs=site.covs, obsCovs=obs.covs,
    obsToY=o2y, piFun="pifun")
#> Warning: obsCovs contains characters. Converting them to factors.


# Fit a model
fm <- multinomPois(~1 ~1, umf)
#> Warning: Custom pi functions are not supported by C engine. Using R engine instead.
#> Error in pifun(p = structure(c(0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5), dim = c(4L, 2L))): could not find function "pifun"