文章

基于以下文章,我写入一个可以帮助自己直接解决数据缺失,去差异值和平滑的脚本,即一步到位。
数据预处理—空值(补全或删除)与异常值(剔除)
几种常用信号平滑去噪的方法

代码

请注意看我写的注释

% 判断缺失值和异常值并修复,顺便光滑噪音,渡边笔记
clc,clear;close all;
x = 0:0.06:10;
y = sin(x)+0.2*rand(size(x));
y(22:34) = NaN;
y(89:95) = 50;
testdata = [x' y'];subplot(2,2,1);
plot(testdata(:,1),testdata(:,2));
title('原始数据');%% 判断数据中是否存在缺失值
if sum(isnan(testdata(:)))disp('数据存在缺失值');
elsedisp('数据不存在缺失值');
end% 判断数据中是否存在异常值
% 1.mean 三倍标准差法 2.median 离群值法 3.quartiles 非正态的离群值法
% 4.grubbs 正态的离群值法 5.gesd 多离群值相互掩盖的离群值法
choice_1 = 5;
yichangzhi_fa = char('mean', 'median', 'quartiles', 'grubbs','gesd');
yi_chang = isoutlier(y,strtrim(yichangzhi_fa(choice_1,:)));
if sum(yi_chang)disp('数据存在异常值');
elsedisp('数据不存在异常值');
end%% 对异常值赋空值
F = find(yi_chang == 1);
y(F) = NaN; % 令数据点缺失
testdata = [x' y'];subplot(2,2,2);
plot(testdata(:,1),testdata(:,2));
title('去除差异值');%% 对数据进行补全
% 数据补全方法选择
% 1.线性插值 linear 2.分段三次样条插值 spline 3.保形分段三次样条插值 pchip
% 4.移动滑窗插补 movmean
chazhi_fa = char('linear', 'spline', 'pchip', 'movmean');
choice_2 = 2;
if choice_2 ~= 4testdata_1 = fillmissing(testdata,strtrim(chazhi_fa(choice_2,:))); % strtrim 是为了去除字符串组的空格
elsetestdata_1 = fillmissing(testdata,'movmean',10); % 窗口长度为 10 的移动均值
endsubplot(2,2,3);
plot(testdata_1(:,1),testdata_1(:,2));
title('数据补全结果');%% 进行数据平滑处理
% 滤波器选择 1.Savitzky-golay 2.rlowess 3.rloess
choice_3 = 1;
lvboqi = char('Savitzky-golay', 'rlowess', 'pchip', 'rloess');
% 通过求 n 元素移动窗口的中位数,来对数据进行平滑处理
windows = 8;
testdata_2 = smoothdata(testdata_1(:,2),strtrim(lvboqi(choice_3,:)),windows) ;subplot(2,2,4);
plot(x,testdata_2)
title('数据平滑结果');

结果

数据存在缺失值
数据存在异常值

请根据自己的需要选择修复方法,也可以自己加入别的修复方法到脚本上。
脚本修复后自己导出数据就好,通常是导出补全结果,而平滑曲线是用以观察和分析的,当然,你导平滑的数据偶然也没关系,反正数据修复从第一步开始就带有随机性了。
比如我这明明是个正弦函数,脚本给我修复成了左边凹了一块,这就很离谱了。
这种时候应该人为修改或补充下部分数据,或者选择其他的修复方法(修改对应的choice)
涉及向前对未知修复和向后预测(比如灰色预测),请参考其他文章。
即便如此,日常的数据修复也不会去头去尾给你,不是吗?
以上,欢迎交流

数据修复Matlab_一步到位_(空缺,异常值,光滑,噪音)相关推荐

  1. 引导修复 不是活动的_河南省视频数据修复中心

    河南省视频数据修复中心 lk6afds 河南省视频数据修复中心 文件预览我找到了我要恢复文件,可是,这个文件能能正确恢复呢.没有用的文件不可以删掉吗.我们先来看看盘文件夹都是什么吧.(以下仅限于~系统 ...

  2. python repair修复功能_通用高效的数据修复方法:Row level repair

    导读:随着大数据的进一步发展,NoSQL 数据库系统迅速发展并得到了广泛的应用.其中,Apache Cassandra 是最广泛使用的数据库之一.对于 Cassandra 的优化是大家研究的热点,而 ...

  3. 数据可视化 信息可视化_可视化数据以帮助清理数据

    数据可视化 信息可视化 The role of a data scientists involves retrieving hidden relationships between massive a ...

  4. 数据科学与大数据技术的案例_作为数据科学家解决问题的案例研究

    数据科学与大数据技术的案例 There are two myths about how data scientists solve problems: one is that the problem ...

  5. 浅析SQL Server数据修复命令DBCC的使用

    SQL Server数据库提供了修复命令DBCC,当SQL Server数据库遭到质疑或者是有的无法完成读取时可以尝试用此命令来修复.以下是一些常见的DBCC修复命令,希望会给读者带来帮助.    1 ...

  6. 数据科学还是计算机科学_您应该拥有数据科学博客的3个原因

    数据科学还是计算机科学 "Start a Blog to cement the things you learn. When you teach what you've learned in ...

  7. 大数据业务学习笔记_学习业务成为一名出色的数据科学家

    大数据业务学习笔记 意见 (Opinion) A lot of aspiring Data Scientists think what they need to become a Data Scien ...

  8. 数据可视化 信息可视化_更好的数据可视化的8个技巧

    数据可视化 信息可视化 Ggplot is R's premier data visualization package. Its popularity can likely be attribute ...

  9. 数据分析师 需求分析师_是什么让分析师出色?

    数据分析师 需求分析师 重点 (Top highlight) Before we dissect the nature of analytical excellence, let's start wi ...

最新文章

  1. Android Jetpack LiveData 源码解析
  2. PAT(乙级)1014
  3. BOA+CGI+SQLite 随笔
  4. 计算机鼠标装有,计算机鼠标装有传感器来监视鼠标的移动情况,如图
  5. 卢伟冰:Redmi K30 Pro的主板可能是业内最复杂“三明治”主板设计
  6. 螃蟹为什么横着走,今天为大家介绍为什么螃蟹横着走
  7. oracle gather trace,Oracle 12C R2-新特性-新增两个视图:方便查看trace文件和内容
  8. java获取当前日期和时间的二种方法分享
  9. 知识图谱中的结构信息建模
  10. win98访问win7方法
  11. Python脚本文件的创建运行
  12. 简单5分钟,将lowcode低代码融入到你的中后台管理系统
  13. Day004--MySQL中的多表查询
  14. c语言单片机程序段,51单片机C语言编程基础及实例
  15. IdentityServer4揭秘---Consent(同意页面)
  16. matplotlib使用笔记
  17. 前端~javascript~实战案例:网页表白墙/实战案例:简单实现一个备忘录~
  18. Unreal4 入门
  19. Linux 系统管理命令集合
  20. 【专访】润和软件刘洋:同心聚力开拓基于OpenHarmony的国产化科技创新之路

热门文章

  1. android6.0花屏6,微信6.5安卓内测版Bug,部分机型花屏成这样了
  2. 读书笔记 -- 《计算机是怎样跑起来的》
  3. Net 6 控制台配置文件读取
  4. setTimeout执行时间
  5. Timer实现定时任务
  6. WSAStartup
  7. MATLAB 线性整数规划
  8. js split 切分字符串
  9. 搜索引擎原理-网络蜘蛛和ROBOTS
  10. 悦淘金:什么才是社交零售的真正逻辑?电商新逻辑