PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

回應
 
主題工具
老柏(第四)
Senior Member
 
老柏(第四)的大頭照
 

加入日期: Mar 2012
您的住址: 地球
文章: 1,303
[數學問題]如何在大量的數字中挑出異己份子

這問題捆擾我很久,又不知到要用什麼關鍵字搜尋

假設現在有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個數的平均值???
     
      
__________________
[/url]
老柏                 老柏(第二)

老柏(第三)              老柏(第四)
舊 2014-03-31, 09:47 AM #1
回應時引用此文章
老柏(第四)離線中  
micall.lee
*停權中*
 
micall.lee的大頭照
 

加入日期: Jul 2013
文章: 331
引用:
作者老柏(第四)
這問題捆擾我很久,又不知到要用什麼關鍵字搜尋

假設現在有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 怎麼畫盒狀圖就可以那些值抓出來

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

此文章於 2014-03-31 10:00 AM 被 micall.lee 編輯.
舊 2014-03-31, 09:53 AM #2
回應時引用此文章
micall.lee離線中  
EAC212
Power Member
 

加入日期: Feb 2004
文章: 617
利用排序.
或給條件 filter?
__________________

食品研究室的功能【先研究不會立即致死,再講求口感】。
民主的好處,就是可以把責任過錯推給人民。
民主的好處2....看看昱伸和三鹿,就知道民主多好了!!
死人的好處,就是怎麼說他都不會抗議。
有些不在台灣的人都特別愛台灣,而且把在台灣的人講的好像都不愛台灣!!!
猜猜看..在哪一個國家,想殺人不用拿刀拿槍,只要開車撞人然後灌幾瓶酒就好了。
舊 2014-03-31, 09:54 AM #3
回應時引用此文章
EAC212現在在線上  
gdrs
*停權中*
 
gdrs的大頭照
 

加入日期: Dec 2000
文章: 842
引用:
作者老柏(第四)
這問題捆擾我很久,又不知到要用什麼關鍵字搜尋
假設現在有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, 09:58 AM #4
回應時引用此文章
gdrs離線中  
老柏(第四)
Senior Member
 
老柏(第四)的大頭照
 

加入日期: Mar 2012
您的住址: 地球
文章: 1,303
引用:
作者micall.lee
你要用電腦算嗎,如果可以,你去看看 EXCEL 怎麼畫盒狀圖就可以那些值抓出來

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

用電腦,自己寫VB算

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

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


謝謝
我大大懂排序跟中數的意思了,在找找有沒有辦法快速算出標準差
__________________
[/url]
老柏                 老柏(第二)

老柏(第三)              老柏(第四)
舊 2014-03-31, 10:08 AM #5
回應時引用此文章
老柏(第四)離線中  
micall.lee
*停權中*
 
micall.lee的大頭照
 

加入日期: Jul 2013
文章: 331
引用:
作者老柏(第四)
用電腦,自己寫VB算




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

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

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

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

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

此文章於 2014-03-31 10:17 AM 被 micall.lee 編輯.
舊 2014-03-31, 10:12 AM #6
回應時引用此文章
micall.lee離線中  
cxh
Major Member
 
cxh的大頭照
 

加入日期: Sep 2001
您的住址: 工廠苦命人
文章: 230
不知道所謂的異常是什麼(標準\定義)?

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

按這個例子

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

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

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

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

不然就用...分群的方式... (排序也算是分群的一種)
舊 2014-03-31, 10:16 AM #7
回應時引用此文章
cxh離線中  
tkukuo
*停權中*
 

加入日期: Sep 2001
文章: 34
可以把這些異常值是做「離群值」,可參考統計學裡的四分位差和盒狀圖的定義,映像是小於「第一四分位數-3*四分位差」或是大於「第3四分位數+3*四分位差」的數據可視同為離群值。
舊 2014-03-31, 11:37 AM #8
回應時引用此文章
tkukuo離線中  


回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是05:09 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。