数据准备(matlab数学建模)

690 阅读4分钟

数据读写

两个函数:xlsread() xlswrite()

xlsread('url',sheet,'A1:B5')

  • url:为excel表格在电脑中所在的绝对路径/或者表格相对matlab代码所在的相对路径
  • sheet:2表示位于sheet2
  • 'A1:B5'表示读入的数据范围,即第A列第一行-第B列第5行范围内数据

官方文档传送门ww2.mathworks.cn/help/matlab…

异常值

在相关,回归分析,以及比如方差,t检验等等研究时,均会受到异常值的干扰,只要有异常值存在,则均会或多或少的影响到数据结论;严重的情况即为将关系扭曲,不严重的时候也会影响到各类指标结果等,因而需要认真地对待异常值。

针对异常值,常见的步骤有三步:第一步是异常值检测;第二步是异常值判定;第三步是异常值处理。

异常值监测

  • 箱线图:实验研究时经常使用,非常直观的展示出异常数据
  • 散点图:研究X和Y的关系时,可直观展示查看是否有异常数据
  • 描述分析:可通过最大最小值等各类指标大致判断数据是否有异常
  • 其它:比如结合正态分布图,频数分析等判断是否有异常值

异常值判定

  • 缺失数字
  • 小于设定标准的数字
  • 大于设定标准的数字
  • 大于3个标准差

异常值处理

异常值处理方法主要分为两类,直接剔除和填补

  • 剔除:适用于异常值不多的情况
  • 填补:平均值填补、中位数填补、众数填补、随机数填补

下面是个人对异常值的处理示例,利用3σ准则判定异常值,然后将异常数据与正常数据分离

%{
异常数据处理函数
读取excel数据的行/列,column传入,normal、abnormal分别输出正常、不正常数据
%}

%data=xlsread('C:\Users\liuyi\Desktop\start_file1.xlsx');%读取原始数据
%column=data(1:100,1);
function [normal,abnormal]=exceptionHandle(column)
l=length(column);
average=mean(column);%均值
standard=sqrt((column'-average)*(column-average)/l);%标准差
variance=standard^2;%方差
extreme=max(column)-min(column);%极差
top=average+3*standard;%上界
bottom=average-3*standard;%下界
normal=[];
abnormal=[];
i=1;
j=1;
for k=1:l
    %这里是一维数据,如果对于平面中的点或者空间中的点
    %则if条件语句改写为'column_1(k)>=bottom_1 && column_1(k)<=top_1 && column_2(k)>=bottom_2 && column_2(k)<=top_2'
    if column(k)<bottom || column(k)>top
        abnormal(i,1)=k;
        abnormal(i,2)=column1(k);
        i=i+1;
    end
    if column(k)>=bottom && column(k)<=top
        normal(k,1)=j;
        normal(k,2)=column1(j);
        normal(k,3)=column2(j);
        k=k+1;
    end
end
end

《中华人民共和国国家标准》www.360doc.com/document/18…

数据变换

标准化处理

数据的标准化是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,用于去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或者量级的指标能够进行比较和加权。

下面介绍几种常见的标准化方法

  • Z标准化:

c101c575587adaa821c390164ce45cc.jpg

  • 归一化:(X-Min)/(Max-Min)
  • 区间化:将数据压缩在a和b之间,默认分别是1和2。a+(b-a)*(X-Min)/(Max-Min)

逆向化

指标一般分为正向指标(越大越好)、逆向指标(越小越好)、适度指标(不能太小也不能太大)。为了可以进行综合汇总,需要解决同方向性,一般需要将逆向指标正向化。

MaxX/(MaxMin)(Max-X)/(Max-Min)

更多方法spssau.com/helps/datap…

数据可视化

%先来段链接,后续结合示例补充

ww2.mathworks.cn/help/matlab…

数据降维

在数学建模中,我们经常会遇到多个变量的问题,而且在多数情况下,多个变量之间常常存在一定的相关性。当变量个数较多且变量之间存在复杂关系时,会显著增加分析问题的复杂性。这时我们可以采取数据降维的方法将多个变量综合为少数几个代表性变量,使这些变量能够代表原始变量的绝大多数信息又互不相关。

主成分分析法(PCA)

主成分分析法是一种数学降维的方法,其所要做的就是设法将众多具有一定相关性的变量重新组合为一组新的相互无关的综合变量来代替原来的变量。

%这里先贴几张图,有时间把数学公式和代码码上

dd818658cc4abbcf39fe3227bcad161.jpg

1a0448eac0227d2de0e5a5f1afb46d0.jpg

dcebabd13ea532b7cae53b84cefda83.jpg