Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rayraegah/wilsonscore
The best comment sorting algorithm used by reddit
https://github.com/rayraegah/wilsonscore
comment-sorting confidence-level reddit score statistical
Last synced: 11 days ago
JSON representation
The best comment sorting algorithm used by reddit
- Host: GitHub
- URL: https://github.com/rayraegah/wilsonscore
- Owner: Rayraegah
- License: mit
- Created: 2018-07-31T14:11:39.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-07-31T14:12:57.000Z (over 6 years ago)
- Last Synced: 2024-10-27T07:51:24.754Z (about 2 months ago)
- Topics: comment-sorting, confidence-level, reddit, score, statistical
- Language: JavaScript
- Size: 4.88 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Wilson Score interval (1927)
(w⁻, w⁺) ≡ [p + z²/2n ± z√p(1 – p)/n + z²/4n²] / [1 + z²/n].
The score interval is **asymmetric** (except where `p=0.5`) and tends towards the middle of the distribution (as the figure above reveals). It cannot exceed the probability range [0, 1].
It is reddit's _[best](https://github.com/reddit/reddit/blob/bd922104b971a5c6794b199f364a06fdf61359a2/r2/r2/lib/db/_sorts.pyx#L70-L85)_ comment sorting system, [explained by xkcd author Randell Munroe](http://blog.reddit.com/2009/10/reddits-new-comment-sorting-system.html).
## Usage
Statistically, it is the lower bound of the [Wilson Score interval](http://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval) at the alpha level based on supplied Z score.
```javascript
confidence = wilsonScore(upvotes, downvotes, z);
```### Calculation of `z`
The `z score` is a statistical value which roughly means how many standard deviations of safety you want, so it maps directly onto the confidence level of the Wilson Score interval.
The point at which the cumulative distribution function of the standard normal distribution takes the value 1 - α/2. Equivalently, it is the point with respect to which α/2 of the probability mass (of the standard normal distribution) lies "to the right" and 1 - α/2 lies "to the left".
It will default to `z=1.96` if left out, representing a `95%` confidence level in the lower bound. Otherwise, values through `1.0` (69%), to `3.3` (99.9%) good alternatives. Below is a table containing `z` values at various confidence levels.
| **Confidence Level** | **z score** |
| :------------------: | :---------: |
| 80% | 1.28 |
| 85% | 1.44 |
| 90% | 1.64 |
| 95% | 1.96 |
| 98% | 2.33 |
| 99% | 2.58 |## License
This project is released under MIT license