module Enumerable
Public Instance Methods
kurtosis()
click to toggle source
# File lib/enumerableext.rb, line 33 def kurtosis fourthsum = self.inject(0){|acc, i| acc + (i - self.mean)**4} fourthmoment = fourthsum/self.length.to_f return (fourthmoment / (self.popvariance)**2) end
mean()
click to toggle source
# File lib/enumerableext.rb, line 6 def mean return self.sum/self.length.to_f end
popstddev()
click to toggle source
# File lib/enumerableext.rb, line 19 def popstddev return Math.sqrt(self.popvariance) end
popvariance()
click to toggle source
# File lib/enumerableext.rb, line 15 def popvariance return self.variance*((self.length.to_f-1.0)/self.length.to_f) end
skew()
click to toggle source
# File lib/enumerableext.rb, line 27 def skew thirdsum = self.inject(0){|acc, i| acc + (i - self.mean)**3} thirdmoment = thirdsum/self.length.to_f return thirdmoment / (self.popvariance)**(3.0/2.0) end
std()
click to toggle source
# File lib/enumerableext.rb, line 39 def std result = [] (0..self.length-1).each do |i| result[i] = (self[i] - self.mean)/self.stddev end return result end
stddev()
click to toggle source
# File lib/enumerableext.rb, line 23 def stddev return Math.sqrt(self.variance) end
sum()
click to toggle source
# File lib/enumerableext.rb, line 2 def sum return self.inject(0){|acc, i| acc+i} end
variance()
click to toggle source
# File lib/enumerableext.rb, line 10 def variance varsum = self.inject(0){|acc, i| acc + (i - self.mean)**2} return(varsum/(self.length.to_f-1.0)) end