Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maxgfr/benford-law
A simple library to check if a dataset follows the Benford's law
https://github.com/maxgfr/benford-law
algorithm benford benford-analysis benfords-law javascript nodejs typescript
Last synced: 7 days ago
JSON representation
A simple library to check if a dataset follows the Benford's law
- Host: GitHub
- URL: https://github.com/maxgfr/benford-law
- Owner: maxgfr
- License: mit
- Created: 2022-12-04T08:57:08.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T21:15:34.000Z (15 days ago)
- Last Synced: 2024-10-30T01:02:32.364Z (14 days ago)
- Topics: algorithm, benford, benford-analysis, benfords-law, javascript, nodejs, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/benford-law
- Size: 1.93 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# benford-law
Benford's law is an observation that in many real-life sets of numerical data, the leading digit is likely to be small. In sets that obey the law, the number 1 appears as the leading significant digit about 30% of the time, while 9 appears as the leading significant digit less than 5% of the time. If the digits were distributed uniformly, they would each occur about 11.1% of the time. Benford's law also makes predictions about the distribution of second digits, third digits, digit combinations, and so on.
To get a better understanding of Benford's law, check out [this article](https://en.wikipedia.org/wiki/Benford%27s_law).
## Installation
```bash
yarn add benford-law
```## Usage
```ts
import {
processBenfordLaw,
generateBenfordLawNumbers,
generateBenfordLawNumber,
} from 'benford-law';// to generate a random number that follows Benford's law
console.log(generateBenfordLawNumber());// to generate an array of 10 random numbers that follow Benford's law
console.log(generateBenfordLawNumbers(10));// to process an array of numbers and get the distribution
console.log(processBenfordLaw(generateBenfordLawNumbers(50000), 0.01));
// {
// isFollowingBenfordLaw: true,
// firstDigitProbabilities: {
// '1': 0.29908,
// '2': 0.17694,
// '3': 0.1255,
// '4': 0.09742,
// '5': 0.0793,
// '6': 0.06712,
// '7': 0.0571,
// '8': 0.05124,
// '9': 0.0463
// },
// firstDigitCounts: {
// '1': 14954,
// '2': 8847,
// '3': 6275,
// '4': 4871,
// '5': 3965,
// '6': 3356,
// '7': 2855,
// '8': 2562,
// '9': 2315
// },
// firstDigitAccuracies: {
// '1': 0.0019199999999999773,
// '2': 0.0009399999999999964,
// '3': 0.0005000000000000004,
// '4': 0.0004200000000000037,
// '5': 0.0002999999999999947,
// '6': 0.00011999999999999511,
// '7': 0.000900000000000005,
// '8': 0.0002400000000000041,
// '9': 0.00030000000000000165
// }
// }
```