求小波分析在数据检测方面的matlab代码,比如给您一组数据,利用小波分析来找出其中的异常值。

给您一组数据,能够找出其中的异常值,该数据是一维的。但是如果您能够给出处理多维数据的源代码,再给您加分。如果能根据其他数据来预测出异常值应该的值,再给您加分。十分感谢!现... 给您一组数据,能够找出其中的异常值,该数据是一维的。但是如果您能够给出处理多维数据的源代码,再给您加分。如果能根据其他数据来预测出异常值应该的值,再给您加分。十分感谢!现在我的文库分不够了,这就去做任务来付分,希望高手能够帮忙。
找出下表中的异常值,并拟合出应该是多少。

日期 用 水量 1厂供水量 2厂供水量
20000101 1221790 794164 427626
20000102 1282410 833566.4 448843.6
20000103 1241980 807287 434693
20000104 1265880 822822 443058
20000105 1301360 767802 533558
20000106 1298670 727255 571415
20000107 1273770 700573.5 573196.5
20000108 1300620 845403 455217
20000109 1301750 846138 455612
20000110 1318300 856895 461405
20000111 1327550 862908 464642
20000112 1356910 800577 556333
20000113 1329360 744442 584918
20000114 1312580 721919 590661
20000115 1330460 864799 465661
20000116 1416710 855861.4 460848.6
20000117 1293410 840717 452693
20000118 1303150 847047.4 456102.6
20000119 1304690 769767 534923
20000120 1301800 729008 572792
望能给源代码。不是小波分析的方法也行。
展开
 我来答
百度网友a536a36
2013-01-30 · TA获得超过4480个赞
知道小有建树答主
回答量:534
采纳率:100%
帮助的人:284万
展开全部

你做的这方面叫做“小波分析对信号奇异性检测”。


小波确实有这方面的应用。建议你直接去图书馆借《MATLAB小波分析(张德丰等编著)》(第二版),第一版有没有我不不知道哈。其中有一节就专门讲如何用小波检测第一类间断点和第二类间断点的,并且有方法将奇异点消除。讲的比较详细。



根据你的问题补充,我觉着你可以用欧几里得距离作为衡量波动的标准,具体程序如下:


data=[...

20000101   1221790   794164   427626

20000102   1282410   833566.4   448843.6 

20000103   1241980   807287   434693 

20000104   1265880   822822   443058 

20000105   1301360   767802   533558 

20000106   1298670   727255   571415

20000107   1273770   700573.5   573196.5

20000108   1300620   845403   455217 

20000109   1301750   846138   455612 

20000110   1318300   856895   461405 

20000111   1327550   862908   464642 

20000112   1356910   800577   556333   

20000113   1329360   744442   584918   

20000114   1312580   721919   590661   

20000115   1330460   864799   465661

20000116   1416710   855861.4   460848.6 

20000117   1293410   840717   452693 

20000118   1303150   847047.4   456102.6 

20000119   1304690   769767   534923 

20000120   1301800   729008   572792

];

date=data(:,1)-20000000;

data=data(:,2:end);

x1=data(:,1);

x2=data(:,2);

x3=data(:,3);

x1_m=mean(x1);

x2_m=mean(x2);

x3_m=mean(x3);

data_m=repmat([x1_m,x2_m,x3_m],size(data,1),1);

temp=(data-data_m).^2;

temp=sum(temp')';

stem(date,temp);



得到的结果如下图:



可以看出波动最大是1月6号和1月16号。你可以自己设个门限,超过门限的都作为奇异值。

追问
1、能不能细化到找出某一个值是奇异的?不要去掉一整组数据。
2、再拟合出该值应该是多少。
非常谢谢您的回答,虽然我的分不多了,但我愿意给您再加10分。
追答
1.你要是仅仅要一个,那取欧几里得距离最大值对应的那个就行了。
2.你所谓的拟合是指找到那个中心么?我这个仅仅是三个变量各做了一个平均,就是那个data_m中的一行。这样做是不严谨的,应该找到一个使三个变量到某一个三维向量距离最短的点。
匿名用户
2013-01-30
展开全部
在知道上面提问请详细点。懂matlab又懂小波的人不多。最好给点数据什么的。然后说明一下什么叫异常。
更多追问追答
追问
谢谢,比如数据是:
X=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15];
Y=[1221790 1282410 1241980 1265880 1401360 1298670 1273770 1300620 1301750
1318300 1327550 1356910 1329360 1312580 1330460 ];
然后根据Y变量的波动情况判断Y数据中是否存在异常值,就是波动特别大的那种,这里第四个我给改成算是异常数据类型的了,请问能加一下我QQ么?1019997263。
追答
你加我吧!1762147196。你这个问题挺有意思,我试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式