essHist-package {essHist} | R Documentation

## The Essential Histogram

### Description

Provide an optimal histogram, in the sense of probability density estimation and features detection, by means of multiscale variational inference. In other words, the resulting histogram servers as an optimal density estimator, and meanwhile recovers the features, such as increases or modes, with both false positive and false negative controls. Moreover, it provides a parsimonious representation in terms of the number of blocks, which simplifies data interpretation. The only assumption for the method is that data points are independent and identically distributed, so it applies to fairly general situations, including continuous distributions, discrete distributions, and mixtures of both. For details see Li, Munk, Sieling and Walther (2016) <arXiv:1612.07216>.

### Details

Package: | essHist
Type: | Package
Version: | 1.2.2
Date: | 2019-05-10
License: | GPL-3

Index:

    essHistogram    Compute the essential histogram
    checkHistogram  Check any estimator by the multiscale confidence set

    genIntv         Generate the system of intervals
    msQuantile      Simulate the quantile of multiscale statistics

    dmixnorm        Compute density function of Gaussian mixtures
    pmixnorm        Compute distribution function of Gaussian mixtures
    rmixnorm        Generate random number of Gaussian mixtures
    paramExample    Output detailed parameters for some famous examples

### Author(s)

Housen Li [aut, cre], Hannes Sieling [aut]

Maintainer: Housen Li <housen.li@outlook.com>

### References

Li, H., Munk, A., Sieling, H., and Walther, G. (2016). The essential histogram. arXiv:1612.07216

### Examples

    # Simulate data
    set.seed(123)
    type = 'skewed_unimodal'
    n = 500
    y = rmixnorm(n, type = type)

    # Compute the essential histogram
    eh = essHistogram(y, plot = FALSE)

    # Plot results
    #     compute oracle density
    x  = sort(y)
    od = dmixnorm(x, type = type)
    #     compare with orcle density
    plot(x, od, type = "l", xlab = NA, ylab = NA, col = "red", main = type)
    lines(eh)
    legend("topleft", c("Oracle density", "Essential histogram"),
           lty = c(1,1), col = c("red", "black"))

    ##### Evaluate other method
    set.seed(123)
    # Data: mixture of Gaussians "harp"
    n = 500
    y = rmixnorm(n, type = 'harp')

    # Oracle density
    x = sort(y)
    ho = dmixnorm(x, type = 'harp')

    # R default histogram
    h  = hist(y, plot = FALSE)

    # Check R default histogram to local multiscale constraints
    b = checkHistogram(h, y, ylim=c(-0.1,0.16))
    lines(x, ho, col = "red")
    rug(x, col = 'blue')
    legend("topright", c("R-Histogram", "Truth"), col = c("black", "red"), lty = c(1,1))

[Package essHist version 1.2.2 Index]