《实验11_统计回归模型(4学时).doc》由会员分享,可在线阅读,更多相关《实验11_统计回归模型(4学时).doc(59页珍藏版)》请在金锄头文库上搜索。
1、数学建模实验王平实验11 统计回归模型(4学时)(第10章 统计回归模型)1. 牙膏的销售量p325332下面给出一组数据,其中:第1列 销售周期;第2列 某公司牙膏销售价格(元)x4;第3列 其它厂家平均价格(元)x3;第4列 广告费用(百万元)x2;第5列 价格差(元)x1(x3-x4);第6列 销售量(百万支)y。存放在一个名为p325.txt的文件中。1 3.85 3.80 5.50 -0.05 7.382 3.75 4.00 6.75 0.25 8.513 3.70 4.30 7.25 0.60 9.524 3.70 3.70 5.50 0 7.505 3.60 3.85 7.00
2、0.25 9.336 3.60 3.80 6.50 0.20 8.287 3.60 3.75 6.75 0.15 8.758 3.80 3.85 5.25 0.05 7.879 3.80 3.65 5.25 -0.15 7.1010 3.85 4.00 6.00 0.15 8.0011 3.90 4.10 6.50 0.20 7.8912 3.90 4.00 6.25 0.10 8.1513 3.70 4.10 7.00 0.40 9.1014 3.75 4.20 6.90 0.45 8.8615 3.75 4.10 6.80 0.35 8.9016 3.80 4.10 6.80 0.30 8
3、.8717 3.70 4.20 7.10 0.50 9.2618 3.80 4.30 7.00 0.50 9.0019 3.70 4.10 6.80 0.40 8.7520 3.80 3.75 6.50 -0.05 7.9521 3.80 3.75 6.25 -0.05 7.6522 3.75 3.65 6.00 -0.10 7.2723 3.70 3.90 6.50 0.20 8.0024 3.55 3.65 7.00 0.10 8.5025 3.60 4.10 6.80 0.50 8.7526 3.65 4.25 6.80 0.60 9.2127 3.70 3.65 6.50 -0.05
4、8.2728 3.75 3.75 5.75 0 7.6729 3.80 3.85 5.80 0.05 7.9330 3.70 4.25 6.80 0.55 9.261.1(验证)基本模型p325329先保存上面的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是一个数据文件,存放一个数据
5、矩阵,将文件内容写入M。(1) 运行程序并给出结果(比较327图1):(2) 确定y对x1的拟合,绘制散点图与拟合曲线组合图形从y对x1的散点图可以发现,可用线性模型(直线)来拟合(其中是随机误差)。程序如下:clc; format short g;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;%使用矩阵乘法hold on;plot(x
6、1,y, -r);hold off;提示:regress多元线性回归函数调用格式b,bint,r,rint,stats=regress(y,x,alpha)例,多元回归模型为:输入:y为n(=30)维列向量数据。x为对应于回归系数 ( 0, 1, 2, 3 ) 的数据矩阵 1 x1 x2 x22(304矩阵,第1列全1)。alpha为置信水平(缺省时为0.05)。输出:b为=( 0, 1, 2, 3 )估计值,4维列向量。bint为b的置信区间,42矩阵。r为残差n(=30)维列向量y-x。rint为r的置信区间,302矩阵。stats为回归模型的检验统计量,含4个值:R2回归方程的决定系数(
7、R是相关系数)F统计值P与F统计量对应的概率值s2剩余方差(2) 运行程序并给出结果(比较327图1):(3) 绘制y对x2的散点图程序如下:clc; format short g;M=dlmread(p325.txt);%读取ASCII码文件x2=M(:,4); y=M(:,6);plot(x2,y,bo);(3) 运行程序并给出结果(比较327图2):(4) 确定y对x2的的拟合,绘制散点图与拟合曲线组合图形从y对x2的散点图可以发现,可用二次函数模型来拟合。程序如下:clc;format short g;M=dlmread(p325.txt);%读取ASCII码文件x2=M(:,4);
8、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; %使用矩阵乘法hold on;plot(x2,y,-r);hold off;(4) 运行程序并给出结果(比较327图2):(5) y对x1, x2的回归模型及其求解,销售量预测综上得回归模型变量x1, x2为回归变量,参数b0, b1, b2, b3为回归系数。程序如下:clc; format compact; format short g;M=dlmread(p325.tx
9、t);%读取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%11sn,参数,估计值,置信区间);%1个汉字算1个字符for i=1:length(b) fprintf (%1d%9.4f %7.4f, %7.4fn,i-1,b(i,:),bint(i,:);end % %d将i当整数输出,%7.4f按实数格式输出,区域宽7个字符,4位小数fprintf(nR2=%.4f F=%.4f p%.4e s2=%.4fn,s
10、tats); x1=0.2; x2=6.5; y=1 x1,x2,x22*b; %使用矩阵乘法fprintf(n销售量预测:x1=%.1f, x2=%.1f, y=%.4fn,x1,x2,y);提示:fprintf输出到命令窗口或写数据到文本文件见参考资料:MATLAB函数和命令的用法。(5) 运行程序并给出结果(比较328表2,329的预测结果):1.2(验证,编程)模型改进p329332仍使用题1的数据。(1)(编程)y对x1, x2的回归模型的改进和求解,销售量预测改进的模型参考题1(5)的程序,编写一个类似的程序,运行结果与教材p329330的表3及相关结果相比较。(1) 给出程序和运
11、行结果(比较329表3):clc; format compact; format short g;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%11sn,参数,估计值,置信区间);%1个汉字算1个字符for i=1:length(b) fprintf (%1d%9.4f %7.4f, %7.4fn,i-1,b(i,:),bint(i,:);end % %d
12、将i当整数输出,%7.4f按实数格式输出,区域宽7个字符,4位小数fprintf(nR2=%.4f F=%.4f p%.4e s2=%.4fn,stats); x1=0.2; x2=6.5; y=1 x1,x2,x22,x1.*x2*b; %使用矩阵乘法fprintf(n销售量预测:x1=%.1f, x2=%.1f, y=%.4fn,x1,x2,y);(2)(验证)完全二次多项式模型运行以下程序(参考教材p331332):clear; clc; format compact; format short g;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个复选框是“将拟合参数存到一个名为be