中易网

异常数据剔除

答案:2  悬赏:0  
解决时间 2021-04-28 02:45
  • 提问者网友:刀枪不入
  • 2021-04-27 19:14
我现在有一组数据是成线性的。
x:80,90,100,110,120,130,140,150,160,170,180……320
y:79,89, 98,109,119,128,134,147, 157,166,177,……310

如何把偏离线性的数据给挑出来?
用什么方法比较好。能具体一点么。
不用很复杂的,就是简单的说明怎么判定是异常数据就行。

3楼那位 怎么才算是偏离最大?有没有什么判定方法。
肉眼当然可以看出来,但是别人要数据。
最佳答案
  • 二级知识专家网友:啵啵桃汀
  • 2021-04-27 20:01
Hough 变换拟合直线,不过这个是数字图像处理里面比较专业的知识。怕是...

我可以编写程序,来帮你处理该问题,有兴趣可以找我

补充: 我想知道LZ想做什么,简单方法是这样做:

1。对于线性数列,求出所有相邻两树差,得到一个新的数列,然后统计新数列的众数(就是出现最多的那个)得到线性数列的公差。
2。然后假设第一个个数是非异常数字。
3。假设数据不断加公差,看看绝大大多数是不是在原线性数列中,分情况:
4。若是 : 则第一个数以及第一个数+公差与原数列相同的元素均为非异常数据,其他则为异常数据。
5。若不是:则第一个数为异常数列,在假设第2个非异常数据,返回到第3步。一直找到满足条的的数。

注 : 异常数据毕竟是少数,计算次数与线性数列内元素个数正相关。假设个数为n
最小计算次数;2*n
最大计算次数:n*(n-1)
理论平均: n*log(n)

在补充 :

实验数据其实一般用图表,把所有元素对应点放在一张图上,找直线,使最多点落在直线上,不在直线上的数据去掉就可以了
全部回答
  • 1楼网友:樣嘚尐年
  • 2021-04-27 20:17
你的思路好像不对耶。。。数据有偏的话就不是异常点的问题了。试想,就算你通过剔除“异常点”把数据变成了正态的样子,你剔除的点的数目一定不是“个别”吧。。。所谓异常点剔除,指的都是“个别”剔除。。。 如果数据是整数型,尝试poisson回归; 如果数据在某一两个点(例如y=2和y=3)的计数特别高,考虑数据在这一点膨胀的可能性。这种情形可以用em算法解决(要编程,spss貌似不行)了。 如果数据不是整数型,尝试box-cox变换。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息