三倍方差计算

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GXFlowSynchronizer
{
   public  class ThreeTimesVariance
    {
public  void start(){
LogHelper.Write("开始进行三倍标准差验证");
                List<double> doutcLevel = (from m in curList select (double)m.waterLevel).ToList();//数据来源
double tcLevel = ttv.CalculateStdDev(doutcLevel);//调用标准方差算法
double uclLevel = doutcLevel.Average() + (3 * tcLevel);//管制上限 (3 * tcLevel) 三倍方差 如5*tcLevel 就是5倍方差
double lclLevel = doutcLevel.Average() - (3 * tcLevel);//管制下限  再上限下限之外的数为异常应剔除


}


        public  double CalculateStdDev(IEnumerable<double> values)
        {
            double ret = 0;
            if (values.Count() > 0)
            {
                //  计算平均数   
                double avg = values.Average();
                //  计算各数值与平均数的差值的平方,然后求和 
                double sum = values.Sum(d => Math.Pow(d - avg, 2));
                //  除以数量,然后开方
                ret = Math.Sqrt(sum / values.Count());
            }
            return ret;
        }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值