logHist function

Plot Log-Histogram

Plot Log-Histogram

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.

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", ...)

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 histogram only;
    • '"p"' for points marking the top of the histogram bars only;
    • '"b"' for both.
  • ...: Further graphical parameters for calls to plot and points.

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.

Returns

Returns a list with components: - breaks: The n+1n+1 cell boundaries (= breaks if that was a vector).

  • counts: nn integers; for each cell, the number of x[] inside.

  • logDensity: Log of f(x[i])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 c("sum[i;f(x[i])\nsum[i; f^(x[i])\n", "(b[i+1]b[i])]=1 (b[i+1]-b[i])] = 1"), where b[i]b[i] = breaks[i].

  • mids: The nn 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.

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 , 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.

Author(s)

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

See Also

hist

Examples

data(SandP500) ### Consider proportional changes in the index change <- SandP500[-length(SandP500)]/SandP500[-1] hist(change) logHist(change) ### Show points only logHist(change, htype = "p", pch = 20, cex = 0.5) ### Fit the hyperbolic distribution to the changes hyperbFit(change)