MATLAB一元线性回归方程的计算和检验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验名称
一元线性回归方程的计算和检验
二、实验目的
(1)
掌握多种方法求解一元线性回归方程并检验; (2)
掌握曲线拟合的最小二乘法; (3)
培养编程与上机调试能力; (4)
熟悉Matlab6.5.1软件环境.
三、实验要求
(1) 从键盘输入一组数据(x i ,y i ),i=1,2,…n 。
(2) 计算一元线性回归方程y=ax+b 的系数a 和b ,用两种方法计算: 一是公式:x a y b x x y y x x a i
i
i -=---=∑∑,)())((2
; 二是用最小二乘法的公式求出最小值点(a,b ),使
∑--=2)(min },(b ax y b a Q i i .
(3) 检验回归方程是否有效(用F 分布检验)。
(4) 把散列点(x i ,y i )和回归曲线y=ax+b 画在一个图上。
(5) 每种计算法都要有计算框图,且每种计算法都要编成一个自定义函数。
五、程序及其运行结果
程序:
function yiyuanhuigui
clc;
disp('从键盘输入一组数据:');
x=input('X 的数(以向量形式输入):');
y=input('Y 的数(以向量形式输入):');
disp('一元线性回归方程的计算和检验:');
disp('1、公式法');
disp('2、最小二乘法');
disp('3、检验并画图');
disp('0、退出');
global a0 b0;
while 3
num=input('选择求解一元回归方程的方法:');
switch num
case 1
[a0,b0]=huigui(x,y)
case 2
[a0,b0]=zxec(x,y)
case 3
break;
case 0
return;
otherwise
disp('输入错误,请重新输入!');
end
end
X=x';Y=y';
X=[ones(size(X)),X];alpha=0.5;
%输出向量b,bint为回归系数估计值和它们的置信区间;
%r1,rint为残差及其置信区间,stats是用于检验回归模型的统计量,第一个是R^2,其中R %是相关系数,第二个是F统计量值,第三个是与统计量F对应的概率P,第四个是估计误差方差
[b,bint,e,rint,stats]=regress(Y,X)
if stats(3) end n=[min(x):0.1:max(x)]; f=a0*n+b0; plot(x,y,'b.',n,f,'r'),grid on,hold on; %画出散列点和一元线性回归图像 xlabel('x');ylabel('y');legend('散列点','一元线性回归图像'); title('散列点和一元线性回归图像'); end %*****************************公式法 function [a0,b0]=huigui(x,y) n=length(x); x1=0;y1=0; for i=1:n x1=x1+x(i); y1=y1+y(i); end x0=x1/n; %求得平均 y0=y1/n; a1=0;a2=0; for j=1:n a1=a1+(x(j)-x0)*(y(j)-y0); a2=a2+(x(j)-x0)*(x(j)-x0); end a0=a1/a2; b0=y0-a0*x0; x2=min(x):0.05:max(x); y2=a0*x2+b0; end %***************************** 最小二乘法function [a0,b0]=zxec(x,y) m=length(x); R=[x' ones(m,1)];a=R\y'; a0=a(1);b0=a(2); end