日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

格拉布斯准则的应用(Python)

發(fā)布時(shí)間:2023/12/31 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 格拉布斯准则的应用(Python) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

格拉布斯準(zhǔn)則的應(yīng)用

  • 前言
  • 一、格拉布斯準(zhǔn)則是什么?
    • 1.Gi值
    • 2.格拉布斯臨界值表
  • 二、使用步驟
    • 1.引入代碼
    • 2.使用Outliers_Remover函數(shù)
    • 3.注意事項(xiàng)
  • 總結(jié)


前言

大家好,我又回來了ヽ( ̄▽ ̄)ノ

這次所帶來的是格拉布斯(Grubbs)臨界值表的應(yīng)用

在我想比較兩個(gè)數(shù)組的平均數(shù)的時(shí)候,發(fā)現(xiàn)一組數(shù)中非常大的數(shù)字會(huì)相當(dāng)影響該組數(shù)的平均數(shù),然后我也不想用中位數(shù)來進(jìn)行代替 ̄へ ̄

所以,我就在想有什么科學(xué)的方法,能認(rèn)定什么是一組數(shù)中非常大的數(shù)字(也就是異常值),然后我就可以把它剔除出去了( ̄▽ ̄)~*

果不其然,前人的智慧當(dāng)中有“格拉布斯準(zhǔn)則”這么一個(gè)很科學(xué)的方法剔除異常值

所以讓我們話不多說,開始我們的講解吧(* ̄︶ ̄)

一、格拉布斯準(zhǔn)則是什么?

相信大家都可以在網(wǎng)絡(luò)上找到相關(guān)的具體知識,在此就不在贅述。

總網(wǎng)絡(luò)上的知識而言之,就是計(jì)算Gi值與格拉布斯臨界值表上所對應(yīng)的值GP(n)相比較,若Gi值大于GP(n)值則為異常,反之則不為異常

1.Gi值

Gi值的計(jì)算是該數(shù)字的殘差除于標(biāo)準(zhǔn)差
Gi=xi?xˉsGi = \dfrac{x_i-\bar{x}}{s} Gi=sxi??xˉ?

2.格拉布斯臨界值表

我是在百度文庫上找的圖表,點(diǎn)擊下方超鏈接瀏覽
格拉布斯臨界值表

或復(fù)制鏈接自行瀏覽
https://wenku.baidu.com/view/cfce6d64c381e53a580216fc700abb68a882ad48.html

二、使用步驟

1.引入代碼

def Average_Number(List):return sum(List) / len(List)def Variance(List):temp_List = []ave = Average_Number(List)for num in List:temp_List.append(((num - ave) ** 2) / len(List))return sum(temp_List)def Standard_Deviation(List):return Variance(List) ** (1/2)def Gi(number, lst):if len(lst) <= 17:average = Average_Number(lst)SD = Standard_Deviation(lst)gi = (abs(number - average)) / SDreturn gielse:exit(0) def Grubbs_Table(n):if n == 3:return [1.148, 1.153, 1.155, 1.155, 1.155]elif n == 4:return [1.425, 1.463, 1.481, 1.492, 1.496]elif n == 5:return [1.602, 1.672, 1.715, 1.749, 1.764]elif n == 6:return [1.729, 1.822, 1.887, 1.944, 1.973]elif n == 7:return [1.828, 1.938, 2.020, 2.097, 2.139]elif n == 8:return [1.909, 2.032, 2.126, 2.220, 2.274]elif n == 9:return [1.977, 2.110, 2.215, 2.323, 2.387]elif n == 10:return [2.036, 2.176, 2.290, 2.410, 2.482]elif n == 11:return [2.088, 2.234, 2.355, 2.485, 2.564]elif n == 12:return [2.134, 2.285, 2.412, 2.550, 2.636]elif n == 13:return [2.175, 2.331, 2.462, 2.607, 2.699]elif n == 14:return [2.213, 2.371, 2.507, 2.659, 2.755]elif n == 15:return [2.247, 2.409, 2.549, 2.705, 2.806]elif n == 16:return [2.279, 2.443, 2.585, 2.747, 2.852]elif n == 17:return [2.309, 2.475, 2.620, 2.785, 2.894]def Outliers_Remover(lst, confidence_level = 1):length = len(lst)lst = lstmark = []for i in range(0, length):n = Gi(lst[i], lst)if n > Grubbs_Table(len(lst))[confidence_level - 1]:mark.append(i)for j in mark:lst.pop(j)return lst

2.使用Outliers_Remover函數(shù)

  • 首先創(chuàng)建個(gè)明顯具有異常值的列表lst = [1, 2, 3, 4, 10000]
  • 然后給該函數(shù)傳入需要去除異常值的列表lst_out = mAth.Outliers_Remover(lst, confidence_level=5)
  • 輸出經(jīng)過去除異常值操作的列表print(lst_out)
  • 輸出結(jié)果

3.注意事項(xiàng)

  • 由于我個(gè)人的原因,該函數(shù)目前只支持長度為17的列表。

    因?yàn)槲姨珣辛甩? ̄︶ ̄)︿

  • Outliers_Remover函數(shù)的第二個(gè)參數(shù)為置信等級為1至5的整數(shù),可以不用傳入,默認(rèn)為1。

    • 置信等級為1,則是相對應(yīng)格拉布斯臨界值表的90.00%的置信概率
    • 置信等級為2,則是相對應(yīng)格拉布斯臨界值表的95.00%的置信概率
    • 置信等級為3,則是相對應(yīng)格拉布斯臨界值表的97.50%的置信概率
    • 置信等級為4,則是相對應(yīng)格拉布斯臨界值表的99.00%的置信概率
    • 置信等級為5,則是相對應(yīng)格拉布斯臨界值表的99.50%的置信概率

總結(jié)

以上就是我對于格拉布斯準(zhǔn)則的理解與應(yīng)用,希望能對你們有所幫助ヾ(????)ノ"

總結(jié)

以上是生活随笔為你收集整理的格拉布斯准则的应用(Python)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。