本文介绍了如何利用格拉布斯准则通过编程方式识别并剔除实验数据中的异常值,提供了具体的代码实现方法。
格拉布斯准则判断异常数据的代码
以下是使用Python实现基于格拉布斯准则来检测一组数据中的异常值(离群点)的一个示例程序:
```python
import numpy as np
def grubbs_test(data, alpha=0.05):
根据给定的数据和显著性水平alpha,返回可能的离群点
# 计算样本均值与标准差
mean = np.mean(data)
std_deviation = np.std(data)
# 寻找最大绝对偏差
z_values = abs((data - mean) / std_deviation)
g_statistic = max(z_values)
n = len(data)
from scipy.stats import t
# 计算格拉布斯统计量的临界值(G-critical)
numerator = np.sqrt(n * (n-2)) * t.ppf(1-alpha/(2*n), df=n-2)
denominator = n - 1 + t.ppf(1-alpha/(2*n), df=n-2)
g_critical = numerator / denominator
# 判断是否为异常值
if g_statistic > g_critical:
index_of_outlier = np.argmax(z_values)
return data[index_of_outlier]
else:
print(没有发现显著的离群点。)
# 示例数据集
data_example = [10, 23.5, 46, 87.9, -21]
outlier_value = grubbs_test(data_example)
print(f检测到异常值为:{outlier_value})
```
以上代码首先定义了一个名为`grubbs_test()`的函数,它接收一个数值列表和可选显著性水平参数。然后该程序计算了这些数据点的标准偏差,并寻找最大绝对偏离度来确定格拉布斯统计量G。
接着使用scipy库中的t分布方法找出临界值(G-critical),并将此与实际观察到的G进行比较以判断是否存在异常值。
如果存在显著离群,则返回该数值;否则输出信息表示未发现明显离群点。