JAVA使用:3σ规则、依据拉依达准则来剔除异常值程序

3σ原则为

数值分布在(μ-σ,μ+σ)中的概率为0.6827

数值分布在(μ-2σ,μ+2σ)中的概率为0.9545

数值分布在(μ-3σ,μ+3σ)中的概率为0.9973

可以认为,Y 的取值几乎全部集中在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性仅占不到0.3%.

 

public class Pauta{    //创建拉依达类
        private double arr[];         //接受原始数组
        public Pauta(double temp[]) { //利用构造方法来得的原始数组
                this.arr=temp;
                System.out.print("原始数组:");
                for(double x:arr) {
                System.out.print(x+"、");
                }
                System.out.println();
        }
        public double average() {    //原始数组的算数平均值方法
                double sum=0;
                for(int x=0;x<arr.length;x++) {
                        sum+=arr[x];
                }
                return sum/arr.length;
               
        }
        public double[] residualError() {//原始数组的剩余误差方法
                double rE[]=new double[] {};
                for(int x=0;x<arr.length;x++) {
                        rE[x]=arr[x]-average();
                }
                return rE;
        }
        public double standardVariance() {//原始数组的标准方差值计算方法
                double sum=0;
                for(int x=0;x<arr.length;x++) {
                        sum+=Math.pow(arr[x]-average(),2);
                }
                return Math.sqrt(sum/(arr.length-1));
               
        }
        public void judge() {              //判断异常值方法,若异常,则输出
                for(int x=0;x<arr.length;x++) {
                        if(Math.abs(arr[x]-average())>(3*standardVariance())) {
                                System.out.println("该数组中的第"+(x+1)+"个元素属于异常值");
                        }
                }
        }
}

public class client{
        public static void main(String args[]) {
                double data[]=new double[] {1,2,8,10,8,5,2,4,6,11,15};//原始数组
                Pauta pau=new Pauta(data);//原始数组封装后输出
            System.out.println("算数平均值:"+pau.average());//算数平均值
            /*此处的剩余误差输出略*/
            System.out.println("标准方差:"+pau.standardVariance());//标准方差
            pau.judge();//判断异常值方法
        }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

儿时可乖了

混口饭吃,大佬们,赏点吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值