plotpdf: Plot a probability denstity function

View source: R/cdf2qf.R

plotpdfR Documentation

Plot a probability denstity function

Description

Plot a probability denstity function with x-axis limits determined by quantiles of the distribution. Quantiles are computed using a quantile function or cumulative distribution function, whichever is supplied.

Usage

plotpdf(pdf, qdf, cdf, lq = 0.01, uq = 0.99, ...)

Arguments

pdf

probability density to be plotted, a function.

qdf

quantile function to be used for computation of quantiles, a function.

cdf

cumulative distribution function to be used for computation of quantiles, a function. This argument is used if qdf is not given, see ‘Details’ section.

lq

lower quantile, used in the computation of the left limit.

uq

upper quantile, used in the computation of the right limit.

...

additional arguments to be passed on to the plot function.

Details

The function plots pdf(x) over the interval (xmin,xmax) where xmin and xmax are the lqth and uqth quantiles, respectively, of the distribution. The quantile function, qdf, is used, if supplied. Otherwise the quantiles are computed numerically from the cdf.

Argument pdf is not required to be a pdf, it may be any function. For example, the same way of choosing the limits may be appropriate for a plot of the cdf, see the examples.

Similarly, qdf and cdf need not be related to pdf.

Author(s)

Georgi N. Boshnakov

See Also

cdf2quantile

Examples

pdf1 <- function(x) dnorm(x, mean = 100, sd = 5)
qdf1 <- function(x) qnorm(x, mean = 100, sd = 5)
cdf1 <- function(x) pnorm(x, mean = 100, sd = 5)

plot(pdf1) # needs to specify 'from' and 'to' args for meaningful plot
plotpdf(pdf1, qdf1)                               # using quantile function
plotpdf(pdf1, cdf = cdf1)                         # using cdf
plotpdf(pdf1, cdf = cdf1, lq = 0.001, uq = 0.999) # ... and non-default quantiles

plotpdf(cdf1, cdf = cdf1, lq = 0.001, uq = 0.999) # plot a cdf


## a mixture distribution:
pf1 <- function(x){
    0.25 * pnorm(x, mean = 3, sd = 0.2) + 0.75 * pnorm(x, mean = -1, sd = 0.5)
}
df1 <- function(x){
    0.25 * dnorm(x, mean = 3, sd = 0.2) + 0.75 * dnorm(x, mean = -1, sd = 0.5)
}

plotpdf(df1, cdf = pf1) # plot the pdf
plotpdf(pf1, cdf = pf1) # plot the cdf

c(cdf2quantile(0.05, pf1), cdf2quantile(0.95, pf1))

gbutils documentation built on May 28, 2022, 1:13 a.m.