本文中将介绍单变量离群点检测、通过聚类检测离群点的例子最后演示从时间序列中检测离群点。
一、单变量和多变量的离群点检验。
set.seed(123)
data<-rnorm(100)#随机生成100个符合正态分布的随机数
summary(data)
plot(density(data)) #打印出data的概率密度函数
#打印出data箱线图,从箱线图中可以看到地步有一个离群值
boxplot(data)
boxplot.stats(data)$out #将这个离群值输出出来
#[1] -2.309169
![](https://i-blog.csdnimg.cn/blog_migrate/06de819c1de7a297b84d9854152f819e.jpeg)
#----多变量的离群值检测,跟单变量离群值检测基本类似,但是多加一步
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中的离群值所构成的点都为离群