我怎样才能在 Ruby 中做标准偏差? [英] How can I do standard deviation in Ruby?

查看:51
本文介绍了我怎样才能在 Ruby 中做标准偏差?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有几个具有给定属性的记录,我想找到标准差.

I have several records with a given attribute, and I want to find the standard deviation.

我该怎么做?

推荐答案

module Enumerable

    def sum
      self.inject(0){|accum, i| accum + i }
    end

    def mean
      self.sum/self.length.to_f
    end

    def sample_variance
      m = self.mean
      sum = self.inject(0){|accum, i| accum +(i-m)**2 }
      sum/(self.length - 1).to_f
    end

    def standard_deviation
      Math.sqrt(self.sample_variance)
    end

end 

测试:

a = [ 20, 23, 23, 24, 25, 22, 12, 21, 29 ]
a.standard_deviation  
# => 4.594682917363407


01/17/2012:

修复sample_variance";感谢戴夫·萨格

这篇关于我怎样才能在 Ruby 中做标准偏差?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆