matlab在数据统计中的应用.docVIP

  • 3
  • 0
  • 约6.19千字
  • 约 13页
  • 2021-10-15 发布于江苏
  • 举报
MATLAB在数据统计中的应用 ———————————————————————————————— 作者: ———————————————————————————————— 日期: MATLAB在数据统计中的应用 ______________________________________________ 目录: 1、一元线性回归的matlab实现〔含检验〕【更新】 2、一维数据滑动平均的matlab实现 3、多元线性回归的matlab实现 4、K阶自回归拟合及二阶自回归预测的Matlab实现 5、一次指数平滑预测的matlab实现 6、n次指数平滑及其预测 7、一维数据移动平滑的matlab实现 8、K阶自相关系数的matlab实现〔含置信度检验〕 说明: 1.正文中命令局部可以直接在Matlab中运行,作者(Yangfd09)在MATLAB R2021a(7.8.0.347)中运行通过。 2.限于作者水平问题,文中难免疏漏和错误,如蒙赐教,不胜感谢! 3.原创作品,仅供学习交流之用,会有不定期更新。 一元线性回归的matlab实现〔含检验〕【更新】 %求一元线性回归方程 %数据要求:两行。第一行存放x的观察值,第二行存放y的观察值 %数据文件名:data_yyhg.mat;变量名:test N=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:N sx=sx+test(1,i); sx2=sx2+test(1,i)^2; sy=sy+test(2,i); sy2=sy2+test(2,i)^2; 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)^2; end r=[N,sx;sx,sx2]\[sy;sxy]; a=r(1);b=r(2); %F分布检验 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:N ssd=ssd+(test(2,i)-y(i))^2; ssr=ssr+(y(i)-eq)^2; end sst=ssd+ssr; RR=ssr/sst; %命令窗口中显示回归方程 str=[blanks(5),y=,(,num2str(a),),+,(,num2str(b),),*x]; disp( ) disp(回归方程为:) disp(str) disp(R^2拟合优度检验:) strin=[R^2=,num2str(RR)]; disp(strin) disp(F-分布显著性检验:) stri=[F计算值:,num2str(F),blanks(4),自由度:f1=1,f2=,num2str(N-2)]; disp(stri) disp(注:请对照F-分布表找到所需置信水平下的F临界值Fa,假设FFa,那么通过检验。) %绘制x-y散点图和回归直线 yy=a+b*test(1,:); plot(test(1,:),test(2,:),r.),hold on plot(test(1,:),yy,b-),hold off title(str) 附〔可以直接粘贴到.mat文件中〕: 4 8 45 一维数据滑动平均的matlab实现 %滑动平均 %数据格式:单行(按时间序列排序) %数据文件名:data_ph.mat,变量名:test load M=length(test); disp(请输入单侧平滑点数〔时距〕) k=input(〔输入1对应于三点平滑,2对应五点平滑〕:); y=zeros(1,M); if 2*k+1=M for i=1:M-2*k for j=i:i+2*k y(i+k)=y(i+k)+test(j); end y(i+k)=y(i+k)/(2*k+1); end y([1:k,M-k+1:M])=NaN; str=[int2str(k),点滑动平均结果如下:];

文档评论(0)

1亿VIP精品文档

相关文档