Sha256: f941b0178081a1c0813e1ccb93239595d0d45dafe6c26016fd637bcd3eee5ec9
Contents?: true
Size: 674 Bytes
Versions: 2
Compression:
Stored size: 674 Bytes
Contents
class Stats class << self def sum(ar, &block) ar.reduce(0.0) {|asum, a| (block_given? ? yield(a) : a) + asum} end def variance(ar) v = sum(ar) {|x| (mean(ar) - x)**2.0 } v/(ar.count - 1.0) end def standard_deviation(ar) Math.sqrt(variance(ar)) end def z_scores(ar) ar.map {|x| z_score(ar, x)} end def z_score(ar, x) (x - mean(ar)) / standard_deviation(ar) end def range(ar) ar.max - ar.min end def mean(ar) sum(ar) / ar.count end def median(ar) a = ar.sort if ar.count.odd? a[(ar.count-1)/2] else (a[ar.count/2 - 1] + a[ar.count/2]) / 2.0 end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
experiment-0.2.0 | lib/experiment/stats.rb |
experiment-0.0.1 | lib/experiment/stats.rb |