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();//判断异常值方法

}

}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部