通过添加或移除术语来改进线性回归模型

描述

newmdl.=步骤(MDL.返回基于的线性回归模型MDL.使用逐步回归添加或删除一个预测器。

例子

newmdl.=步骤(MDL.名称,价值使用一个或多个名称-值对参数指定其他选项。例如,您可以指定用于添加或删除术语的条件以及要采取的最大步骤数。

例子

全部收缩

适合线性回归模型和使用通过添加或移除术语来改进模型。这个例子还描述了如何功能处理分类预测器。

加载Carsmall.数据集,并使用该表创建一个表重量model_year., 和MPG.变量。

负载Carsmall.tbl1 =表(MPG、重量);tbl1。一年= categorical(Model_Year);

创建一个线性回归模型MPG.作为一个函数重量

mdl1 = fitlm(tbl1,英里/加仑~体重的
mdl1 =线性回归模型:MPG〜1个+重量估计系数:估计SE TSTAT p值__________ _________ _______ __________(截距)49.238 1.6411 30.002 2.7015e-49重量-0.0086119 0.0005348 -16.103 1.6434e-28观测数:94,错误度自由:92根均匀误差:4.13 R线:0.738,调整R线:0.735 F统计与常数型号:259,P值= 1.64E-28

调整模型以包括最多'二次'通过使用.指定“NSteps”作为5,以允许最多5步的逐步回归。指定'verbose'作为2显示评估过程和每一步所采取的决定。

newmdl1 =步骤(mdl1,“上”'二次'“NSteps”,5,'verbose'2)
添加年份的Pvalue是8.2284E-15 pvalue用于加重^ 2为0.15454 1.增加年份,FSTAT = 47.5136,Pvalue = 8.228362-15 pvalue加入重量:年份为0.0071637 pvalue加入重量^ 2为0.0022303 2。添加重量^ 2,fstat = 9.9164,pvalue = 0.0022303加入重量的pvalue:年份为0.19519 Pvalue,用于去除年份为2.9042E-16
newmdl1 =线性回归模型:mpg〜1 +重量+重量+重量^ 2估计系数:估计系数pvalue __________ ________________________________________________________________________________________7117 11.505 2.6648'1031249 -5.2493 1.0281249 -5.016404 0.08770.71491 2.9215 0.0044137年_ 81210 0.041 2.6364E-16重量^ 2 1.5573E-06 4.149 0.0022303观察数:94,误差自由度:89根均匀误差:2.78 R线:0.885,调整r-SQUARED:0.88 F统计与常数型号:172,P值= 5.52E-41

创建两个指示器变量,年份.76年份.82,因为一年包括三个不同的值。不考虑指示器变量的平方术语,因为指示器变量的平方本身就是这样。

因为'verbose'是2,显示评估过程:

  • 计算p- 加入值一年要么重量^ 2..的p- value一年不到两者p- value重量^ 2.且默认阈值为0.05;因此,补充.一年到模型中。

  • 计算p- 加入值重量:一年要么重量^ 2..因为这p- value重量^ 2.小于p- value重量:一年,功能补充说重量^ 2.到模型中。

  • 添加二次术语后,计算p- 加入的价值重量:一年再次,但是p-value大于阈值。因此,不向模型中添加术语。不检查添加重量^ 3.因为由此指定的上限“上”名称-值对的论点。

  • 寻找删除的条款。已经审查了重量^ 2.,所以它只计算p- 删除value.一年.因为这p-value小于默认阈值0.10,不删除该术语。

  • 虽然允许的最大步骤数为5,但是在两个步骤之后终止流程,因为模型没有通过添加或删除一个术语来改进。

将两个指示器变量视为一个预测变量并添加一年一步。将两个指示器变量视为两个不同的预测变量,使用dummyvar创建单独的分类变量。

temp_year = dummyvar(tbl1.year);年_76 = temp_year(:,2);年份_82 = temp_year(:,3);

创建一个包含的表MPG.重量年份.76, 和年份.82

TBL2 =表(MPG,重量,年份,年份,年份);

创建一个线性回归模型MPG.作为一个函数重量和使用改进模型。

mdl2 = fitlm(tbl2,英里/加仑~体重的);newmdl2 =步骤(mdl2,“上”'二次'“NSteps”5)
1.添加年份_82,fstat = 83.1956,pvalue = 1.76163E-14 2.添加重量:年份_82,fstat = 8.0641,pvalue = 0.0055818 3.添加年份= 0.0055818 3.添加年份_76,fstat = 8.1284,pvalue = 0.0054157
NewMDL2 =线性回归模型:MPG〜1 +年_76 +重量*年份_82估计系数:估计硒t PVALUE __________ ________________________________________5032重量-20.006272 0.0004220-25岁__14.698 1.562294 25.397 2.0395 0.71537 2.8510.0054157年度19.607 3.8731 5.0623 2.21623 2.21623 2.21631 2.2163E-06重量:年份_ 0.0014979 -3.0888 0.0026806观察数:94,误差自由度:89根均匀误差:2.79 R线:0.885,调整R线:0.88统计与常量型号:171,p值= 6.54e-41

该模型newmdl2.包括互动项重量:Year_82而不是重量^ 2.,术语包含在newmdl1.

输入参数

全部收缩

线性回归模型,指定为alinearmodel.对象创建使用fitlm要么步骤行程

您可以使用只有当你创造MDL.通过使用fitlm与之'抢劫'名称-值对参数设置为默认值'离开'

名称值对参数

指定可选的逗号分隔的对名称,价值论点。名称参数名和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'标准','aiC','上','二次','verbose',2指示使用赤池信息准则,在模型中包含(最多)二次项,并显示评估过程和每一步所采取的决策。

添加或删除术语的标准,指定为逗号分隔对组成'标准'其中一个价值观是:

  • “上世纪”- - - - - -p- value forF- 在增加或删除术语的平方错误之和中的变化

  • “另类投资会议”- 改变Akaike信息标准(AIC)

  • 'BIC'- 改变贝叶斯信息标准(BIC)的价值

  • 'rsquared'- 增加价值R2

  • 'adjrsquared'- 增加调整的值R2

例子:'标准','bic'

描述不能从模型中删除的术语的模型规范,由逗号分隔的对组成'降低'其中一个价值观是:

  • 字符向量或字符串标量命名模型。

    价值 模型类型
    '持续的' 模型仅包含一个常数(拦截)术语。
    '线性' 模型包含每个预测器的截距和线性项。
    '互动' 模型包含每个预测器的截距,线性术语,以及所有具有不同预测器的所有产品(没有平方术语)。下载188bet金宝搏
    “purequadratic” 模型包含每个预测器的截距项和线性和平方术语。
    '二次' 模型包含每个预测器的截距,线性和平方术语,以及所有不同预测器的所有产品。下载188bet金宝搏
    'Poly.IJK. 模型是一种多项式,所有条款均可获得程度在第一个预测因子,学位j在第二个预测因子,等等。通过使用数字来指定每个预测器的最大程度。但是模型包含交互术语,但每个交互项的程度不超过指定度的最大值。例如,'poly13'有一个截距x1x2x22x23.x1x2, 和x1x22条款,在哪里x1x2是第一和第二预测因子。
  • 一个t-经过-(p+ 1)矩阵,或者术语矩阵,在模型中指定术语,在哪里t是术语数量和数量p是预测变量的数量,+1帐户响应变量。术语矩阵是方便的,当预测器的数量很大时,您要以编程方式生成术语。

  • 表示A的字符向量或字符串标量公式在表单中

    'Y〜术语'

    那里术语Wilkinson表示法.公式中的变量名称必须是有效的matlab®标识符。

例子:'下','线性'

数据类型:单身的|双倍的|char|细绳

以逗号分隔的配对指定的最大步数次数“NSteps”和一个正整数。

例子:“NSteps”,5

数据类型:单身的|双倍的

用于添加术语的条件的阈值,指定为逗号分隔对,由'penter'和标量值,如表所示。

标准 默认值 决定
“上世纪” 0.05 如果是p- 左边的价值F- 职业少于pp-Value进入),将术语添加到模型中。
'AIC' 0 如果模型AIC的变化小于p,将术语添加到模型中。
'BIC' 0 如果模型的BIC的变化小于p,将术语添加到模型中。
'rsquared' 0.1 如果模型的R线值的增加大于p,将术语添加到模型中。
'adjrsquared' 0 如果模型的调整后R线值的增加大于p,将术语添加到模型中。

有关更多信息,请参见标准名称-值对的论点。

例子:'penter',0.075

删除术语的标准的阈值,指定为逗号分隔的对组成'premove'和标量值,如表所示。

标准 默认值 决定
“上世纪” 0.10 如果是p- 左边的价值F- 术大于主体p- 要删除),从模型中删除术语。
'AIC' 0.01 如果模型的AIC的变化大于主体,从模型中删除术语。
'BIC' 0.01 如果模型的BIC的变化大于主体,从模型中删除术语。
'rsquared' 0.05 如果模型的R线值的增加小于主体,从模型中删除术语。
'adjrsquared' -0.05 如果模型的调整后R线值的增加小于主体,从模型中删除术语。

在每一步,功能还检查当前模型中的其他术语是否冗余(线性依赖)。当任意术语与当前模型中的其他术语线性依赖时,函数删除冗余项,而不考虑标准值。

有关更多信息,请参见标准名称-值对的论点。

例子:'memoove',0.05

模型规范,描述了拟合中最大的术语集合,指定为逗号分隔的对组成“上”其中一个价值观是:

  • 字符向量或字符串标量命名模型。

    价值 模型类型
    '持续的' 模型仅包含一个常数(拦截)术语。
    '线性' 模型包含每个预测器的截距和线性项。
    '互动' 模型包含每个预测器的截距,线性术语,以及所有具有不同预测器的所有产品(没有平方术语)。下载188bet金宝搏
    “purequadratic” 模型包含每个预测器的截距项和线性和平方术语。
    '二次' 模型包含每个预测器的截距,线性和平方术语,以及所有不同预测器的所有产品。下载188bet金宝搏
    'Poly.IJK. 模型是一种多项式,所有条款均可获得程度在第一个预测因子,学位j在第二个预测因子,等等。通过使用数字来指定每个预测器的最大程度。但是模型包含交互术语,但每个交互项的程度不超过指定度的最大值。例如,'poly13'有一个截距x1x2x22x23.x1x2, 和x1x22条款,在哪里x1x2是第一和第二预测因子。
  • 一个t-经过-(p+ 1)矩阵,或者术语矩阵,在模型中指定术语,在哪里t是术语数量和数量p是预测变量的数量,+1帐户响应变量。术语矩阵是方便的,当预测器的数量很大时,您要以编程方式生成术语。

  • 表示A的字符向量或字符串标量公式在表单中

    'Y〜术语'

    那里术语Wilkinson表示法.公式中的变量名称必须是有效的MATLAB标识符。

例子:'上','二次'

数据类型:单身的|双倍的|char|细绳

控件,指定为逗号分隔的对,由'verbose'其中一个价值观是:

  • 0- 禁止所有显示。

  • 1- 显示每个步骤采取的操作。

  • 2- 显示评估过程和每个步骤所采取的动作。

例子:'verbose',2

输出参数

全部收缩

线性回归模型,作为一个返回linearmodel.对象

重写输入参数MDL.,将新模型分配给MDL.

mdl =步骤(mdl);

更多关于

全部收缩

术语矩阵

术语矩阵T是A.t-经过-(p+ 1)矩阵指定模型中的术语,其中t是项的个数,p是预测变量的数量,+1帐户响应变量。的价值T (i, j)是变量的指数吗j术语

例如,假设输入包括三个预测变量一个B, 和C以及响应变量Y的顺序一个BC, 和Y.每一排T代表一个术语:

  • [0 0 0 0]-常数项或截距

  • [0 1 0 0]- - - - - -B;同样,a ^ 0 * b ^ 1 * c ^ 0

  • [1 0 1 0]- - - - - -A * C.

  • [2 0 0 0]- - - - - -A ^ 2.

  • [0 1 2 0]- - - - - -B *(C ^ 2)

0在每个术语的末尾表示响应变量。通常,术语矩阵中零的列向量表示响应变量的位置。如果您在矩阵和列向量中有预测器和响应变量,则必须包含0对于每行的最后一列中的响应变量。

公式

模型规范的公式是表单的字符向量或字符串标量Y术语

  • Y是响应名称。

  • 术语表示使用Wilkinson表示法的模型中的预测术语。

例如:

  • 'y〜a + b + c'指定具有截距的三个可变线性模型。

  • 'y〜a + b + c - 1'指定一个无截距的三变量线性模型。注意,默认情况下,公式包含一个常量(截距)项。要从模型中排除常数项,必须包含-1在公式。

Wilkinson表示法

Wilkinson表示法描述了模型中存在的术语。符号涉及模型中存在的术语,而不是那些术语的乘法器(系数)。

Wilkinson表示法使用这些符号:

  • +方法包括下一个变量。

  • - - - - - -意味着不包括下一个变量。

  • 定义一个交互,它是术语的产物。

  • 定义交互和所有低阶项。

  • 将预测器提升到电力,完全如此重复,所以还包括较低的术语。

  • ()群体条款。

此表显示了Wilkinson表示法的典型示例。

Wilkinson表示法 标准符号中的术语
1 常数(拦截)
一个^ K., 在哪里k为正整数 一个一个2,......,一个k
A + B. 一个B
A * B. 一个BA * B.
- 答:B. A * B.只要
-B. 不包括B
a * b + c 一个BCA * B.
A + B + C + A:B 一个BCA * B.
a * b * c - a:b:c 一个BCA * B.A * C.公元前
a *(b + c) 一个BCA * B.A * C.

统计学和机器学习工具箱™表示法总是包含一个常量术语,除非您明确地使用该术语-1

有关更多详细信息,请参阅Wilkinson表示法

算法

  • 逐步回归是基于解释响应变量的统计学意义,从线性或广义线性模型添加和移除术语的系统方法。该方法以初始模型开始,指定使用Modelspec.,然后比较逐渐更大且较小模型的解释性。

    函数使用向前和向后逐步回归来确定最终模型。在每个步骤中,函数搜索术语以基于该值添加到模型或从模型中删除'标准'名称-值对的论点。

    默认值'标准'对于线性回归模型是“上世纪”.在这种情况下,步骤行程linearmodel.使用p价值的F-统计来测试模型在每个步骤中有或没有潜在的项。如果一项目前不在模型中,则零假设是,如果将该项添加到模型中,其系数将为零。如果有足够的证据拒绝零假设,该函数将该项添加到模型中。相反,如果一项目前在模型中,零假设是该项系数为零。如果没有足够的证据来拒绝原假设,该函数将从模型中删除该术语。

    逐步回归何时采取这些步骤'标准'“上世纪”

    1. 适合初始模型。

    2. 检查模型中的一组可用术语。如果任何条款都有p-值小于入口公差(也就是说,如果将一项添加到模型中不太可能有零系数),则添加最小的一项p- value并重复这一步;否则,转到第3步。

    3. 如果模型中的任何可用术语都有p-Values大于退出公差(即,不能拒绝零系数的假设),删除最大的术语p- 留下并返回步骤2;否则,结束过程。

    在任何阶段,如果模型不包括作为高阶项子集的所有低阶项,函数都不会添加高阶项。例如,函数不会尝试添加术语x1:x2 ^ 2除非两者都是X1x2 ^ 2已经在模型中。类似地,该功能不会删除是留在模型中的高阶项的子集的低阶项。例如,该函数不会尝试删除X1要么x2 ^ 2如果x1:x2 ^ 2仍然在模型中。

    默认值'标准'对于一个广义线性模型'偏见'挺身油GeneralizedLinearModel遵循类似的过程来添加或删除术语。

    您可以使用使用方法指定其他标准'标准'名称-值对的论点。例如,您可以指定Akaike信息标准的值,贝叶斯信息标准,R线或调整的R线为标准作为添加或删除术语的标准。

    根据初始模型中包含的条款,以及函数添加和删除术语的顺序,该函数可能会从同一组潜在术语构建不同的模型。当没有单步改善模型时,该函数终止。然而,不同的初始模型或不同的步骤序列不保证更合适。从这个意义上讲,逐步模型是局部最佳的,但可能不是全局最佳。

  • 处理分类预测器,如下所示:

    • 一个有绝对预测器的模型l级别(类别)包括l- 1指示器变量。该模型使用第一类作为参考级别,因此它不包括参考级别的指示灯。如果分类预测器的数据类型是分类,然后您可以通过使用查看类别的顺序类别并通过使用雷德斯自定义参考级别。

    • 对待一组l- 1指示器变量作为单个变量。如果要将指示器变量视为不同的预测器变量,请通过使用手动创建指示器变量dummyvar.然后使用指示器变量,除了适合模型时对应于分类变量的参考级别的字符。对于分类预测因子X,如果您指定所有列dummyvar(x)并且作为预测器的截距术语,然后设计矩阵变为缺陷。

    • 连续预测器和分类预测器之间的交互项l级别由元素 - 明智的产品组成l- 1具有连续预测器的指示器变量。

    • 两个分类预测因子之间的交互条款l水平包括l- 1) * (- 1)指示器变量包括两个分类预测器级别的所有可能组合。

    • 您无法为分类预测器指定高阶项,因为指示符的平方等于其自身。

    因此,如果添加或删除一个分类预测器,该函数实际上在一个步骤中添加或删除一组指示器变量。类似地,如果通过分类预测器添加或删除交互项,该功能实际地添加或删除包括分类预测器的交互术语。

替代功能

  • 采用步骤行程要在起始模型中指定术语并继续改进模型,直到没有单一的添加或删除术语是有益的。

  • 采用addTerms要么removeterms.添加或删除特定术语。

在R2012A介绍