用 Grubbs 检验极端值

R 异常检测入门

Alastair Rushworth

Data Scientist

目视评估并非总是可靠!

boxplot(temperature, ylab = "Celsius")

离群点的箱线图

R 异常检测入门

Grubbs 检验

  • 用统计检验判断点是否为离群值
  • 假设数据服从正态分布
  • 需先检验正态性
R 异常检测入门

用直方图检验正态性

hist(temperature, breaks = 6)

显示数据分布的直方图

对称且钟形?

R 异常检测入门

运行 Grubbs 检验

使用 grubbs.test() 函数:

grubbs.test(temperature)
    Grubbs test for one outlier
data:  temp
G = 3.07610, U = 0.41065, p-value = 0.001796
alternative hypothesis: highest value 30 is an outlier
R 异常检测入门

解释 p 值

grubbs.test(temperature)
    Grubbs test for one outlier

data:  temperature
G = 3.07610, U = 0.41065, p-value = 0.001796
alternative hypothesis: highest value 30 is an outlier

  p-value

  • 接近 0:离群证据更强
  • 接近 1:离群证据更弱
R 异常检测入门

获取离群值的行索引

最大值的位置

which.max(weights)
5

最小值的位置

which.min(temperature)
12
R 异常检测入门

开始练习吧!

R 异常检测入门

Preparing Video For Download...