本文中将介绍单变量离群点检测、通过聚类检测离群点的例子最后演示从时间序列中检测离群点。
一、单变量和多变量的离群点检验。
set.seed(123)
data<-rnorm(100)#随机生成100个符合正态分布的随机数
summary(data)
plot(density(data)) #打印出data的概率密度函数
#打印出data箱线图,从箱线图中可以看到地步有一个离群值
boxplot(data)
boxplot.stats(data)$out #将这个离群值输出出来
#[1] -2.309169
#----多变量的离群值检测,跟单变量离群值检测基本类似,但是多加一步
set.seed(1235)
x<-rnorm(100)
y<-rnorm(100)
df<-data.frame(x,y)
head(df)
str(df);summary(df)
#找出x中的离群点
boxplot(x);boxplot.stats(x)$out
#找出y中的离群点
boxplot(y);boxplot.stats(y)$out
#找出这些离群点在各自数组中的下标
ylist<-which(y %in% boxplot.stats(y)$out)
# > ylist
# [1] 45 68
xlist<-which(x %in% boxplot.stats(x)$out)
# > xlist
# [1] 39 50
#我们视x和y中的离群值所构成的点都为离群点
unionlist<-union(xlist,yl

本文介绍了R语言中用于离群点检测的方法,包括单变量和多变量检验,并重点讲解了局部离群点因子(LOF)的概念。通过LOF算法,利用lofactor()函数对数据集如iris进行离群点识别,揭示了LOF如何在数值型数据中发现局部密度较低的点。
最低0.47元/天 解锁文章
999





