数据分析与处理主讲:数理与信息工程学院何国龙数据导入与导出1.从外部文本文件导入数据到MatLab的工作区;1)File/Importdata(按照向导对话框操作,注意版本的兼容性)2)利用内置函数高级IO函数低级IO函数loadfopenImportdatafclosedlmreadfgetstextread*fgetlstrread*textscan*……MatLab程序区数据数据文本Excel文件数据交换示意图数据重用与内部交换2.将MatLab的工作区数据写出到外部磁盘文件;1)save(e.g.save'123.txt'test-asciisave‘123’test存为123.mat)用load函数再次提取2)dlmwrite参考pdf帮助文件3)fprintf参考out_data.m源程序3.从Excel文件导入数据到MatLab工作区1)importdata,工作区变量data,textdata2)用xlsread调入数据(注意多页面)4.从MatLab写出数据到Excel文件xlswrite函数e.g.[s,t]=xlswrite(filename,var,sheet,range)5.从MatLab操作Excel文件(*)Excel=actxserver('Excel.Application');Excel.Visible=1;将Excel作为ACtiveX服务器打开,与MatLab交互,refVBAe.g.test_Excel.m6.低级IO,功能强大,技术要求高技术性太强,不适合数模中采纳应用缺失数据处理•成因:测量不到,录入差错,损坏,不合理•处理:剔除,获得可行数据子集•填补:插值法,热卡填充法,多重填补法•不处理非数值型数据日期时间、分类代码、逻辑量等数据预处理1.数据的平滑处理smooth函数的使用smooth_1.m参考:smooth.pdf移动平均滤波器对列向量进行预处理,默认窗宽为5示意图移动平均不变序列例子(1:n)对于多元数据,当各变量的量纲和数量级不一致时,往往需要对数据进行预处理,以消除量纲和数量级的限制,便于分析.2.数据的标准化变换3.数据的极差归一化变换移动平均滤波器示意图………●●●●●●●●●●●●●●●●●●●………时间序列数据以当前数据序号k为中心,前后推(span-1)/2,共span个数据的平均值图示中span=7的样子......5/))7()6()5()4()3(()5(5/))6()5()4()3()2(()4(5/))5()4()3()2()1(()3(3/))3()2()1(()2()1()1(yyyyyyyyyyyyyyyyyyyyyyyyyyyyy返回Max{k-span/2,1}-min{k+span/2,L}数据的标准化变换具体变换意义见下页分析设p维向量X=(X1,X2,…,Xp)的观测值矩阵为:111212122212ppnnnpxxxxxxXxxx标准化变换后的观测值矩阵为:111212122212''''''''''ppnnnpxxxxxxXxxx'ijjijjjxxxs1211;1()1njijinjjijjixxnsxxn经过标准变换,X’的各列均值为0,标准差为1.mu=mean(x,dim);sigma=std(x,flag,dim);sigma0=sigma;sigma0(sigma0==0)=1;z=bsxfun(@minus,x,mu);z=bsxfun(@rdivide,z,sigma0);%Matlab自带的zscore核心代码极差归一化变换p)(n)(ijxXp)(n)(RijRxXkjnkkjnkkjnkijRijxxxxx111minmaxmin经过极差变换,每个元素位于[0,1],列的最大最小元分别变换为1与0数据拟合0.观察数据的散点图,辅助判别数据拟合应采纳的模型plot_1.m数据文件:cliamate_data.xlsplot_2.m数据文件:data2009.xls•一元线性回归分析函数regressregress函数可用于多重线性或广义线性回归分析,特别地也适合作一元线性回归分析Ref:editregress.mp-重广义线性回归模型npnppnnppppnxfxfxfxfxfxfxfxfxfyyy212122112222211112211121)()()()()()()()()(Y的n次独立观察数据模型设计矩阵X需要拟合估计的系数向量误差向量kkiipiikxfy)(1观察值=模型理论值+模型误差p-重线性回归模型npnpnnppnxxxxxxxxxyyy212121222211121121nnnkxxxyyy212121111最简单的情形:一元线性当模型中需要常数项时(共同参照量),设计矩阵应有一全1元素的列多重回归分析序号yx1x2x3x4x5144.64489.56.862178245.34075.1662185354.34485.85.245156459.64268.24.940166549.938895.555178644.84777.5758176745.740767.270176849.14381.26.564162939.44481.47.9631741060.13881.95.2481701150.544736.1451681237.44587.78.4561861344.84566.56.751176假设的关联数据dchg.xls55443322110ˆxbxbxbxbxbby5124151510ˆiiiiiijjiijiiixbxxbxbby一次项多重回归一次项交叉项二次项多重回归•研究样本或指标之间存在程度不同的相似性(亲疏关系——以样本间距离衡量)。根据一批样本的多个观测指标,具体找出一些能够度量样品或指标之间相似程度的统计量,以这些统计量为划分类型的依据。把一些相似程度较大的样本(或指标)聚合为一类,把另外一些彼此之间相似程度较大的样本(或指标)又聚合为另一类,直到把所有的样本(或指标)聚合完毕,这就是分类的基本思想。在聚类分析中,根据分类对象的不同分为Q型聚类分析和R型聚类分析两大类。聚类分析常用的样品对距离qpkqjkikijxxqd/11||)(pkjkikijxxd1||)1(2/112)()2(pkjkikijxxd||max)(1jkikpkijxxd)cov(,)'()()(1XSXXSXXMdjijiijRef:pdistMinkowski距离Mahalabobis距离相似系数jijipkkipkkinkkjkixxxxxxxxCij,2/1121212/112121)()())((pkjkjpkikinkjkjikixxxxxxxxCij常用聚类方法•最短距离法(singlelinkagemethod)•最长距离法(completelinkagemethod)•中间距离法(medianmethod)•重心法(centroidhierarchicalmethod)•类平均法(averagelinkagemethod)•离差平方和法(Wardmethod)•与系统聚类法相关的MatLab函数包括:•pdist;squareform;linkage;dendrogram;cophenet;inconsistent;cluster;clusterdatag1g2g3g4g5g10g210g3540g47620g5109530g6g3g4g5g60g340g4620g59530g6g7g5g60g740g5930g6={g1,g2}g8g5g80g540g7={g3,g4}g8={g5,g7}g9={g5,g8}聚类分析示意图主成分分析的几何意义主成分分析是一种通过降维技术把多个变量化为少数几个主成分(即综合变量)的多元统计方法,这些主成分能够反映原始变量的大部分信息,通常表现为原始变量的线性组合,为使得主成分所包含的信息互不重叠,要求各主成分之间线性无关.•MatLab的主成分分析函数pcacov;根据相关系数矩阵进行主成分分析princomp;根据样本观察值矩阵进行主成分分析pcares;根据主成分重建原始数据主成分分析Ref:zcffx.m...0426.06288.04226.0...3628.02654.03548.032123211xxxyxxxypcares函数重建数据•为了分析丢掉后面的主成分所造成的信息损失,设原始样本数据矩阵为,由前m个主成分重建的样本数据矩阵为;)(1)(;)(1)(112)(2112)(1nipjijmijijnipjmijijxxxnpmExxnpmERef:pca.mpnijxX)(pnmijmxX)()()(分析主成分效果的统计量基于Excel的数据处理与分析•一般的数据计算、数据作图•VBA程序设计(示例:Collatz_VBA_eg,二分法)•加载数据分析工具库/加载宏/分析工具库与分析工具库-VBA函数计算趋势线的公式bmxy66554433221xcxcxcxcxcxcbybxcy)ln(线性多项式bxceybcxyntttntttyyyyR12122)()ˆ(1对数指数乘幂R平方值