Re: [請益] 請問"離群值"

看板PHP作者 (Hero of the world)時間18年前 (2007/11/05 19:59), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《tonyshan (考試好多..)》之銘言: : EX :22、44、55、66、56、77、1000 : 以上的數列作"離群值" : 請問要怎麼用PHP語法來做 : <?php : $num = array (22,44,55,66,56,77,1000); //指定array : $len = count($num); //個數 : $sum += $num[$i];//總合 : $avg = (double)$sum / $len;//平均 : $s=sqrt();//之後就不會做了 : ‧ : ‧ : ‧ : ‧ 這是高中數學 標準差: http://zh.wikipedia.org/wiki/%E6%A8%99%E6%BA%96%E5%B7%AE 母體標準差用n當分母;樣本標準差就用n-1當分母 閒著沒事我來寫寫看好了 這是母體標準差 $item = array (22,44,55,66,56,77,1000); $i = 0; while ($item[$i]) { $sum += $item[$i]; $i++; } $num = count($item); $avg = $sum/$num; $i = 0; while ($item[$i]) { $sum_gap += pow($item[$i]-$avg,2); $i++; } $standard_deviation = sqrt($sum_gap/$num); 電腦的運算能力很快很好,所以我建議可以用「平均絕對離差」,這個數值更有意義 平均絕對離差= sigma(|樣本-平均數|) / 樣本個數 $item = array (22,44,55,66,56,77,1000); $i = 0; while ($item[$i]) { $sum += $item[$i]; $i++; } $num = count($item); $avg = $sum/$num; $i = 0; while ($item[$i]) { $gap = $item[$i]-$avg; if ($gap < 0) $gap = -$gap; $sum_gap += $gap; $i++; } $absolute_deviation = $sum_gap/$num; 標準差的誕生是因為平均絕對離差不好算 -- 西啦(九孔):「人來到世上都是有罪的,有罪怎麼辦?就要淨化(打頭三下)。小時候讀書偷吃 同學的便當,我有罪,我有罪我有罪我有罪(淨化);聯誼的時候,當你載到恐龍妹的時候,你心 裡面暗自訐譙,為什麼她那麼胖!真是超營養雞排!我有罪我有罪我有罪(淨化);小時候偷看A 片被你媽媽抓到,你還賴說那A片是你爸爸的,我有罪我有罪我有罪(淨化);去麥當勞的時候, 炸雞掉到地上,你拍一拍又給客人吃,你有罪,我有罪我有罪我有罪(淨化);上廁所去尿尿的 時候,你的馬桶蓋沒有掀,一把尿撒在上面,女朋友去尿尿的時候沾在她屁股上,我有罪我有 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.196.145 ※ 編輯: worldhero 來自: 140.119.196.145 (11/05 20:00)

11/05 20:15, , 1F
array_sum() 很好用...
11/05 20:15, 1F

11/05 20:21, , 2F
對!那個函數我太少用結果忘記了XD
11/05 20:21, 2F
※ 編輯: worldhero 來自: 140.119.196.145 (11/05 20:24)

11/06 16:49, , 3F
嗯…謝謝 皆下來應該是用for迴圈 取離群值吧
11/06 16:49, 3F

11/06 21:01, , 4F
應該沒有接下來了吧@_@
11/06 21:01, 4F

11/08 12:09, , 5F
應該是我問題沒有說清礎吧…取加減三個標準差以外的數
11/08 12:09, 5F
文章代碼(AID): #17BmMaKx (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #17BmMaKx (PHP)