- 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)