Oipospois {VGAMdata} | R Documentation |
One-Inflated Positive Poisson Distribution
Description
Density,
distribution function,
quantile function and random generation
for the one-inflated positive
Poisson distribution with parameter pstr1
.
Usage
doipospois(x, lambda, pstr1 = 0, log = FALSE)
poipospois(q, lambda, pstr1 = 0)
qoipospois(p, lambda, pstr1 = 0)
roipospois(n, lambda, pstr1 = 0)
Arguments
x , p , q , n |
Same as |
lambda |
Vector of positive means. |
pstr1 |
Probability of a structural one
(i.e., ignoring the positive Poisson distribution),
called |
log |
Logical. Return the logarithm of the answer? |
Details
The probability function of Y
is 1 with probability
\phi
,
and PosPoisson(\lambda)
with
probability 1-\phi
. Thus
P(Y=1) =\phi + (1-\phi) P(W=1)
where W
is distributed as a
positive Poisson(\lambda)
random variate.
Value
doipospois
gives the density,
poipospois
gives the distribution function,
qoipospois
gives the quantile function, and
roipospois
generates random deviates.
Note
The argument pstr1
is recycled to the required length,
and usually has values which lie in the interval [0,1]
.
These functions actually allow for the zero-deflated
Poisson distribution. Here, pstr1
is also permitted
to lie in the interval [-lambda / (expm1(lambda) -
lambda), 0]
. The resulting probability of a unit count is
less than the nominal positive Poisson value, and the
use of pstr1
to stand for the probability of a structural
1 loses its meaning.
When pstr1
equals -lambda / (expm1(lambda) -
lambda)
this corresponds to the 0- and 1-truncated Poisson
distribution.
Author(s)
T. W. Yee
See Also
Pospois
,
oapospoisson
,
oipospoisson
,
otpospoisson
,
pospoisson
,
dpois
,
poissonff
.
Examples
lambda <- 3; pstr1 <- 0.2; x <- (-1):7
(ii <- doipospois(x, lambda, pstr1 = pstr1))
table(roipospois(100, lambda, pstr1 = pstr1))
round(doipospois(1:10, lambda, pstr1 = pstr1) * 100) # Similar?
## Not run: x <- 0:10
par(mfrow = c(2, 1)) # One-Inflated Positive Poisson
barplot(rbind(doipospois(x, lambda, pstr1 = pstr1),
dpospois(x, lambda)),
beside = TRUE, col = c("blue", "orange"),
main = paste0("OIPP(", lambda, ", pstr1 = ", pstr1,
") (blue) vs PosPoisson(", lambda, ") (orange)"),
names.arg = as.character(x))
# 0-deflated Pos Poisson:
deflat.limit <- -lambda / (expm1(lambda) - lambda)
newpstr1 <- round(deflat.limit, 3) + 0.001 # Near the boundary
barplot(rbind(doipospois(x, lambda, pstr1 = newpstr1),
dpospois(x, lambda)),
beside = TRUE, col = c("blue","orange"),
main = paste0("ODPP(", lambda, ", pstr1 = ", newpstr1,
") (blue) vs PosPoisson(", lambda, ") (orange)"),
names.arg = as.character(x))
## End(Not run)