MATLAB一元线性回归方程的计算和检验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档