MATLAB在数据统计中应用技术_第1页
MATLAB在数据统计中应用技术_第2页
MATLAB在数据统计中应用技术_第3页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB在数据统计中的应用目录:1、一元线性回归的matlab实现(含检验)【更新】2、一维数据滑动平均的matlab实现3、多元线性回归的 matlab实现4、K阶自回归拟合及二阶自回归预测的 Matlab实现5、一次指数平滑预测的matlab实现6、n次指数平滑及其预测7、一维数据移动平滑的 matlab实现8 K阶自相关系数的matlab实现(含置信度检验)说明:1. 正文中命令部分可以直接在Matlab中运行,作者(Yangfd09)在 MATLAB R2009a(7.8.0.347)中运行通过。2. 限于作者水平问题,文中难免疏漏和错误,如蒙赐教,不胜感激!3. 原创作品,仅供学

2、习交流之用,会有不定期更新。一元线性回归的matlab实现(含检验)【更新】%求一元线性回归方程%数据要求:两行。第一行存放x的观察值,第二行存放 y的观察值%数据文件名:data_yyhg.mat ;变量名:test%load data_yyhg.matN=length(test(1,:);%注:也可以用M,N=size(test)%但不能用 N=size(test(1,:)sx=0;sx2=0;sy=0;sy2=0;sxy=0;Lxy=0;Lyy=0;for i=1:Nsx=sx+test(1,i);sx2=sx2+test(1,i)A2;sy=sy+test(2,i);sy2=sy2+t

3、est(2,i)A2;sxy=sxy+test(1,i)*test(2,i);Lxy=Lxy+(test(1,i)-sum(test(1,:)/N)*(test(2,i)-sum(test(2,:)/N);Lyy=Lyy+(test(2,i)-sum(test(2,:)/N)A2;endr=N,sx;sx,sx2sy;sxy;a=r(1);b=r(2);%分布检验U=b*Lxy;Q=Lyy-U;F=(N-2)*U/Q;% 以合优度检验x=test(1,:);y=a+b*x;eq=sum(test(2,:)/N;ssd=0;ssr=0;for i=1:Nssd=ssd+(test(2,i)-y(

4、i)A2;ssr=ssr+(y(i)-eq)A2;endsst=ssd+ssr;RR=ssr/sst;%命令窗口中显示回归方程str=blanks(5),'y=' , '(' ,num2str(a),')' , '+' , '(' ,num2str(b),')' , '*x'disp('')disp('回归方程为:')disp(str)disp( 'RA2拟合优度检验:)strin='RA2=' ,num2str(RR);dis

5、p(stri n)disp( 'F-分布显著性检验:')stri= 'F 计算值:,num2str(F),blanks(4),'自由度:f1=1,f2=' ,num2str(N-2);disp(stri)disp('注:请对照F-分布表找到所需置信水平下的F临界值Fa,若F>Fa,则通过检验。淤制x-y散点图和回归直线')yy=a+b*test(1,:);plot(test(1,:),test(2,:),'r.'),hold onplot(test(1,:),yy,'b-'),holdofftitle

6、(str)附(可以直接粘贴到.mat文件中):3.845.8811.377.7 51.260.154.155.414.416.516.213.810.86.756.84555.367.573.376.64.779.6一维数据滑动平均的matlab实现%骨动平均%数据格式:单行(按时间序列排序)%数据文件名:data_ph.mat,变量名:testload data_ph.matM=le ngth(test);disp('请输入单侧平滑点数(时距)k=input('(输入1对应于三点平滑,2对应五点平滑):);y=zeros(1,M);if 2*k+1<=Mfor i=1:

7、M-2*kfor j=i:i+2*ky(i+k)=y(i+k)+test(j);endy(i+k)=y(i+k)/(2*k+1);endy(1:k,M-k+1:M)=NaN;str=int2str(k),'点滑动平均结果如下:'disp(str)format compactdata=test,result=yformatelsedisp( 'Error:数据个数不足!')end附(直接复制到.mat文件中即可):(某城市1999-2004年用水量数据)250211.3 260.18209.1248.79241多元线性回归的matlab实现%多元线性回归%数据要求

8、:M亍N列。第一行为y的观察值,其余行分别为x1,x2,.,x(M-1)%数据文件名:data_dyhg.mat;变量名:testload data_dyhg.matM,N=size(test);Y=test(1,:)'X=cat(2, on es(N,1),test(2:e nd,:)');A=X'*X;B=X'*Y;b=AB;format long gstr='系数按升幕排列为:,num2str(b');disp(str)%F-分布检验eqx=sum(test(2:M,:),2)/N;eqy=sum(Y)/N;Liy=zeros(1,M-1)

9、;Lyy=0;for i=1:NLyy=Lyy+(Y(i)-eqy)A2;end%求回归平方和(方法一):用y的拟合值y=zeros(1,N);UU=0;for i=1:Nfor j=1:My(i)=y(i)+b(j)*X(i,j);endUU=UU+(y(i)-eqy)A2;endQ0=Lyy-UU;F0=(UU/(M-1)/(Q0/(N-M);%求回归平方和(方法二):用偏回归系数for i=1:M-1for j=1:NLiy(i)=Liy(i)+(test(i+1,j)-eqx(i)*(test(1,j)-eqy);endendU=0;for i=1:M-1U=U+b(i+1)*Liy(

10、i);endQ仁Lyy-U;F1=(U/(M-1)/(Q1/(N-M);%命令窗口中显示回归方程 disp('')disp( 'F-分布检验:')stri= 'F 计算值:'strin='方法一:',num2str(F0),'方法二:',num2str(F1);strin g='自由度:','f仁',nu m2str(M-1),', f2=' ,n um2str(N-M);st=cat(2,stri,stri n);disp(stri ng)disp(st)disp(

11、'注:1.请对照F-分布表找到所需置信水平下的F临界值Fa,若F>Fa,则通过检验。')')方法二用的是偏回归系数。附(数据较多,显示不便,直接复制到1 49356.mat文件中即可)50164;0 013 6 7 5 5 09 5 1 8 4 0694354 4 52 3 53 3 33 5 6117017075 4 48 32 20 17 32 6319086 53 72 10 32 95 77714770515178 2 8 4 4 8 1 8 2 2607661110227867651915333333335344437554564375Q14782838

12、222353212114311712189712327447114516659370505467774 8753 43 19701 10 77 79 01 2 74 4337 03 4432 311 84 81 6384 4 4 4121591511381 15 52 96 112703 3033 31 11 37 37 221385 43 93 39 80 5 49 7 23 3 38 8 889377303358 1 93 5 32 1 13 4 41 5 81 3 27817642 12 37 61 72319769215302 578 33 1 10 2 44 5 25 5 1disp

13、( ' 2.方法一求回归平方和时用到了因变量的拟合值,K阶自回归拟合及二阶自回归预测的Matlab实现% k阶自回归及二阶自回归预测%数据格式:单行%数据文件名:data_zhg.mat,变量名:testclear,clcload data_zhg.matM=le ngth(test);k=input('请输入自回归阶数:);y=zeros(k+1,M-k);for i=1:k+1y(i,:)=test(i:i+M-k-1);endy=flipud(y);m,N=size(y);Y=y(1,:)'X=cat(2, on es(N,1),y(2:e nd,:)')

14、;A=X'*X;B=X'*Y;b=AB;format long gstr='首项为常数项,其余系数按距离预测值远近排列为:',num2str(b');disp(str)炉元自回归预测if k=2Yuce2=b(1)+b(2)*test(M)+b(3)*test(M-1);str='二阶自回归预测下一个值为:,num2str(Yuce2);disp(str)end附(直接粘贴到.mat文件中即可):4401.7931493303301031093639325334663839389440094253410141194258.44.66.3.61.2

15、1.8.5.9.66.61.25.5.88.65一次指数平滑预测的matlab实现一次指数平滑及其预测%数据格式:单行(按时间序列排序)%数据文件名:data_ph.mat,变量名:testload data_ph.matM=le ngth(test);disp('参考:时间序列稳定、数据波动较小时,a取(0.05,0.3);否则取(0.7,0.95)')a=input('请输入平滑系数a:');y=zeros(1,M);for i=1:Mfor j=0:i-1y(i)=y(i)+test(i-j)*a*(1-a)Aj;endendyy=a*test(M)+(1

16、-a)*y(M);format compactformat shortdata=test,result=yformatstr='下一时段数值预测:',num2str(yy);disp(str)附(直接复制到.mat文件中即可):(某城市1999-2004年用水量数据)211.3 260.18209.1248.79241250n次指数平滑及其预测%数据格式:单行(按时间序列排序)%数据文件名:data_ph.mat,变量名:testload data_ph.matM=le ngth(test);disp('参考:时间序列稳定、数据波动较小时,a取(0.05,0.3);否则

17、取(0.7,0.95)')a=input('请输入平滑系数a:');k=input('请输入平滑次数:);y0=test;y=zeros(1,M);for t=1:kfor i=1:Mfor j=0:i-1y(i)=y(i)+y0(i-j)*a*(1-aFj;endendif t=ky0=y;endendyy=a*y0(M)+(1-a)*y(M);format compactformat shortdata=test,result=yformat附(直接复制到.mat文件中即可):(某城市1999-2004年用水量数据)211.3 260.18209.1248.

18、79241250一维数据移动平滑的matlab实现骨是为了消除偶然因素对地理变量的影响9以使地理变量随时间发展变化的趋势和方向明显化%常用的有三种:移动平均、滑动平均、指数平滑%数据格式:单行(按时间序列排序)%数据文件名:data_ph.mat,变量名:testload data_ph.matM=le ngth(test);k=input('请输入移动点数(时距):); y=zeros(1,M);if k<Mfor i=1:M-kfor j=1:ky(i+k)=y(i+k)+test(i+k-j);endy(i+k)=y(i+k)/k;endy(1:k)=NaN;yy=y(M)

19、+(y(M)-y(M-k)/k;str=int2str(k),'点移动平均结果如下:'disp(str)formatcompactformatshortdata=test,result=yif isnan(y(M-k)stri='预测下一时段数值为:',num2str(yy);disp(stri)elsedisp('移动点数太大,无法预测下一时段数值!endformatelsedisp( 'Error:数据个数不足!')end附(直接复制到.mat文件中即可):(某城市1999-2004年用水量数据)250211.3 260.18209.1248.79241K阶自相关系数的matlab实现(含置信度检验)%阶自相关系数的计算%数据格式:单行%数据文件名:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论