找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4300|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

依據(jù)拉依達(dá)準(zhǔn)則來剔除異常值程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:307258 發(fā)表于 2018-4-13 13:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
java源碼在下,在main主方法里的data數(shù)組里輸入要測量的數(shù)據(jù)(個(gè)數(shù)長度>=10個(gè)),會判斷里面有誤異常值,如果有則警告
/**
* @author 廖啟安
* @data 2018年4月12日
* @deprecated 功能:利用拉依達(dá)準(zhǔn)則來查找處異常值
* @version jdk8.0
*/
package main;
class Pauta{    //創(chuàng)建拉依達(dá)類
        private double arr[];         //接受原始數(shù)組
        public Pauta(double temp[]) { //利用構(gòu)造方法來得的原始數(shù)組
                this.arr=temp;
                System.out.print("原始數(shù)組:");
                for(double x:arr) {
                System.out.print(x+"、");
                }
                System.out.println();
        }
        public double average() {    //原始數(shù)組的算數(shù)平均值方法
                double sum=0;
                for(int x=0;x<arr.length;x++) {
                        sum+=arr[x];
                }
                return sum/arr.length;
               
        }
        public double[] residualError() {//原始數(shù)組的剩余誤差方法
                double rE[]=new double[] {};
                for(int x=0;x<arr.length;x++) {
                        rE[x]=arr[x]-average();
                }
                return rE;
        }
        public double standardVariance() {//原始數(shù)組的標(biāo)準(zhǔn)方差值計(jì)算方法
                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("該數(shù)組中的第"+(x+1)+"個(gè)元素屬于異常值");
                        }
                }
        }
}

public class client{
        public static void main(String args[]) {
                double data[]=new double[] {5,5,5,5,5,5,5,5,5,5,25};//原始數(shù)組
                Pauta pau=new Pauta(data);//原始數(shù)組封裝后輸出
            System.out.println("算數(shù)平均值:"+pau.average());//算數(shù)平均值
            /*此處的剩余誤差輸出略*/
            System.out.println("標(biāo)準(zhǔn)方差:"+pau.standardVariance());//標(biāo)準(zhǔn)方差
            pau.judge();//判斷異常值方法
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表