Oilog | R Documentation |

Density, distribution function, quantile function and random generation
for the one-inflated
logarithmic distribution with parameter `pstr1`

.

doilog(x, shape, pstr1 = 0, log = FALSE) poilog(q, shape, pstr1 = 0) qoilog(p, shape, pstr1 = 0) roilog(n, shape, pstr1 = 0)

`x, q, p, n` |
Same as |

`shape` |
Vector of parameters that lie in |

`pstr1` |
Probability of a structural one
(i.e., ignoring the logarithmic distribution),
called |

`log` |
Same as |

The probability function of *Y* is 1 with probability
*phi*, and *Logarithmic(prob)* with
probability *1-phi*. Thus

*
P(Y=1) = phi + (1-phi) * P(W=1)*

where *W* is distributed as a
*Logarithmic(shape)* random variable.
The VGAM family function `oilog`

estimates
*phi* by MLE.

`doilog`

gives the density,
`poilog`

gives the distribution function,
`qoilog`

gives the quantile function, and
`roilog`

generates random deviates.

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
logarithmic* distribution. Here, `pstr1`

is also permitted
to lie in the interval `[-dlog(1, shape) / (1 - dlog(1, shape)), 0]`

.
The resulting probability of a unit count is *less than*
the nominal logarithmic value, and the use of `pstr1`

to
stand for the probability of a structural 1 loses its
meaning.
When `pstr1`

equals `-dlog(1, shape) / (1 - dlog(1, shape))`

this corresponds to the 1-truncated logarithmic distribution.

T. W. Yee

`Gaitdlog`

,
`oilog`

,
`rlog`

,
`logff`

,
`Otlog`

.

shape <- 0.5; pstr1 <- 0.3; x <- (-1):7 (ii <- doilog(x, shape, pstr1 = pstr1)) max(abs(poilog(1:200, shape) - cumsum(shape^(1:200) / (-(1:200) * log1p(-shape))))) # Should be 0 ## Not run: x <- 0:10 par(mfrow = c(2, 1)) # One-Inflated logarithmic barplot(rbind(doilog(x, shape, pstr1 = pstr1), dlog(x, shape)), beside = TRUE, col = c("blue", "orange"), main = paste("OILogff(", shape, ", pstr1 = ", pstr1, ") (blue) vs", " Logff(", shape, ") (orange)", sep = ""), names.arg = as.character(x)) deflat.limit <- -dlog(1, shape) / plog(1, shape, lower.tail = FALSE) newpstr1 <- round(deflat.limit, 3) + 0.001 # Inside but near the boundary barplot(rbind(doilog(x, shape, pstr1 = newpstr1), dlog(x, shape)), beside = TRUE, col = c("blue","orange"), main = paste("ODLogff(", shape, ", pstr1 = ", newpstr1, ") (blue) vs", " Logff(", shape, ") (orange)", sep = ""), names.arg = as.character(x)) ## End(Not run)

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.