实验11统计回归模型4学时.docx

上传人:b****5 文档编号:12018099 上传时间:2023-04-16 格式:DOCX 页数:68 大小:2.48MB
下载 相关 举报
实验11统计回归模型4学时.docx_第1页
第1页 / 共68页
实验11统计回归模型4学时.docx_第2页
第2页 / 共68页
实验11统计回归模型4学时.docx_第3页
第3页 / 共68页
实验11统计回归模型4学时.docx_第4页
第4页 / 共68页
实验11统计回归模型4学时.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

实验11统计回归模型4学时.docx

《实验11统计回归模型4学时.docx》由会员分享,可在线阅读,更多相关《实验11统计回归模型4学时.docx(68页珍藏版)》请在冰豆网上搜索。

实验11统计回归模型4学时.docx

实验11统计回归模型4学时

实验11统计回归模型(4学时)

(第10章统计回归模型)

1.牙膏的销售量p325~332

下面给出一组数据,其中:

第1列销售周期;

第2列某公司牙膏销售价格(元)x4;

第3列其它厂家平均价格(元)x3;

第4列广告费用(百万元)x2;

第5列价格差(元)x1(x3-x4);

第6列销售量(百万支)y。

存放在一个名为p325.txt的文件中。

13.853.805.50-0.057.38

23.754.006.750.258.51

33.704.307.250.609.52

43.703.705.5007.50

53.603.857.000.259.33

63.603.806.500.208.28

73.603.756.750.158.75

83.803.855.250.057.87

93.803.655.25-0.157.10

103.854.006.000.158.00

113.904.106.500.207.89

123.904.006.250.108.15

133.704.107.000.409.10

143.754.206.900.458.86

153.754.106.800.358.90

163.804.106.800.308.87

173.704.207.100.509.26

183.804.307.000.509.00

193.704.106.800.408.75

203.803.756.50-0.057.95

213.803.756.25-0.057.65

223.753.656.00-0.107.27

233.703.906.500.208.00

243.553.657.000.108.50

253.604.106.800.508.75

263.654.256.800.609.21

273.703.656.50-0.058.27

283.753.755.7507.67

293.803.855.800.057.93

303.704.256.800.559.26

1.1(验证)基本模型p325~329

先保存上面的p325.txt文件。

(1)绘制y对x1的散点图

程序如下:

M=dlmread('p325.txt');%读取ASCII码文件

x1=M(:

5);y=M(:

6);

plot(x1,y,'bo');

[提示:

dlmread将以ASCII码分隔的数值数据文件读入到矩阵中]

dlmread:

读取ASCII码文件的MATLAB函数

M=dlmread('fun.txt');

fun.m是一个数据文件,存放一个数据矩阵,将文件内容写入M。

(1)运行程序并给出结果(比较[327]图1):

(2)确定y对x1的拟合,绘制散点图与拟合曲线组合图形

从y对x1的散点图可以发现,可用线性模型(直线)

来拟合(其中ε是随机误差)。

程序如下:

clc;formatshortg;

M=dlmread('p325.txt');%读取ASCII码文件

x1=M(:

5);y=M(:

6);

plot(x1,y,'bo');

b=regress(y,[ones(size(x1)),x1]);%b=[β0β1]',列向量

x1=sort(x1);%按升序排序,用于画图

y=[ones(size(x1)),x1]*b;%使用矩阵乘法

holdon;

plot(x1,y,'-r');

holdoff;

[提示:

regress多元线性回归函数调用格式]

[b,bint,r,rint,stats]=regress(y,x,alpha)

例,多元回归模型为:

输入:

y为n(=30)维列向量数据。

x为对应于回归系数(β0,β1,β2,β3)'的数据矩阵[1x1x2x22](30×4矩阵,第1列全1)。

alpha为置信水平(缺省时为0.05)。

输出:

b为β=(β0,β1,β2,β3)'估计值,4维列向量。

bint为b的置信区间,4×2矩阵。

r为残差n(=30)维列向量y-xβ。

rint为r的置信区间,30×2矩阵。

stats为回归模型的检验统计量,含4个值:

R2回归方程的决定系数(R是相关系数)

F统计值

P与F统计量对应的概率值

s2剩余方差

(2)运行程序并给出结果(比较[327]图1):

(3)绘制y对x2的散点图

程序如下:

clc;formatshortg;

M=dlmread('p325.txt');%读取ASCII码文件

x2=M(:

4);y=M(:

6);

plot(x2,y,'bo');

☆(3)运行程序并给出结果(比较[327]图2):

(4)确定y对x2的的拟合,绘制散点图与拟合曲线组合图形

从y对x2的散点图可以发现,可用二次函数模型

来拟合。

程序如下:

clc;formatshortg;

M=dlmread('p325.txt');%读取ASCII码文件

x2=M(:

4);y=M(:

6);

plot(x2,y,'bo');

b=regress(y,[ones(size(x2)),x2,x2.^2]);%b=[β0β1β2]',列向量

x2=sort(x2);

y=[ones(size(x2)),x2,x2.^2]*b;%使用矩阵乘法

holdon;

plot(x2,y,'-r');

holdoff;

☆(4)运行程序并给出结果(比较[327]图2):

(5)y对x1,x2的回归模型及其求解,销售量预测

综上得回归模型

变量x1,x2为回归变量,参数β0,β1,β2,β3为回归系数。

程序如下:

clc;formatcompact;formatshortg;

M=dlmread('p325.txt');%读取ASCII码文件

x1=M(:

5);x2=M(:

4);y=M(:

6);

[b,bint,r,rint,stats]=regress(y,[ones(size(x1)),x1,x2,x2.^2],0.05);

fprintf('%2s%5s%11s\n','参数','估计值','置信区间');%1个汉字算1个字符

fori=1:

length(b)

fprintf('β%1d%9.4f[%7.4f,%7.4f]\n',i-1,[b(i,:

),bint(i,:

)]);

end%%d将i当整数输出,%7.4f按实数格式输出,区域宽7个字符,4位小数

fprintf('\nR2=%.4fF=%.4fp<%.4es2=%.4f\n',stats);

x1=0.2;x2=6.5;y=[1x1,x2,x2^2]*b;%使用矩阵乘法

fprintf('\n销售量预测:

x1=%.1f,x2=%.1f,y=%.4f\n',x1,x2,y);

[提示:

fprintf输出到命令窗口或写数据到文本文件]

见参考资料:

MATLAB函数和命令的用法。

☆(5)运行程序并给出结果(比较[328]表2,[329]的预测结果):

1.2(验证,编程)模型改进p329~332

仍使用题1的数据。

(1)(编程)y对x1,x2的回归模型的改进和求解,销售量预测

改进的模型

参考题1(5)的程序,编写一个类似的程序,运行结果与教材p329~330的表3及相关结果相比较。

(1)给出程序和运行结果(比较[329]表3):

clc;formatcompact;formatshortg;

M=dlmread('p325.txt');%读取ASCII码文件

x1=M(:

5);x2=M(:

4);y=M(:

6);

[b,bint,r,rint,stats]=regress(y,[ones(size(x1)),x1,x2,x2.^2,x1.*x2],0.05);

fprintf('%2s%5s%11s\n','参数','估计值','置信区间');%1个汉字算1个字符

fori=1:

length(b)

fprintf('β%1d%9.4f[%7.4f,%7.4f]\n',i-1,[b(i,:

),bint(i,:

)]);

end%%d将i当整数输出,%7.4f按实数格式输出,区域宽7个字符,4位小数

fprintf('\nR2=%.4fF=%.4fp<%.4es2=%.4f\n',stats);

x1=0.2;x2=6.5;y=[1x1,x2,x2^2,x1.*x2]*b;%使用矩阵乘法

fprintf('\n销售量预测:

x1=%.1f,x2=%.1f,y=%.4f\n',x1,x2,y);

(2)(验证)完全二次多项式模型

运行以下程序(参考教材p331~332):

clear;clc;formatcompact;formatshortg;

M=dlmread('p325.txt');%读取ASCII码文件

x1=M(:

5);x2=M(:

4);y=M(:

6);

rstool([x1,x2],y,'quadratic')

得以下的交互画面。

画面中的两个座标系给出y的估计值和预测区间。

用鼠标移动交互式画面中的十字线,或在图下方的窗口内输入,可改变x1和x2的数值。

改变x1=0.2,x2=6.5,观察窗口左边的y估计值和预测区间。

点击所得交互画面左下方的输出按钮“Export”,所得画面(导出到工作空间)第1个复选框是“将拟合参数存到一个名为beta的MATLAB变量中”,点击OK。

在命令窗口提示符键入变量名beta将得到参数(β0,β1,β2,β3,β4,β5)'的值。

(2)运行程序并给出结果:

参数(β0,β1,β2,β3,β4,β5)'的值(比较[331]):

2.软件开发人员的薪金p332~338

在下面给出的数据中:

(存入文件p333.txt)

第1列编号

第2列薪金y

第3列资历x1(从事专业工作的年数)

第4列管理x2(1表示管理人员,0表示非管理人员)

第5列教育x3,x4(1表示中学程度x3x4=10,2为大学x3x4=01,3为更高程度x3x4=00)

0113876111

0211608103

0318701113

0411283102

0511767103

0620872212

0711772202

0810535201

0912195203

1012313302

1114975311

1221371312

1319800313

1411417401

1520263413

1613231403

1712884402

1813245502

1913677503

2015965511

2112366601

2221352613

2313839602

2422884612

2516978711

2614803802

2717404811

2822184813

2913548801

30144671001

31159421002

32231741013

33237801012

34254101112

35148611101

36168821202

37241701213

38159901301

39263301312

40179491402

41256851513

42278371612

43188381602

44174831601

45192071702

46193462001

假设满足多元线性回归模型

y=α0+α1x1+α2x2+α3x3+α4x4+ε

2.1(验证)基本模型p332~335

求回归系数及其置信区间(置信水平α=0.05)、检验统计量R2、F、p、s2,有关散点图的MATLAB程序如下:

%10.2软件开发人员的薪金——基本模型

%模型:

y=α0+α1*x1+α2*x2+α3*x3+α4*x4+ε

clear;clc;formatcompact;formatshortg;

M=dlmread('p333.txt');%读取ASCII码文件

y=M(:

2);x1=M(:

3);x2=M(:

4);

x3=M(:

5)==1;x4=M(:

5)==2;%教育程度

[a,aint,r,rint,stats]=regress(y,[ones(size(M,1),1)x1x2x3x4]);

fprintf('%2s%4s%9s\n','参数','估计值','置信区间');%1个汉字算1个字符

fori=1:

length(a)

fprintf('α%1d%7.0f[%5.0f,%5.0f]\n',i-1,[a(i,:

),aint(i,:

)]);

end

fprintf('\nR2=%.3fF=%.0fp<%.4es2=%.3e\n',stats);

subplot(121);

plot(x1,r,'+');%模型的残差ε与资历x1的关系

subplot(122);

x234=(1+M(:

4)).*(M(:

5)==1)+(3+M(:

4)).*(M(:

5)==2)...

+(5+M(:

4)).*(M(:

5)==3);%见p336表3

plot(x234,r,'+');%模型的残差ε与管理-教育x2-x3,x4组合x234的关系

☆给出程序的运行结果(数据和图形)(比较[334],[335]):

数据结果(比较[334]表2):

图形结果(比较[335]图1、图2):

2.2(编程)更好的模型p335~336

在题2.1的模型中增加x2与x3,x4的交互项后,多元线性回归模型为

y=α0+α1x1+α2x2+α3x3+α4x4+α5x2x3+α6x2x4+ε

要求:

同题2.1,区别在于模型不同,所以要根据新模型修改题2.1的程序,仍后运行。

★给出程序和运行结果(程序、数据和图形)(比较[336]表4、图3、图4):

程序:

%10.2软件开发人员的薪金——基本模型

%模型:

y=α0+α1*x1+α2*x2+α3*x3+α4*x4+ε

clear;clc;formatcompact;formatshortg;

M=dlmread('p333.txt');%读取ASCII码文件

y=M(:

2);x1=M(:

3);x2=M(:

4);

x3=M(:

5)==1;x4=M(:

5)==2;%教育程度

[a,aint,r,rint,stats]=regress(y,[ones(size(M,1),1)x1x2x3x4x2.*x3x2.*x4]);

fprintf('%2s%4s%9s\n','参数','估计值','置信区间');%1个汉字算1个字符

fori=1:

length(a)

fprintf('α%1d%7.0f[%5.0f,%5.0f]\n',i-1,[a(i,:

),aint(i,:

)]);

end

fprintf('\nR2=%.3fF=%.0fp<%.4es2=%.3e\n',stats);

subplot(121);

plot(x1,r,'+');%模型的残差ε与资历x1的关系

subplot(122);

x234=(1+M(:

4)).*(M(:

5)==1)+(3+M(:

4)).*(M(:

5)==2)...

+(5+M(:

4)).*(M(:

5)==3);%见p336表3

plot(x234,r,'+');%模型的残差ε与管理-教育x2-x3,x4组合x234的关系

数据结果(比较p336表4):

图形结果(比较p336图3、图4):

2.3(编程,验证)模型应用p337~338

在题2.1的模型中增加x2与x3,x4的交互项后,多元线性回归模型为

y=α0+α1x1+α2x2+α3x3+α4x4+α5x2x3+α6x2x4+ε

(1)(编程)同题2.2,但要去除题2.1中给出数据中编号为33的数据(异常点)

(1)给出程序和运行结果(数据和图形)(比较[337]表5、图5、图6):

程序:

%10.2软件开发人员的薪金——基本模型

%模型:

y=α0+α1*x1+α2*x2+α3*x3+α4*x4+ε

clear;clc;formatcompact;formatshortg;

M=dlmread('p333.txt');%读取ASCII码文件

M(33,:

)=[];

y=M(:

2);x1=M(:

3);x2=M(:

4);

x3=M(:

5)==1;x4=M(:

5)==2;%教育程度

[a,aint,r,rint,stats]=regress(y,[ones(size(M,1),1)x1x2x3x4x2.*x3x2.*x4]);

fprintf('%2s%4s%9s\n','参数','估计值','置信区间');%1个汉字算1个字符

fori=1:

length(a)

fprintf('α%1d%7.0f[%5.0f,%5.0f]\n',i-1,[a(i,:

),aint(i,:

)]);

end

fprintf('\nR2=%.3fF=%.0fp<%.4es2=%.3e\n',stats);

subplot(121);

plot(x1,r,'+');%模型的残差ε与资历x1的关系

subplot(122);

x234=(1+M(:

4)).*(M(:

5)==1)+(3+M(:

4)).*(M(:

5)==2)...

+(5+M(:

4)).*(M(:

5)==3);%见p336表3

plot(x234,r,'+');%模型的残差ε与管理-教育x2-x3,x4组合x234的关系

数据结果(比较p337表5):

图形结果(比较p337图5、图6):

(2)(验证)6种管理—教育组合人员的“基础”薪金(资历为0)。

组合

管理教育“基础”薪金

资历

1

01?

0

2

11?

0

3

02?

0

4

12?

0

5

03?

0

6

13?

0

利用

(1)所求得的模型求解,程序如下(与教材p337表6比较):

clear;clc;formatcompact;formatshortg;

M=dlmread('p333.txt');%读取ASCII码文件

M(33,:

)=[];%修改

y=M(:

2);x1=M(:

3);x2=M(:

4);

x3=M(:

5)==1;x4=M(:

5)==2;%教育程度

[a,aint,r,rint,stats]=regress(y,[ones(size(M,1),1)x1x2x3x4x2.*x3x2.*x4]);

x1=zeros(6,1);%资历为0

x2=[010101]';%管理

x3=[110000]';%教育

x4=[001100]';

y=[ones(6,1),x1,x2,x3,x4,x2.*x3,x2.*x4]*a;

fprintf('%2s%4s%4s%8s\n','组合','管理','教育','“基础”薪金');%1个汉字算1个字符

fork=1:

6

fprintf('%3d%6d%6d%11.0f\n',k,x2(k),fix((k+1)/2),y(k));

end

(2)运行程序并给出结果(比较[337]表6):

3.酶促反应p338~345

嘌呤霉素实验中的反应速度与底物浓度数据

底物浓度

(ppm)

0.02

0.06

0.11

0.22

0.56

1.10

反应

速度

处理

76

47

97

107

123

139

159

152

191

201

207

200

未处理

67

51

84

86

98

115

131

124

144

158

160

/

3.1(编程)线性化模型p338~340

(1)根据给出的数据,试编写一个程序绘制出如下图所示的散点图(比较:

p339图1、图2)

(1)给出程序和运行结果(比较[339]图1、图2):

程序:

clear;clc;formatcompact;formatshortg;

M=dlmread('p338.txt');%读取ASCII码文件

y=M(2,1:

2:

11);y2=M(2,2:

2:

12);x1=M(1,1:

6);x2=M(1,1:

5);

y4=M(3,1:

2:

11);y3=M(3,2:

2:

10);

subplot(1,2,1)

plot(x1,y,'bo');

holdon;

plot(x1,y2,'bo');

title('y对x经处理的散点图');

subplot(1,2,2)

plot(x1,y4,'+');

holdon;

plot(x2,y3,'+');

title('y对x未经处理的散点图');

图形(比较p339图1、图2):

(2)线性化模型

Michaelis-Menten模型

通过代换

可化为线性模型

试编写一个程序,对经过处理的实验数据,求出:

(a)参数的估计;

(b)1/y与1/x的散点图和回归直线;

(c)用线性化得到的原始数据拟合图。

程序运行的结果如下:

p340表2

p339图3、p340图4

(2)给出程序和运行结果(比较[339],[340]):

程序:

数据结果(比较p340表2):

图形(比较p339图3、p340图4):

3.2(验证)非线性模型及求解p340~341

Michaelis-Menten模型

[提

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1