PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   [數學問題]如何在大量的數字中挑出異己份子 (https://www.pcdvd.com.tw/showthread.php?t=1044262)

老柏(第四) 2014-03-31 09:47 AM

[數學問題]如何在大量的數字中挑出異己份子
 
這問題捆擾我很久,又不知到要用什麼關鍵字搜尋

假設現在有10個數字

2.0, 1.6, 0.9, 2.2, 1.0, 1.7, 7.8, 1.0, 1.1, 2.1
用人眼來看當然一看就知道7.8是不正常的

問題來了,假設今天拿到的是100個數字 ,不知道平均值是多少,裡面也不確定有0~15%的異己份子,有沒有辦寫個算式把異己份子排除後算出這100個數的平均值???

micall.lee 2014-03-31 09:53 AM

引用:
作者老柏(第四)
這問題捆擾我很久,又不知到要用什麼關鍵字搜尋

假設現在有10個數字

2.0, 1.6, 0.9, 2.2, 1.0, 1.7, 7.8, 1.0, 1.1, 2.1
用人眼來看當然一看就知道7.8是不正常的

問題來了,假設今天拿到的是100個數字 ,不知道平均值是多少,裡面也不確定有0~15%的異己份子,有沒有辦寫個算式把異己份子排除後算出這100個數的平均值???

你要用電腦算嗎,如果可以,你去看看 EXCEL 怎麼畫盒狀圖就可以那些值抓出來

當然你有統計軟體更好,只是我猜你大概沒有

EAC212 2014-03-31 09:54 AM

利用排序.
或給條件 filter?

gdrs 2014-03-31 09:58 AM

引用:
作者老柏(第四)
這問題捆擾我很久,又不知到要用什麼關鍵字搜尋
假設現在有10個數字
2.0, 1.6, 0.9, 2.2, 1.0, 1.7, 7.8, 1.0, 1.1, 2.1
用人眼來看當然一看就知道7.8是不正常的
問題來了,假設今天拿到的是100個數字 ,不知道平均值是多少,裡面也不確定有0~15%的異己份子,有沒有辦寫個算式把異己份子排除後算出這100個數的平均值???


當然可以阿,算一下中位數和標準差
接著你自己訂模型,看要把幾倍標準差以外的數字刪除
一個算式辦不到,幾個演算法就能解決

老柏(第四) 2014-03-31 10:08 AM

引用:
作者micall.lee
你要用電腦算嗎,如果可以,你去看看 EXCEL 怎麼畫盒狀圖就可以那些值抓出來

當然你有統計軟體更好,只是我猜你大概沒有

用電腦,自己寫VB算

引用:
作者EAC212
利用排序.
或給條件 filter?

引用:
作者gdrs
當然可以阿,算一下中位數和標準差
接著你自己訂模型,看要把幾倍標準差以外的數字刪除
一個算式辦不到,幾個演算法就能解決


謝謝
我大大懂排序跟中數的意思了,在找找有沒有辦法快速算出標準差

micall.lee 2014-03-31 10:12 AM

引用:
作者老柏(第四)
用電腦,自己寫VB算




謝謝
我大大懂排序跟中數的意思了,在找找有沒有辦法快速算出標準差

如果只是要處理一組資料,已經有現有的套裝程式可使用,是可以考慮不要自己寫啦

但如果你是為了要弄一個程式的 function 之類的東西,那當然還是得想辦法寫出來

不過我在想你只要去了解一下統計學怎麼抓「異常值(Outlier)」,剩下你應該就只是去組合一下既有的程式碼,就可以讓你很快弄出一個可用的功能出來

倒是寫出來是一回事,異常值這東西,你要注意的是你到底要抓多少的標準差?畢竟所謂異常值不是超出中位數太多的值都沒有用,你要先確認那些異常值是真的異常,還是本來就是事實上的數值

cxh 2014-03-31 10:16 AM

不知道所謂的異常是什麼(標準\定義)?

2.0, 1.6, 0.9, 2.2, 1.0, 1.7, 7.8, 1.0, 1.1, 2.1

按這個例子

可以用最大堆積(MAX HEAP)去找出最大的值(異常)

反之也可以
可以用最小堆積(Min HEAP)去找出最小的值(異常)

最大堆積\最小堆積 參照 資料結構

再搭配其他大大的方式 算一下中位數和標準差..前幾就個一定弄的出來

不然就用...分群的方式... (排序也算是分群的一種)

tkukuo 2014-03-31 11:37 AM

可以把這些異常值是做「離群值」,可參考統計學裡的四分位差和盒狀圖的定義,映像是小於「第一四分位數-3*四分位差」或是大於「第3四分位數+3*四分位差」的數據可視同為離群值。


所有的時間均為GMT +8。 現在的時間是10:44 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。