piFuns.Rd
Compute the cell probabilities used in the multinomial-Poisson models multinomPois and gmultmix. These functions use piFuns internally to calculate multinomial likelihoods from the occasion-wise detection probabilities. The only reason to call them directly is to check their behaviour.
removalPiFun(p) doublePiFun(p)
p | matrix of detection probabilities at each site for each observation |
---|
These two functions are provided as examples of possible functions to calculate multinomial cell probabilities. Users may write their own functions for specific sampling designs (see the example).
For removalPiFun, a matrix of cell probabilities for each site and sampling period.
For doublePiFun, a matrix of cell probabilities for each site and observer combination. Column one is probability observer 1 but not observer 2 detects the object, column two is probability that observer 2 but not observer 1 detects the object, and column 3 is probability of both detecting.
makePiFuns for factory functions to create customised piFuns.
#> [,1] [,2] [,3] #> [1,] 0.5 0.5 0.5 #> [2,] 0.5 0.5 0.5 #> [3,] 0.5 0.5 0.5removalPiFun(pRem) # Cell probs#> [,1] [,2] [,3] #> [1,] 0.5 0.25 0.125 #> [2,] 0.5 0.25 0.125 #> [3,] 0.5 0.25 0.125#> [,1] [,2] #> [1,] 0.5 0.5 #> [2,] 0.5 0.5 #> [3,] 0.5 0.5doublePiFun(pDouble) # Cell probs#> [,1] [,2] [,3] #> [1,] 0.25 0.25 0.25 #> [2,] 0.25 0.25 0.25 #> [3,] 0.25 0.25 0.25# A user-defined piFun calculating removal probs when time intervals differ. # Here 10-minute counts were divided into 2, 3, and 5 minute intervals. # This function could be supplied to unmarkedFrameMPois along with the obsToY # argument shown below. instRemPiFun <- function(p) { M <- nrow(p) J <- ncol(p) pi <- matrix(NA, M, J) p[,1] <- pi[,1] <- 1 - (1 - p[,1])^2 p[,2] <- 1 - (1 - p[,2])^3 p[,3] <- 1 - (1 - p[,3])^5 for(i in 2:J) { pi[,i] <- pi[, i - 1]/p[, i - 1] * (1 - p[, i - 1]) * p[, i] } return(pi) } instRemPiFun(pRem)#> [,1] [,2] [,3] #> [1,] 0.75 0.21875 0.03027344 #> [2,] 0.75 0.21875 0.03027344 #> [3,] 0.75 0.21875 0.03027344# Associated obsToY matrix required by unmarkedFrameMPois o2y <- diag(3) # if y has 3 columns o2y[upper.tri(o2y)] <- 1 o2y#> [,1] [,2] [,3] #> [1,] 1 1 1 #> [2,] 0 1 1 #> [3,] 0 0 1