1、实验十三商品需求量的预测【实验目的】1了解回归分析的基本原理和方法。2学习用回归分析的方法解决问题,初步掌握对变量进行预测和控制。3学习掌握用MATLAB命令求解回归分析问题。【实验内容】现有某种商品的需求量、消费者的平均收入、商品价格的统计数据如表1所示,试用所提供的数据预测消费者平均收入为1000、商品价格为6时的商品需求量。需求量10075807050659010011060收入10006001200500300400130011001300300价格5766875439【实验准备】现实生活中,一切事物都是相互关联、相互制约的。我们将变化的事物看作变量,那么变量之间的相互关系,可以分为两
2、大类:一类是确定性关系,也叫作函数关系,其特征是一个变量随着其它变量的确定而确定,如矩形的面积由长宽确定;另一类关系叫相关关系,其特征是变量之间很难用一种精确的方法表示出来,如商品销量与售价之间有一定的关联,但由售价我们不能精确地计算出销量。不过,确定性关系与相关关系之间没有一道不可逾越的鸿沟,由于存在实际误差等原因,确定性关系在实际问题中往往通过相关关系来体现;另一方面,当对事物内部规律了解得更加深刻时,相关关系也可能转化为确定性关系。1回归分析的基本概念回归分析就是处理变量之间的相关关系的一种数学方法,它是最常用的数理统计方法,能解决预测、控制、生产工艺化等问题。由相关关系函数确定形式的不
3、同,回归分析一般分为线性回归、非线性回归和逐步回归,在这里我们着重介绍线性回归,它是比较简单的一类回归分析,在实际问题的处理中也是应用得较多的一类。回归分析中最简单的形式是(、为标量) (1)固定的未知参数,称为回归系数,自变量称为回归变量,是均值为零的随机变量,它是其他随机因素对的影响,是不可观察的,我们称(1)为一元线性回归。它的一个自然推广是是多元变量,形如 (2)2,我们称为多元线性回归,或者更有一般地 (3)其中(,),(1,)是已知函数,称为非线性回归(也叫曲线或曲面回归)。不难看出,对自变量作变量替换,一般能够将非线性回归(3)转化为线性回归(2)的形式进行求解分析,所以我们着重
4、讨论线性回归的内容。对(2)式两边同时取数学期望得(0,)(4)其中 1 1 (,)T,(,)T(4)式称为线性回归方程。线性回归分析所要考虑的主要任务是:用试验值(样本值)对未知参数和作点估计,同时对估计值作假设检验,从而确立与,之间的数量关系;在(,)处对值作预测与控制,即对作区间估计。这里我们均假设样本容量大于变量个数,即1。2模型的参数估计和假设检验用最小二乘法估计模型(4)中的参数,作离差平方和 (5)求使得达到最小。根据微积分学中求极值的方法,只需求关于,一阶导数为0的方程组的解,此解不是,的真值,而是的最小二乘估计值,我们用,表示 (6)将的估计值,代入回归方程(4)得到的估计值
5、7)拟合误差称为残差,可作为随机误差的估计,而 (8)为残差平方和(或剩余平方和),即。在实际问题中,事先我们并不知道或者不能断定随机变量与一组变量,之间有线性关系,如(2)式往往只是一种假设,因此在求出线性回归方程后,还须对求出的线性回归方程同实际观测数据拟合效果进行检验,可提出以下原假设:0(9)采用检验法或检验法(详细内容在数理统计类书籍中均可查到,此处不再赘述),拒绝,则认为与,之间显著地有线性关系;否则就接受,认为与,之间线性关系不显著。3变量的预测与控制当回归模型和系数通过了假设检验后,可由给定的(,)预测出,是随机的,显然由回归方程(7)知道,其预测值(点估计)为(10)对于给
6、定的显著水平,可以算出的预测区间(区间估计),结果较复杂,但当较大且接近平均值,的预测区间可简化为,(11)其中是标准正态分布的1分位数。对于的区间估计方法可用于给出已知随机数据的残差的置信区间,服从均值为零的正态分布,所以若某个的置信区间不包括零点,则认为这个数据是异常的,可予以剔除。4MATLAB统计工具箱中的回归分析命令多元线性回归模型(4)可采用命令regress,此命令也可用于求解一元线性回归,其格式如下所示:b = regress( y , x )确定回归系数的点估计值; b , bint , r , rint , stats = regress( y , x , alpha )求
7、回归系数的点估计和区间估计,y,x的定义见(4),b为回归系数的点估计值,见(6);alpha为显著性水平(缺省时为0.05);bint为回归系数的区间估计;r和rint分别为残差及其置信区间;stats:13检验统计量,第一值是回归方程的置信度,越接近1说明回归方程越显著;第二值是F统计量,FF1a(k,nk1)时拒绝H0,F越大说明回归方程越显著;第三个是与F统计量相对应的概率p,pa时拒绝H0,说明回归方程系数不为0,线性回归方程模型成立;rcoplot( r , rint )对用regress命令求得的残差和残差置信区间作图,当残差离零点的数据数目比较多时,可认为回归方程显著性越大,对
8、于置信区间不包括零点的,可以视为异常点;多元二项式回归用命令rstool,格式如下:rstool( x , y , model , alpha , xname , yname )输入数据x,y分别为nm矩阵和n维列向量;alpha为显著性水平(缺省时为0.05);xname , yname分别是x轴和y轴的标签,可省略;model由下列4个模型中选择1个(缺省为线性):linear(线性):purequadratic(纯二次):interaction(交叉):quadratic(完全二次):rstool产生有m个图形的交互画面,每个图给出独立变量xi(另m1个变量固定)与y的拟合曲线;图中Ex
9、port菜单向MATLAB工作区输送回归系数等参数;Model菜单对上述4模型比较剩余标准差,其中剩余标准差最接近0的模型最好。对于非线性回归模型的求解命令我们也一并给出,可用命令nlinfit,nlintool,nlpredci来实现,其格式如下: beta , r , J = nlinfit( x , y , FUN , beta0 ) x,y为nm矩阵和n维列向量;FUN为事先用M定义的非线性函数;beta0为回归系数beta的初值;J估计预测误差用;nlintool( x , y , FUN , beta0 , alpha )其输出画面与rstool命令类似; ypred , delt
10、a = nlpredci( FUN , x , beta , r , J )求nlinfit或nlintool所得的回归函数在x处的预测值ypred及显著水平为1alpha置信区间ypreddelta。【实验方法与步骤】1引例问题的分析求解由问题提供的数据,我们可以初步判断,商品的需求量与消费者的平均收入和商品价格之间存在某种相关关系,具体的函数关系式我们还不清楚。输入三组数据,我们先独立分析商品需求量与消费者平均收入,商品需求量与价格之间存在何种关系: x1=1000 600 1200 500 300 400 1300 1100 1300 300;%消费者的平均收入 x2=5 7 6 6 8
11、 7 5 4 3 9;%商品价格 y=100 75 80 70 50 65 90 100 110 60;%商品的需求量 plot(x1,y,+)%以消费者的平均收入和商品的需求量所对应的离散点作图 plot(x2,y,+)% 以商品的价格和商品的需求量所对应的离散点作图由上面两图我们看到商品的需求量随着消费者平均收入增加呈线性递增的趋势,而随着商品的价格增加呈线性递减趋势,这样我们可初步判断商品需求量与消费者平均收入和商品价格之间存在某种线性相关的关系。接下来用多元线性回归来进行分析检验: x=ones(10,1) x1 x2; b,bint,r,rint,stats=regress(y,x)
12、b = 111.6918 0.0143 -7.1882bint = 56.0503 167.3334-0.0120 0.0406-13.2306 -1.1458stats = 0.8944 29.6533 0.0004可知回归系数111.6918,0.0143,-7.1882,它们的置信区间为bint,均包含了回归系数的估计值,stats第一个分量为0.8944,第三个分量p0.00040.05,拒绝H0,说明回归方程系数不为0,线性回归方程模型111.69180.01437.1882(12)成立。继续对残差进行分析,作残差图: rcoplot(r,rint)从残差图可以看出,大多数数据的残差
13、离零点较近,且残差的置信区间全部包含零点,这进一步说明回归模型(12)能近似地符合原始数据。现利用线性回归方程对引例问题的要求作出预测,1000,6 z=111.6918+0.0143*1000-7.1882*6z = 82.8626得到结果,当消费者平均收入为1000、商品价格为6时的商品需求量大约为82.8626。【结果分析】利用线性回归分析所得结果,我们看到stats第一个分量为0.8944,它并不十分接近1,且部分残差离零点较远,这说明回归模型还存在缺陷,几个随机变量之间的线性关系有待改进,我们不妨用多元二项式回归来试验: x=x1,x2; rstool(x,y,purequadrat
14、ic)得到一交互式画面,左图是x2固定时曲线y(x1)及置信区间,右图是x1固定时曲线y(x2) 及置信区间。在x1,x2指示框中分别输入1000和6,即预测到平均收入为1000、价格为6时商品需求量为88.4791。在下拉列表框Export中选择“all”,把beta(回归系数)、rmse(剩余标准差)和residuals(残差)传送到MATLAB工作区,在命令框中输入 beta,rmse,residuals即可得beta、rmse、residuals的数值beta = 110.5313 0.1464 -26.5709 -0.0001 1.8475rmse = 4.5362在Model下拉列
15、表菜单对linear、purequadratic、interaction、quadratic4模型比较剩余标准差,其中purequadratic型的剩余标准差4.5362相比其它3个模型的剩余标准差最接近于0,故此回归模型的显著性较好。我们用纯二次回归模型所得的残差与前面线性回归模型所得的残差列表进行比较纯二次5.2724 -0.7162-4.5158-1.9390-3.33153.45663.4843-3.4452-0.09761.8320线性9.9523 5.0477-5.7188-5.7109-8.4750-2.0929-4.33681.33441.28678.7133显然由二元纯二次多
16、项式所得残差绝大多数要比由线性回归模型所得残差更接近零点,由最小二乘法原理我们可以相信,改进后的回归模型110.53130.146426.57090.00011.8475能够更好地近似原始数据。【练习与思考】1电影院调查电视广告费用和报纸广告费用对每周收入的影响,得到下面的数据,建立回归模型并进行检验,诊断是否有异常点。每周收入9690959295959494电视广告费用1.52.01.52.53.32.34.22.5报纸广告费用5.02.04.02.53.03.52.53.02由成年女子身高与裤长的样本,研究成年女子身高与裤长的潜在关系。制定服装标准时,抽样测量了15个成年女子身高与裤长的数
17、据如下表(单位:cm)身高143145146147149150153154155156158159160162164裤长8885889192939395969897969899100试研究这些数据之间的潜在关系,并预测身高170(cm)的成年女子裤长为多少。3某建材实验室在作陶粒混凝土实验,考察每立方混凝土的水泥用量(kg)对于28天后抗压强度(kg /cm2)影响,测试所得数据如下:水泥用量150160170180190200210220230240250260抗压强度56.958.361.664.568.171.374.177.480.282.686.489.7试求抗压强度关系水泥用量的回归函数,相关系数,对于225(kg)时,预测抗压强度,并且给出的置信度为95%的预测区间。