pcount | R Documentation |
Fit the N-mixture model of Royle (2004)
pcount(formula, data, K, mixture=c("P", "NB", "ZIP"),
starts, method="BFGS", se=TRUE, engine=c("C", "R", "TMB"), threads=1, ...)
formula |
Double right-hand side formula describing covariates of detection and abundance, in that order |
data |
an unmarkedFramePCount object supplying data to the model. |
K |
Integer upper index of integration for N-mixture. This should be set high enough so that it does not affect the parameter estimates. Note that computation time will increase with K. |
mixture |
character specifying mixture: "P", "NB", or "ZIP". |
starts |
vector of starting values |
method |
Optimization method used by |
se |
logical specifying whether or not to compute standard errors. |
engine |
Either "C", "R", or "TMB" to use fast C++ code, native R code, or TMB (required for random effects) during the optimization. |
threads |
Set the number of threads to use for optimization in C++, if
OpenMP is available on your system. Increasing the number of threads
may speed up optimization in some cases by running the likelihood
calculation in parallel. If |
... |
Additional arguments to optim, such as lower and upper bounds |
This function fits N-mixture model of Royle (2004) to spatially replicated count data.
See unmarkedFramePCount
for a description of how to format data
for pcount
.
This function fits the latent N-mixture model for point count data (Royle 2004, Kery et al 2005).
The latent abundance distribution, f(N | \mathbf{\theta})
can be set as a Poisson, negative binomial, or zero-inflated
Poisson random
variable, depending on the setting of the mixture
argument,
mixture = "P"
, mixture = "NB"
, mixture = "ZIP"
respectively. For the first two distributions, the mean of N_i
is
\lambda_i
. If N_i \sim NB
, then an
additional parameter, \alpha
, describes dispersion (lower
\alpha
implies higher variance). For the ZIP distribution,
the mean is \lambda_i(1-\psi)
, where psi is the
zero-inflation parameter.
The detection process is modeled as binomial: y_{ij} \sim
Binomial(N_i, p_{ij})
.
Covariates of \lambda_i
use the log link and
covariates of p_{ij}
use the logit link.
unmarkedFit object describing the model fit.
Ian Fiske and Richard Chandler
Royle, J. A. (2004) N-Mixture Models for Estimating Population Size from Spatially Replicated Counts. Biometrics 60, pp. 108–105.
Kery, M., Royle, J. A., and Schmid, H. (2005) Modeling Avaian Abundance from Replicated Counts Using Binomial Mixture Models. Ecological Applications 15(4), pp. 1450–1461.
Johnson, N.L, A.W. Kemp, and S. Kotz. (2005) Univariate Discrete Distributions, 3rd ed. Wiley.
unmarkedFramePCount
, pcountOpen
,
ranef
, parboot
## Not run:
# Simulate data
set.seed(35)
nSites <- 100
nVisits <- 3
x <- rnorm(nSites) # a covariate
beta0 <- 0
beta1 <- 1
lambda <- exp(beta0 + beta1*x) # expected counts at each site
N <- rpois(nSites, lambda) # latent abundance
y <- matrix(NA, nSites, nVisits)
p <- c(0.3, 0.6, 0.8) # detection prob for each visit
for(j in 1:nVisits) {
y[,j] <- rbinom(nSites, N, p[j])
}
# Organize data
visitMat <- matrix(as.character(1:nVisits), nSites, nVisits, byrow=TRUE)
umf <- unmarkedFramePCount(y=y, siteCovs=data.frame(x=x),
obsCovs=list(visit=visitMat))
summary(umf)
# Fit a model
fm1 <- pcount(~visit-1 ~ x, umf, K=50)
fm1
plogis(coef(fm1, type="det")) # Should be close to p
# Empirical Bayes estimation of random effects
(fm1re <- ranef(fm1))
plot(fm1re, subset=site %in% 1:25, xlim=c(-1,40))
sum(bup(fm1re)) # Estimated population size
sum(N) # Actual population size
# Real data
data(mallard)
mallardUMF <- unmarkedFramePCount(mallard.y, siteCovs = mallard.site,
obsCovs = mallard.obs)
(fm.mallard <- pcount(~ ivel+ date + I(date^2) ~ length + elev + forest, mallardUMF, K=30))
(fm.mallard.nb <- pcount(~ date + I(date^2) ~ length + elev, mixture = "NB", mallardUMF, K=30))
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.