首页 > 编程知识 正文

3倍方差原则,方差的三个计算公式

时间:2023-05-06 02:56:53 阅读:194435 作者:2769

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五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。