R软件如何标记数据异常点

 时间:2026-02-13 04:33:05

1、输入或者读取数据。本例选取东方财富网2015年12月-2017年7月当月的新增信贷数据。改数据是一个时间序列。代码如下:

New_credit<-c(8323.08,25370.07,8105.44,13175.56,5642.05,9374.27,13141,4550,7969,

12628,6010,8463,9943,23132.85,10317.32,11586.06,10805.69,11780.36,14474,8255)

#生成时间序列

a<-ts(New_credit, frequency=12,start=c(2015,12));a

R软件如何标记数据异常点

2、绘制出箱线图,可以看出有两个异常点。我们把它们的位置找出来,异常点是第2和第14个数据。

代码:

#根据箱线图检测出异常点的位置

boxplot(a)

(b<- which(a %in% boxplot.stats(a)$out))

R软件如何标记数据异常点

R软件如何标记数据异常点

3、绘制时间序列a的散点图,并在图中标记出在箱线图之外的异常点,即b位置上的点。

#在散点图中标出异常点

plot(a)

points(time(a)[b], a[b],pch=13, col="red",cex=1.5)

R软件如何标记数据异常点

4、我们还可以将数据聚类后进行异常点标记。首先将数据按照K-means聚类方法分为3类,然后计算各个类别与中心点的距离,最后根据这个距离找出各类的异常点。

代码如下:

#聚类异常点标记

kmeans.result<-kmeans(a, centers=3) #将数据a分为3类

kmeans.result$centers #各类的中心点

kmeans.result$cluster #各个点的类别

#列出各个点对应的中心点

centers_a<-kmeans.result$centers[kmeans.result$cluster,]

#计算各点与中心点的距离

distances<-sqrt((a-centers_a)^2)

#计算各类别距离中心点最大的两个点

outliers<-order(distances,decreasing=T)[1:2]

print(a[outliers]) 

R软件如何标记数据异常点

5、画出聚类后的散点图,对不同的类别使用不同的颜色。可以看出,分类结果已将箱线图外的异常点分为了一类。

plot(1:length(a),a, pch="o",col=kmeans.result$cluster, cex=1.0)

R软件如何标记数据异常点

6、标记出中心点和相对于中心点的异常点位置。

#标出各类的中心点

points(kmeans.result$centers, col=1:3, pch=8, cex=1.8)

#标出各类别距离中心点最大的两个点

points(outliers,a[outliers],pch=13, col=6, cex=2.0)

R软件如何标记数据异常点

  • TRMM数据.nc格式IDL批量转换为.tif格式
  • 江南百景图游戏农田有什么用?
  • 怎么用python保存图片
  • 江南百景图怎么修改隐私设置?
  • 如何获取Microsoft Edge的扩展
  • 热门搜索
    春节短途旅游推荐 春节厦门旅游攻略 银川沙坡头旅游攻略 火山岛旅游攻略 香港旅游攻略精华版 河北旅游职业学院教务网 鸡冠山旅游攻略 青岛旅游观光巴士 黑龙江冬季旅游景点 河南洛阳旅游景点