Sha256: eda380d60bbf92dadd07e92f21e0745a73e145697b49cc0b086d3e15e258849a
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
class SSY include TeguGears def process(*y) y_mean = Mean.call(*y) y.inject{|s,e| s + (e - y_mean)**2} end end class SSX < SSY; end class SSXY include TeguGears def process(x, y) raise ArgumentError, "x and y need to be the same size" unless x.size == y.size x_mean = Mean.call(*x) y_mean = Mean.call(*y) (0...x.size).inject(0.0) {|s,i| s + (y[i] - y_mean) * (x[i] - x_mean) } end end class Mean include TeguGears def process(*x) x.inject{|s,e| s + e} / x.size.to_f end end class MaximumLikelihoodSlope include TeguGears def process(x, y) raise ArgumentError, "x and y need to be the same size" unless x.size == y.size b = SSXY.call(x, y) / SSX.call(x) end end class MaximumLikelihoodIntercept include TeguGears def process(x,y) raise ArgumentError, "x and y need to be the same size" unless x.size == y.size Mean.call(*y) - MaximumLikelihoodSlope.call(x,y) * Mean.call(*x) end end class SSE include TeguGears def process(x,y) raise ArgumentError, "x and y need to be the same size" unless x.size == y.size (0...x.size).inject(0.0) do |s, i| s + (y[i] - MaximumLikelihoodIntercept.call(x,y) - MaximumLikelihoodSlope.call(x,y) * x[i] ) ** 2 end end end class RSquared include TeguGears def process(x,y) (SSY.call(*y) - SSE.call(x,y)) / SSY.call(*y) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
davidrichards-tegu_gears-0.0.3 | lib/examples/regression.rb |