Learn R Programming

BenfordTests (version 1.2.0)

usq.benftest: Freedman-Watson U-square Test for Benford's Law

Description

usq.benftest takes any numerical vector reduces the sample to the specified number of significant digits and performs the Freedman-Watson test for discreet distributions between the first digits' distribution and Benford's distribution to assert if the data conforms to Benford's law.

Usage

usq.benftest(x = NULL, digits = 1, pvalmethod = "simulate", pvalsims = 10000)

Arguments

x
A numeric vector.
digits
An integer determining the number of first digits to use for testing, i.e. 1 for only the first, 2 for the first two etc.
pvalmethod
Method used for calculating the p-value. Currently only "simulate" is available.
pvalsims
An integer specifying the number of replicates used if pvalmethod = "simulate".

Value

  • A list with class "code{htest}" containing the following components:
  • statisticthe value of the $U^2$ test statistic
  • p.valuethe p-value for the test
  • methoda character string indicating the type of test performed
  • data.namea character string giving the name of the data

Details

A Freedman-Watson test for discreet distributions is performed between signifd(x,digits) and pbenf(digits). Specifically:$$U^2 = \frac{n}{9\cdot 10^{k-1}}\cdot\left[ \displaystyle\sum_{i={10^{k-1}}}^{10^{k}-2}\left( \displaystyle\sum_{j=1}^{i}(f_j^o - f_j^e) \right)^2 - \frac{1}{9\cdot 10^{k-1}}\cdot\left(\displaystyle\sum_{i={10^{k-1}}}^{10^{k}-2}\displaystyle\sum_{j=1}^{i}(f_i^o - f_i^e)\right)^2\right]$$ where $f_i^o$ denotes the observed frequency of digits $i$, and $f_i^e$ denotes the expected frequency of digits $i$. x is a numeric vector of arbitrary length. Values of x should be continuous, as dictated by theory, but may also be integers. digits should be chosen so that signifd(x,digits) is not influenced by previous rounding.

References

Benford, F. (1938) The Law of Anomalous Numbers. Proceedings of the American Philosophical Society. 78, 551--572. Freedman, L.S. (1981) Watson's Un2 Statistic for a Discrete Distribution. Biometrika. 68, 708--711. Joenssen, D.W. (2013) Two Digit Testing for Benford's Law. Proceedings of the ISI World Statistics Congress, 59th Session in Hong Kong. [available under http://www.statistics.gov.hk/wsc/CPS021-P2-S.pdf] Watson, G.S. (1961) Goodness-of-Fit Tests on a Circle. Biometrika. 48, 109--114.

See Also

pbenf, simulateH0

Examples

Run this code
#Set the random seed to an arbitrary number
set.seed(421)
#Create a sample satisfying Benford's law
X<-rbenf(n=20)
#Perform Freedman-Watson U-squared Test on
#the sample's first digits using defaults
usq.benftest(X)
#p-value = 0.4847

Run the code above in your browser using DataLab