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