![]() |
||
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個數的平均值??? |
|||||||
![]() |
![]() |
*停權中*
加入日期: Jul 2013
文章: 331
|
引用:
你要用電腦算嗎,如果可以,你去看看 EXCEL 怎麼畫盒狀圖就可以那些值抓出來 當然你有統計軟體更好,只是我猜你大概沒有 此文章於 2014-03-31 10:00 AM 被 micall.lee 編輯. |
|||
![]() |
![]() |
Power Member
![]() ![]() 加入日期: Feb 2004
文章: 617
|
利用排序.
或給條件 filter?
__________________
食品研究室的功能【先研究不會立即致死,再講求口感】。 民主的好處,就是可以把責任過錯推給人民。 民主的好處2....看看昱伸和三鹿,就知道民主多好了!! 死人的好處,就是怎麼說他都不會抗議。 有些不在台灣的人都特別愛台灣,而且把在台灣的人講的好像都不愛台灣!!! 猜猜看..在哪一個國家,想殺人不用拿刀拿槍,只要開車撞人然後灌幾瓶酒就好了。 |
![]() |
![]() |
*停權中*
加入日期: Dec 2000
文章: 842
|
引用:
當然可以阿,算一下中位數和標準差 接著你自己訂模型,看要把幾倍標準差以外的數字刪除 一個算式辦不到,幾個演算法就能解決 |
|
![]() |
![]() |
Senior Member
![]() ![]() ![]() 加入日期: Mar 2012 您的住址: 地球
文章: 1,303
|
引用:
用電腦,自己寫VB算 引用:
引用:
謝謝 我大大懂排序跟中數的意思了,在找找有沒有辦法快速算出標準差 |
|||
![]() |
![]() |
*停權中*
加入日期: Jul 2013
文章: 331
|
引用:
如果只是要處理一組資料,已經有現有的套裝程式可使用,是可以考慮不要自己寫啦 但如果你是為了要弄一個程式的 function 之類的東西,那當然還是得想辦法寫出來 不過我在想你只要去了解一下統計學怎麼抓「異常值(Outlier)」,剩下你應該就只是去組合一下既有的程式碼,就可以讓你很快弄出一個可用的功能出來 倒是寫出來是一回事,異常值這東西,你要注意的是你到底要抓多少的標準差?畢竟所謂異常值不是超出中位數太多的值都沒有用,你要先確認那些異常值是真的異常,還是本來就是事實上的數值 此文章於 2014-03-31 10:17 AM 被 micall.lee 編輯. |
|
![]() |
![]() |
Major Member
![]() 加入日期: 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)去找出最小的值(異常) 最大堆積\最小堆積 參照 資料結構 再搭配其他大大的方式 算一下中位數和標準差..前幾就個一定弄的出來 不然就用...分群的方式... (排序也算是分群的一種) |
![]() |
![]() |
*停權中*
加入日期: Sep 2001
文章: 34
|
可以把這些異常值是做「離群值」,可參考統計學裡的四分位差和盒狀圖的定義,映像是小於「第一四分位數-3*四分位差」或是大於「第3四分位數+3*四分位差」的數據可視同為離群值。
|
![]() |
![]() |