These functions define the density, distribution function, quantile function and random generation for the Discrete Burr Hatke distribution with parameter μ.
dDBH(x, mu, log =FALSE)pDBH(q, mu, lower.tail =TRUE, log.p =FALSE)qDBH(p, mu =1, lower.tail =TRUE, log.p =FALSE)rDBH(n, mu =1)
Arguments
x, q: vector of (non-negative integer) quantiles.
mu: vector of the mu parameter.
log, log.p: logical; if TRUE, probabilities p are given as log(p).
lower.tail: logical; if TRUE (default), probabilities are P[X<=x], otherwise, P[X>x].
p: vector of probabilities.
n: number of random values to return
Returns
dDBH gives the density, pDBH gives the distribution function, qDBH gives the quantile function, rDBH
generates random deviates.
Details
The Discrete Burr-Hatke distribution with parameters μ has a support 0, 1, 2, ... and density given by
f(x∣μ)=(x+11−x+2μ)μx
The pmf is log-convex for all values of 0<μ<1, where f(x;μ)f(x+1;μ)
is an increasing function in x for all values of the parameter μ.
Note: in this implementation we changed the original parameters λ for μ, we did it to implement this distribution within gamlss framework.
Examples
# Example 1# Plotting the mass function for different parameter valuesplot(x=0:5, y=dDBH(x=0:5, mu=0.1), type="h", lwd=2, col="dodgerblue", las=1, ylab="P(X=x)", xlab="X", ylim=c(0,1), main="Probability mu=0.1")plot(x=0:10, y=dDBH(x=0:10, mu=0.5), type="h", lwd=2, col="tomato", las=1, ylab="P(X=x)", xlab="X", ylim=c(0,1), main="Probability mu=0.5")plot(x=0:15, y=dDBH(x=0:15, mu=0.9), type="h", lwd=2, col="green4", las=1, ylab="P(X=x)", xlab="X", ylim=c(0,1), main="Probability mu=0.9")# Example 2# Checking if the cumulative curves converge to 1x_max <-15cumulative_probs1 <- pDBH(q=0:x_max, mu=0.1)cumulative_probs2 <- pDBH(q=0:x_max, mu=0.5)cumulative_probs3 <- pDBH(q=0:x_max, mu=0.9)plot(x=0:x_max, y=cumulative_probs1, col="dodgerblue", type="o", las=1, ylim=c(0,1), main="Cumulative probability for Burr-Hatke", xlab="X", ylab="Probability")points(x=0:x_max, y=cumulative_probs2, type="o", col="tomato")points(x=0:x_max, y=cumulative_probs3, type="o", col="green4")legend("bottomright", col=c("dodgerblue","tomato","green4"), lwd=3, legend=c("mu=0.1","mu=0.5","mu=0.9"))# Example 3# Comparing the random generator output with# the theoretical probabilitiesmu <-0.4x_max <-10probs1 <- dDBH(x=0:x_max, mu=mu)names(probs1)<-0:x_max
x <- rDBH(n=1000, mu=mu)probs2 <- prop.table(table(x))cn <- union(names(probs1), names(probs2))height <- rbind(probs1[cn], probs2[cn])nombres <- cn
mp <- barplot(height, beside =TRUE, names.arg = nombres, col=c("dodgerblue3","firebrick3"), las=1, xlab="X", ylab="Proportion")legend("topright", legend=c("Theoretical","Simulated"), bty="n", lwd=3, col=c("dodgerblue3","firebrick3"), lty=1)# Example 4# Checking the quantile functionmu <-0.97p <- seq(from=0, to=1, by =0.01)qxx <- qDBH(p, mu, lower.tail =TRUE, log.p =FALSE)plot(p, qxx, type="s", lwd=2, col="green3", ylab="quantiles", main="Quantiles of BH(mu=0.97)")