Popularity
5.8
Growing
Activity
0.0
Stable
30
3
2
Programming language: Crystal
License: GNU General Public License v3.0 only
Tags:
Science And Data Analysis
Latest version: v0.3.0
stats alternatives and similar shards
Based on the "Science and Data analysis" category.
Alternatively, view stats alternatives based on common mentions on social networks and blogs.
-
ishi
Graph plotting package with a small API and sensible defaults powered by gnuplot. -
predict.cr
Satellite prediction library for crystal using the sgp4 model -
chizge
A Network (Graph) Analysis library for Crystal Language, inspired by NetworkX. -
alea
Repeatable pseudo-random sampling, CDF over most known probability distributions.
Tired of breaking your main and manually rebasing outdated pull requests?
Managing outdated pull requests is time-consuming. Mergify's Merge Queue automates your pull request management & merging. It's fully integrated to GitHub & coordinated with any CI. Start focusing on code. Try Mergify for free.
Promo
blog.mergify.com
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of stats or a related project?
Popular Comparisons
README
Migrated to https://git.sceptique.eu/Sceptique/stats
stats
An expressive implementation of statistical distributions. Compatible with crystal v0.27.0.
Installation
Add this to your application's shard.yml
:
dependencies:
stats:
git: https://git.sceptique.eu/Sceptique/stats
Usage
Include it
require "stats"
include Stats
Normal distribution
NormaleDistribution.between # less_than, greater_than
standard_deviation: 15,
esperance: 100,
min: 85,
max: 115
# => 0.6826894921370859
Binomial distribution
Math.binomial_distribution(
tries: 3,
probability: 0.5,
success: 1)
# => 0.375
Binomial coefficient
Math.coef_binomial(5, 2) # => 10
Factorial
Math.factorial(4) # => 24
Radian and degree
90.radian # => (Math::PI / 2)
(Math::PI / 4) # => 45.0
Series & Statistics
[1, 2, 3].mean # => 2.0
[1, 2, 3].variance # => 0.6667
[1, 2, 3].standard_deviation # => 0.8165
[1, 2, 3].quadratic_mean # => 2.16
[2, 32].geometric_mean # => 8.0
[40, 60].harmonic_mean # => 48.0
[1,2,3,2,1].macd 3 # => [2.0, 2.333, 2.0]
Correlations
[1,2,3,4].covariance [4,2,1,0] # => -1.625
[1,2,3,4].correlation_coef [1,2,3,3] + 1 > 1.5 # => true
[1,2,3,4].correlation_coef [-14,14,101,-100] + 1 > 1.5 # => false
Median
[1, 2, 5].median # => 2.0
[42, 1337].median # => 685.5
Quartiles & Boxplot
Note: not big compatible yet
[1, 3, 5].first_quartile # => 2.0 (alias of lower_quartile)
[1, 3, 5].second_quartile # => 3.0 (alias of median)
[1, 3, 5].third_quartile # => 4.0 (alias of upper_quartile)
[1, 3, 5].quartiles # => [2.0, 3.0, 4.0] ([Q1, Q2, Q3])
arr = [-23, -5, 2, 5, 5, 6, 7, 8, 14, 15, 42, 1337]
arr.first_quartile # => 3.5 (Q1)
arr.second_quartile # => 6.5 (Q2)
arr.third_quartile # => 14.5 (Q3)
arr.interquartile_range # => 11.0 (alias of iqr) (IQR = Q3 - Q1)
# Tukey's fences with k = 1.5 (default parameter value)
arr.lower_fence # => -13.0 (Q1 - 1.5 * IQR)
arr.upper_fence # => 31 (Q3 + 1.5 * IQR)
arr.lower_outliers # => [-23]
arr.upper_outliers # => [42, 1337]
# Tukey's fences with k = 3 for "far out" outliers
arr.upper_fence(3) # => 47.5 (Q3 + 3 * IQR)
arr.upper_outliers(3) # => [1337]
Frequency
[0, 1, 2, 3].frequency_of(0) # => 0.25 (amount of X in the population, by the size of the population)
[0, 0, 1, 2, 3].all_frequencies # => { 0 => 0.4, 1 => 0.2, 2 => 0.2, 3 => 0.2}
Development
- The lib should take care of "big" numbers
Contributing
- Fork it ( https://github.com/Nephos/stats/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- Nephos Arthur Poulet - creator, maintainer