使用matlab分析数据质量、特征

先贴一下参考博文:https://www.cnblogs.com/fangxiaoqi/p/11440078.html

吹一下这位大佬,感觉这个大佬写的博客都十分认真,推测应该是同级的,哎,内心十分敬佩,若我有他十分之一功力就好了,而且文笔也很赞,经常会写一些带有思考性的文章,赞?。

进入主题:

这篇文章主要写一下数学建模中如何对数据进行预处理,主要包括缺失数据、异常数据的检查和数据特征的提取,希望今年参加数模的人都有个好成绩吧(感觉自己好啰嗦).......

 

缺失数据和异常数据的查找:

%% 餐饮销量数据缺失值及异常值检测
clear;
catering_sale = '../data/catering_sale.xls'; % 餐饮数据
index = 1; % 销量数据所在列 
%% 读入数据
[num,txt] = xlsread(catering_sale);
sales =num(2:end,index);
rows = size(sales,1);
%% 缺失值检测 并打印结果
nanvalue = find(isnan( sales));
if isempty(nanvalue) %  没有缺失值
    disp('没有缺失值!');
else
    rows_ = size(nanvalue,1);
    disp(['缺失值个数为:' num2str(rows_) ',缺失率为:' num2str(rows_/rows) ]);
end
%% 异常值检测 
% 箱形图上下界
q_= prctile(sales,[25,75]);
p25=q_(1,1);
p75=q_(1,2);
upper = p75+ 1.5*(p75-p25);
lower = p25-1.5*(p75-p25);
upper_indexes = sales(sales>upper);
lower_indexes = sales(sales<lower);
indexes =[upper_indexes;lower_indexes];
indexes = sort(indexes);
% 箱形图
figure
hold on;
boxplot(sales,'whisker',1.5,'outliersize',6);
rows = size(indexes,1);
flag =0;
for i =1:rows
  if flag ==0
    text(1+0.01,indexes(i,1),num2str(indexes(i,1)));
    flag=1;
  else
      text(1-0.017*length(num2str(indexes(i,1))),indexes(i,1),num2str(indexes(i,1)));
    flag=0;
  end
end
hold off;
disp('餐饮销量数据缺失值及异常值检测完成!');

使用箱型图判断异常值的优点:箱形图的绘制依靠实际数据,不需要事先假定数据服从特定的分布形式,没有对数据作任何限制性要求,它只是真实直观地表现数据形状的本来面貌;另一方面,箱形图判断异常值的标准以四分位数四分位距为基础,四分位数具有一定的耐抗性,多达25%的数据可以变得任意远而不会很大地扰动四分位数,所以异常值不能对这个标准施加影响,箱形图识别异常值的结果比较客观。

 

缺失值处理:

处理缺失值的方法可以分为三类:删除记录、数据插补和不处理。其中,插补最常用。

插补方法:均值/中位数/众数插补、使用固定值、最近临插补、回归方法、插值法。

推荐使用拉格朗日插值法和牛顿插值法对缺失值进行插补。

在插值前会对数据进行异常值检测,发现的一些异常数据会定义为空缺值,也会进行补数。

 

异常值处理:
异常值处理的常用方法有:

(1)删除含有异常值的记录

(2)视为缺失值

(3)平均值修正

(4)不处理

 

数据特征分析:

1.对比分析

2.统计量分析

3.贡献度分析:贡献度分析又称帕累托分析,原理使帕累托法则,它是指任何特性群体中,重要的因子通常只占少数,而不重要的因子则占多数,因此只要控制具有重要性的少数因子即能控制全局。

4.相关性分析:

(1)直接绘制散点图:最直观判断线性关系。

(2)绘制散点图矩阵

(3)计算相关系数

 

具体代码实现看本文最上面的参考博文

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值