java中算术异常值_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

sum+=arr[x];

}

return sum/arr.length;

}

public double[] residualError() {//原始数组的剩余误差方法

double rE[]=new double[] {};

for(int x=0;x

rE[x]=arr[x]-average();

}

return rE;

}

public double standardVariance() {//原始数组的标准方差值计算方法

double sum=0;

for(int x=0;x

sum+=Math.pow(arr[x]-average(),2);

}

return Math.sqrt(sum/(arr.length-1));

}

public void judge() { //判断异常值方法,若异常,则输出

for(int x=0;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();//判断异常值方法

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值