distrib {NCStats} R Documentation

## Plots calculated areas or values from a wide variety of continuous and discrete distribution functions.

### Description

Plots calculated areas or values from normal, Student's t, F, chi-square, beta, exponential, and gamma continuous density functions and binomial, geometric, negative binomial, Poisson, and hypergeometric discrete distribution functions.

### Usage

```distrib(val, distrib = c("norm", "t", "chisq", "f", "beta", "exp", "gamma",
"pois", "binom", "geom", "hypergeom", "nbinom"), type = c("p", "q", "d",
"forward", "reverse"), digits = getOption("digits"), mean = 0, sd = se,
se = 1, df = 1, df1 = df, df2 = 1, shape1 = 1, shape2 = 1,
shape = 1, rate = 1, scale = 1/rate, size = 10, prob = 0.5,
mu = NULL, lambda = 1, m = NULL, n = NULL, k = NULL,
lower.tail = TRUE, plot = TRUE, show.ans = TRUE, show.alt = FALSE,
main = NULL, xlab = NULL, ylab = NULL, yaxt = "n",
smoothness = 1000, shade.col = "red", shade.trans = 1,
lbl.col = "red", ...)
```

### Arguments

 `val` a single-length numeric containing a value or probability/quantile. `distrib` a string indicating the type of distribution to use. See details. `type` a string indicating the type of calculation to make – `"p"` or `"forward"` is the cumulative probability given a value, `"q"` or `"reverse"` is the value given a probability/quantile, and `"d"` is the probability for a given value on a discrete distribution function (see details) `digits` A numeric indicating the number of decimals to round the returned result when `plot=FALSE`. `mean` a single-length numeric for the mean of the normal distribution. `sd` a single-length numeric for the standard deviation of the normal distribution. `se` a single-length numeric for the standard error of the normal distribution (see details) `df` a single-length numeric for the degrees-of-freedom for the t and chi-square distributions. `df1` a single-length numeric for the numerator degrees-of-freedom for the F distribution. `df2` a single-length numeric for the denominator degrees-of-freedom for the F distribution. `shape1` a single-length numeric for the first shape parameter in the beta distribution. `shape2` a single-length numeric for the first shape parameter in the beta distribution. `shape` a single-length numeric for the shape parameter in the gamma distribution. `rate` a single-length numeric for the rate parameter in the gamma and exponential distributions. See details. `scale` a single-length numeric for the scale parameter in the gamma distribution. `size` a single-length numeric for the number of trials in the binomial distribution. `prob` a single-length numeric for the probability of success on each trial in the binomial, geometric, and negative binomial distributions. `mu` a single-length numeric for the mean of negative binomial distribution. see details `lambda` a single-length numeric for the mean of the Poisson distribution. `m` a single-length numeric for the number of white balls in the urn of a hypergeometric distribution. `n` a single-length numeric for the number of black balls in the urn of a hypergeometric distribution. `k` a single-length numeric for the number of balls drawn from the urn of a hypergeometric distribution. `lower.tail` a logical indicating if the probabilities are P[X<=x] (`=TRUE`; default) or P[X>x]. `plot` a logical indicating if a plot should be shown (`TRUE`) or not. `show.ans` a logical indicating if the computational results should be shown on the plot (`TRUE`) or not. `show.alt` a logical indicating if a message showing alternaive (i.e,. traditional) code for obtaining the answer should be shown (`TRUE`) or not (default). `main` a character string for the plot's main label. If null an appropriate string will be created. `xlab` character string for plot's x-axis label. If null an appropriate string will be created. `ylab` character string for plot's y-axis label. If null an appropriate string will be created. `yaxt` a character which specifies the y axis type. Specifying `"n"` (default) suppresses plotting. Specifying `NULL` gives axis labels. `smoothness` a single-length numeric indicating the number of points for which to construct the plot. The larger the number the smoother the plot will appear. `shade.col` a string indicating the color to use for the shaded area. `shade.trans` Value between 0 and 1 indicating the transparency to use for the shaded area. `lbl.col` a string indicating the color to use for labeling the shaded area. `...` optional parameters to send to the internal `c.region` or `d.region` functions. For example, can change the size of the answer with `cex.ans=`

### Details

This function computes the same values as the `pXXX` and `qXXX` functions for both continuous density and discrete probability distributions and as the `dXXX` functions for the discrete probability distributions. This function is used primarily to include a plot with the calculation. The original functions in the stats package should be consulted for more details on each distribution. For example, use `?dbinom` to get help for computing the probability of a value in the binomial distribution, `?ppois` to get help for computing the cumulative probability of a value on the Poisson distribution, and `?qnorm` to get help for computing the quantile value of a normal distribution.

The strings in the `distrib` argument are the same as the abbreviated function names in the stats package. For example, the normal distribution is `"norm"`, the chi-square distribution is `"chisq"`, and the hypergeometric distribution is `"hyper"`

The strings in the `type` argument at the same as the prefixes to the abbreviated function names in the stats package. For example, the density is computed with `"d"`, the cumulative probability with `"p"`, and the quantiles with `"q"`. The `"forward"` and `"reverse"` types correspond to `"p"` and `"q"`, respectively, and are used to match terminology used in the Introductory Statistics course at Northland College.

Other visualizations of the distribution can be seen with functions that are named with the `s` prefix (for simulation) on the abbreviated function name. For example, try `sbinom()` to show a simulation of the binomial distribution.

Note that for a normal distribution the `se=` argument is supplied for convenience only. Whatever is supplied to `se=` is then applied to the `sd=` argument. Use of `se=` may be somewhat simpler for students learning to distinguish between normal distribution calculations on a sampling versus a population distribution.

### Value

A numeric answer is returned. If `plot=TRUE` then a plot is constructed and a note on how to use one of the functions in stats is printed if `show.alt=TRUE`.

### Note

Students often need to “look up” values or probabilities from statistical tables in textbooks. These values can be easily found in R with the `pXXX`, `qXXX`, or `dXXX` distributional functions. However, these functions do not provide a visual representation of the computation. This function also replaces the tables of distributional values found in texts but also provides a graph of the computation.

I had hoped to add a `plot=` argument to any of the `pXXX`, `qXXX`, or `dXXX` distributional functions but this required replacing the base R functions. A compromise was to create this new function, using the `type=` argument with `p`, `q`, and `d` and printing a direction on how to use the base R function if `show.alt=TRUE`.

The `type=` and `distrib=` arguments can be concatenated to provide the typical function in base R. For example, for the examples below see `dbinom`, `dpois`, `pexp`, and `qnorm`.

### Examples

```op <- par(mfrow=c(2,2),mar=c(3.5,1,3.5,1),mgp=c(2,0.75,0))
distrib(4,distrib="binom",type="d",size=10,prob=0.5)
distrib(5,distrib="pois",type="p",lambda=2)
distrib(2.2,distrib="exp",type="p",rate=1/2)
distrib(0.6,distrib="norm",type="q",mean=10,sd=3,lower.tail=FALSE)
par(op)

```

[Package NCStats version 0.4.7 Index]