Learn R Programming

DistributionUtils (version 0.6-1)

logHist: Plot Log-Histogram

Description

Plots a log-histogram, as in for example Feiller, Flenley and Olbricht (1992).

The intended use of the log-histogram is to examine the fit of a particular density to a set of data, as an alternative to a histogram with a density curve. For this reason, only the log-density histogram is implemented, and it is not possible to obtain a log-frequency histogram.

The log-histogram can be plotted with histogram-like dashed vertical bars, or as points marking the tops of the log-histogram bars, or with both bars and points.

Usage

logHist(x, breaks = "Sturges",
          include.lowest = TRUE, right = TRUE,
          main = paste("Log-Histogram of", xName),
          xlim = range(breaks), ylim = NULL, xlab = xName,
          ylab = "Log-density", nclass = NULL, htype = "b", ...)

Value

Returns a list with components:

breaks

The \(n+1\) cell boundaries (= breaks if that was a vector).

counts

\(n\) integers; for each cell, the number of x[] inside.

logDensity

Log of \(\hat f(x_i)\), which are estimated density values.

If all(diff(breaks) == 1), estimated density values are the relative frequencies counts/n and in general satisfy \(\sum_i \hat f(x_i) (b_{i+1}-b_i) = 1\), where \(b_i\) = breaks[i].

mids

The \(n\) cell midpoints.

xName

A character string with the actual x argument name.

heights

The location of the tops of the vertical segments used in drawing the log-histogram.

ylim

The value of ylim calculated by logHist.

Arguments

x

A vector of values for which the log-histogram is desired.

breaks

One of:

  • a vector giving the breakpoints between log-histogram cells;

  • a single number giving the number of cells for the log-histogram;

  • a character string naming an algorithm to compute the number of cells (see Details);

  • a function to compute the number of cells.

In the last three cases the number is a suggestion only.

include.lowest

Logical. If TRUE, an `x[i]' equal to the `breaks' value will be included in the first (or last, for right = FALSE) bar.

right

Logical. If TRUE, the log-histograms cells are right-closed (left open) intervals.

main, xlab, ylab

These arguments to title have useful defaults here.

xlim

Sensible default for the range of x values.

ylim

Calculated by logHist, see Details.

nclass

Numeric (integer). For compatibility with hist only, nclass is equivalent to breaks for a scalar or character argument.

htype

Type of histogram. Possible types are:

  • '"h"' for a *h*istogram only;

  • '"p"' for *p*oints marking the top of the histogram bars only;

  • '"b"' for *b*oth.

...

Further graphical parameters for calls to plot and points.

Author

David Scott d.scott@auckland.ac.nz, Richard Trendall, Thomas Tran

Details

Uses hist.default to determine the cells or classes and calculate counts.

To calculate ylim the following procedure is used. The upper end of the range is given by the maximum value of the log-density, plus 25% of the absolute value of the maximum. The lower end of the range is given by the smallest (finite) value of the log-density, less 25% of the difference between the largest and smallest (finite) values of the log-density.

A log-histogram in the form used by Feiller, Flenley and Olbricht (1992) is plotted. See also Barndorff-Nielsen (1977) for use of log-histograms.

References

Barndorff-Nielsen, O. (1977) Exponentially decreasing distributions for the logarithm of particle size, Proc. Roy. Soc. Lond., A353, 401--419.

Barndorff-Nielsen, O. and Blæsild, P (1983). Hyperbolic distributions. In Encyclopedia of Statistical Sciences, eds., Johnson, N. L., Kotz, S. and Read, C. B., Vol. 3, pp. 700--707. New York: Wiley.

Fieller, N. J., Flenley, E. C. and Olbricht, W. (1992) Statistics of particle size data. Appl. Statist., 41, 127--146.

See Also

Examples

Run this code
x <- rnorm(200)
hist(x)
### default
logHist(x)
### log histogram only
logHist(x, htype = "h")
### points only, some options
logHist(x, htype = "p", pch = 20, cex = 2, col = "steelblue")

Run the code above in your browser using DataLab