📜  如何在Python中执行 Grubbs 测试

📅  最后修改于: 2022-05-13 01:54:58.309000             🧑  作者: Mango

如何在Python中执行 Grubbs 测试

先决条件:参数和非参数方法,假设检验

在本文中,我们将讨论在Python编程语言中执行 Grubbs 测试的不同方法。

Grubbs 检验也称为最大归一化残差检验或极端学生化偏差检验,是一种用于检测假定来自正态分布总体的单变量数据集中异常值的检验。该检验是为假设定义的:

  • 何:数据集中没有异常值
  • 哈:数据库里只有一个加油机

方法 1:执行两侧 Grubbs 测试

在此方法中执行 grubb 的测试,用户需要调用 outlier_utils 包中的 smirnov_grubbs.test()函数,并将所需数据作为参数传递。

例子:

在这个例子中,我们正在执行双边 Grubbs 测试,它将使用Python编程语言中的 smirnov_grubbs.test()函数检测数据集两端的异常值。

Python
import numpy as np
from outliers import smirnov_grubbs as grubbs
 
# define data
data = np.array([20, 21, 26, 24, 29, 22,
                 21, 50, 28, 27])
 
# perform Grubbs' test
grubbs.test(data, alpha=.05)


Python
import numpy as np
from outliers import smirnov_grubbs as grubbs
 
# define data
data = np.array([20, 21, 26, 24, 29,
                 22, 21, 50, 28, 27, 5])
 
print("Data after performing min one-side grubb's test: ")
 
# perform min Grubbs' test
grubbs.min_test(data, alpha=.05)


Python
import numpy as np
from outliers import smirnov_grubbs as grubbs
 
# define data
data = np.array([20, 21, 26, 24, 29, 22,
                 21, 50, 28, 27, 5])
 
print("Data after performing min one-side grubb's test: ")
 
# perform max Grubbs' test
grubbs.max_test(data, alpha=.05)


Python
import numpy as np
from outliers import smirnov_grubbs as grubbs
 
# define data
data = np.array([20, 21, 26, 24, 29, 22,
                 21, 50, 28, 27, 5])
 
grubbs.max_test_indices(data, alpha=.05)


Python
import numpy as np
from outliers import smirnov_grubbs as grubbs
 
# define data
data = np.array([20, 21, 26, 24, 29, 22,
                 21, 50, 28, 27, 5])
 
grubbs.max_test_outliers(data, alpha=.05)


输出:

array([20, 21, 26, 24, 29, 22, 21, 28, 27])

方法 2:执行一侧 Grubbs 测试

在这种获取单侧 grubb 测试的方法中,用户需要调用 grubbs.min_test()函数来获取最小值。给定数据集的异常值或 grubbs.max_test() 以获得最大值。给定数据集中的异常值。

示例 1:

在此示例中,我们将使用Python编程语言中给定数据的 grubbs.min_test()函数执行单侧 Grubbs 测试。

Python

import numpy as np
from outliers import smirnov_grubbs as grubbs
 
# define data
data = np.array([20, 21, 26, 24, 29,
                 22, 21, 50, 28, 27, 5])
 
print("Data after performing min one-side grubb's test: ")
 
# perform min Grubbs' test
grubbs.min_test(data, alpha=.05)

输出:

Data after performing min one-side grubb's test: 
array([20, 21, 26, 24, 29, 22, 21, 50, 28, 27,  5])

示例 2:

在此示例中,我们将使用Python编程语言中给定数据的 grubbs.max_test()函数执行单侧 Grubbs 测试。

Python

import numpy as np
from outliers import smirnov_grubbs as grubbs
 
# define data
data = np.array([20, 21, 26, 24, 29, 22,
                 21, 50, 28, 27, 5])
 
print("Data after performing min one-side grubb's test: ")
 
# perform max Grubbs' test
grubbs.max_test(data, alpha=.05)

输出:

Data after performing min one-side grubb's test:
array([20, 21, 26, 24, 29, 22, 21, 28, 27,  5])

方法 3:使用 gribb 检验提取异常值的索引

在这种方法中,用户需要遵循以下语法来获取给定数据中存在异常值的索引。

grubbs.max_test_indices()函数:此函数返回数组中存在的异常值的索引。

Python

import numpy as np
from outliers import smirnov_grubbs as grubbs
 
# define data
data = np.array([20, 21, 26, 24, 29, 22,
                 21, 50, 28, 27, 5])
 
grubbs.max_test_indices(data, alpha=.05)

输出:

[7]

方法 4:使用 grubb 检验提取离群值的值

在这种方法中,用户需要遵循以下语法来获取给定数据中存在异常值的值。

grubbs.max_test_outlines()函数:此函数返回数组中存在的异常值。

Python

import numpy as np
from outliers import smirnov_grubbs as grubbs
 
# define data
data = np.array([20, 21, 26, 24, 29, 22,
                 21, 50, 28, 27, 5])
 
grubbs.max_test_outliers(data, alpha=.05)

输出:

[50]