50% off | Unlimited Data & AI Learning

Last chance! 50% off unlimited learning

Sale ends in


VGAMdata (version 1.1-13)

Oilog: One-Inflated Logarithmic Distribution

Description

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

Usage

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

Value

doilog gives the density,

poilog gives the distribution function,

qoilog gives the quantile function, and

roilog generates random deviates.

Arguments

x, q, p, n

Same as Uniform.

shape

Vector of parameters that lie in (0,1).

pstr1

Probability of a structural one (i.e., ignoring the logarithmic distribution), called ϕ. The default value of ϕ=0 corresponds to the response having an ordinary logarithmic distribution.

log

Same as Uniform.

Author

T. W. Yee

Details

The probability function of Y is 1 with probability ϕ, and Logarithmic(prob) with probability 1ϕ. Thus P(Y=1)=ϕ+(1ϕ)P(W=1) where W is distributed as a Logarithmic(shape) random variable. The VGAM family function oilog estimates ϕ by MLE.

See Also

Gaitdlog, oilog, rlog, logff, Otlog.

Examples

Run this code
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

if (FALSE)  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 = paste0("OILogff(", shape, ", pstr1 = ", pstr1,
                 ") (blue) vs Logff(", shape, ") (orange)"),
   names.arg = as.character(x))

deflat.limit <- -dlog(1, shape) / plog(1, shape, lower.tail = FALSE)
newpstr1 <- round(deflat.limit, 3) + 0.001  # Near the boundary
barplot(rbind(doilog(x, shape, pstr1 = newpstr1),
                dlog(x, shape)),
   beside = TRUE, col = c("blue","orange"),
   main = paste0("ODLogff(", shape, ", pstr1 = ", newpstr1,
                 ") (blue) vs Logff(", shape, ") (orange)"),
   names.arg = as.character(x)) 

Run the code above in your browser using DataLab