Density function, distribution function, and random generation for the slash distribution.

dslash(x, mu = 0, sigma = 1, log = FALSE,
       smallno = .Machine$double.eps*1000)
pslash(q, mu = 0, sigma = 1, very.negative = -10000,
       lower.tail = TRUE, log.p = FALSE)
rslash(n, mu = 0, sigma = 1)

Arguments

x, q

vector of quantiles.

n

Same as runif.

mu, sigma

the mean and standard deviation of the univariate normal distribution.

log

Logical. If TRUE then the logarithm of the density is returned.

very.negative

Numeric, of length 1. A large negative value. For (q-mu)/sigma values less than this, the value 0 is returned because integrate tends to fail. A warning is issued. Similarly, if (q-mu)/sigma is greater than abs(very.negative) then 1 is returned with a warning.

smallno

See slash.

lower.tail, log.p

Same meaning as in pnorm or qnorm.

Details

See slash, the VGAM family function for estimating the two parameters by maximum likelihood estimation, for the formula of the probability density function and other details.

Function pslash uses a for () loop and integrate, meaning it's very slow. It may also be inaccurate for extreme values of q, and returns with 1 or 0 values when too extreme compared to very.negative.

Value

dslash gives the density, and pslash gives the distribution function, rslash generates random deviates.

Author

Thomas W. Yee and C. S. Chee

Note

pslash is very slow.

See also

Examples

if (FALSE) { # \dontrun{
curve(dslash, col = "blue", ylab = "f(x)", -5, 5, ylim = c(0, 0.4), las = 1,
     main = "Standard slash, normal and Cauchy densities", lwd = 2)
curve(dnorm, col = "black", lty = 2, lwd = 2, add = TRUE)
curve(dcauchy, col = "orange", lty = 3, lwd = 2, add = TRUE)
legend("topleft", c("slash", "normal", "Cauchy"), lty = 1:3,
       col = c("blue","black","orange"), lwd = 2)

curve(pslash, col = "blue", -5, 5, ylim = 0:1)
pslash(c(-Inf, -20000, 20000, Inf))  # Gives a warning
} # }