您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 利用MATLAB进行多元线性回归
2.线性回归b=regress(y,X)[b,bint,r,rint,s]=regress(y,X,alpha)输入:y~因变量(列向量),X~1与自变量组成的矩阵,Alpha~显著性水平(缺省时设定为0.05)s:3个统计量:决定系数R2,F值,F(1,n-2)分布大于F值的概率p,p时回归模型有效输出:b=(),bint:b的置信区间,r:残差(列向量),rint:r的置信区间,ˆ,ˆ10rcoplot(r,rint)残差及其置信区间作图回归模型例3:血压与年龄、体重指数、吸烟习惯序号血压年龄体重指数吸烟习惯序号血压年龄体重指数吸烟习惯11443924.20211363625.0022154731.11221425026.2131384522.60231203923.50101545619.30301756927.41体重指数=体重(kg)/身高(m)的平方吸烟习惯:0表示不吸烟,1表示吸烟建立血压与年龄、体重指数、吸烟习惯之间的回归模型模型建立血压y,年龄x1,体重指数x2,吸烟习惯x33322110xxxyy与x1的散点图y与x2的散点图线性回归模型回归系数0,1,2,3由数据估计,是随机误差n=30;m=3;y=[144215138145162142170124158154162150140110128130135114116124136142120120160158144130125175];x1=[394745476546674267566456593442484518201936503921445363292569];x2=[24.231.122.624.025.925.129.519.727.219.328.025.827.320.121.722.227.418.822.621.525.026.223.520.327.128.628.322.025.327.4];x3=[0101101010100001000...00100110101];X=[ones(n,1),x1',x2',x3'];[b,bint,r,rint,s]=regress(y',X);s2=sum(r.^2)/(n-m-1);b,bint,s,s2rcoplot(r,rint)回归系数回归系数估计值回归系数置信区间045.3636[3.553787.1736]10.3604[-0.07580.7965]23.0906[1.05305.1281]311.8246[-0.148223.7973]R2=0.6855F=18.8906p0.0001s2=169.7917模型求解回归系数回归系数估计值回归系数置信区间058.5101[29.906487.1138]10.4303[0.12730.7332]22.3449[0.85093.8389]310.3065[3.387817.2253]R2=0.8462F=44.0087p0.0001s2=53.6604剔除异常点(第2点和第10点)后xueya01.m3213065.103449.24303.05101.58ˆxxxy此时可见第二与第十二个点是异常点,于是删除上述两点,再次进行回归得到改进后的回归模型的系数、系数置信区间与统计量回归系数回归系数估计值回归系数置信区间058.5101[29.906487.1138]10.4303[0.12730.7332]22.3449[0.85093.8389]310.3065[3.387817.2253]R2=0.8462F=44.0087p0.0001s2=53.6604这时置信区间不包含零点,F统计量增大,可决系数从0.6855增大到0.8462,我们得到回归模型为:3213065.103449.24303.05101.58ˆxxxy通常,进行多元线性回归的步骤如下:(1)做自变量与因变量的散点图,根据散点图的形状决定是否可以进行线性回归;(2)输入自变量与因变量;(3)利用命令:[b,bint,r,rint,s]=regress(y,X,alpha),rcoplot(r,rint)得到回归模型的系数以及异常点的情况;(4)对回归模型进行检验首先进行残差的正态性检验:jbtest,ttest其次进行残差的异方差检验:戈德菲尔德一匡特(Goldfeld—Quandt)检验戈德菲尔德检验,简称为G—Q检验.为了检验异方差性,将样本按解释变量排序后分成两部分,再利用样本1和样本2分别建立回归模型,并求出各自的残差平方和RSSl和RSS2。如果误差项的离散程度相同(即为同方差的),则RSSl和RSS2的值应该大致相同;若两者之间存在显著差异,则表明存在异方差.检验过程中为了“夸大”残差的差异性,一般先在样本中部去掉C个数据(通常取c=n/4),再利用F统计量判断差异的显著性:)12/)(,12/)((~)12/)/(()12/)/((1212kcnkcnFRSSRSSkcnRSSkcnRSSF其中,n为样本容量,k为自变量个数.然后对残差进行自相关性的检验,通常我们利用DW检验进行残差序列自相关性的检验。该检验的统计量为:nttnttteeeDW12221/)(其中为残差序列,对于计算出的结果通过查表决定是否存在自相关性。te若duDW4-du,则不存在自相关性;若DWdl,则存在一阶正相关;DW4-dl,则存在一阶负相关;若dlDWdu或4-duDW4-dl,则无法判断下面我们对模型进行检验:(1)残差的正态检验:由jbtest检验,h=0表明残差服从正态分布,进而由t检验可知h=0,p=1,故残差服从均值为零的正态分布;(2)残差的异方差检验:我们将28个数据从小到大排列,去掉中间的6个数据,得到F统计量的观测值为:f=1.9092,由F(7,7)=3.79,可知:f=1.90923.79,故不存在异方差.(3)残差的自相关性检验:计算得到:dw=1.4330,查表后得到:dl=0.97,du=1.41,由于1.41=dudw=1.4334-du=2.59,残差不存在自相关性.
本文标题:利用MATLAB进行多元线性回归
链接地址:https://www.777doc.com/doc-5441727 .html