主要内容

一步

通过添加或删除项来改进线性回归模型

描述

NewMdl=步骤(mdl返回基于的线性回归模型mdl使用逐步回归添加或删除一个预测值。

例子

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

例子

全部折叠

拟合线性回归模型并使用一步通过添加或删除项来改进模型。这个例子还描述了一步函数处理一个绝对预测器。

加载卡斯莫尔数据集,并使用重量model_year.,英里/加仑变量。

负载卡斯莫尔tbl1 =表(MPG、重量);tbl1。一年= categorical(Model_Year);

创建一个线性回归模型英里/加仑作为…的函数重量

mdl1 = fitlm(tbl1,英里/加仑~体重的
mdl1 =线性回归模型:MPG ~ 1 +权重估计系数:估计值SE tStat pValue __________ _________ _______ __________ (Intercept) 49.238 1.6411 30.002 2.7015e-49权重-0.0086119 0.0005348 -16.103 1.6434e-28观测数:94,误差自由度:92均方根误差:4.13 R-squared:0.738,调整后的R-Squared: 0.735 F-statistic vs. constant model: 259, p-value = 1.64e-28

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

NewMdl1 =步骤(mdl1,“上”'二次'“NSteps”,5,“详细”, 2)
添加Year的pValue为8.2284e-15。添加Weight^2的pValue为0.15454 1。添加年份,FStat = 47.5136, pValue = 8.22836e-15添加重量的pValue:年份为0.0071637添加重量^2的pValue为0.0022303 2。添加Weight^2, FStat = 9.9164, pValue = 0.0022303添加Weight的pValue:Year为0.19519 pValue删除Year为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,因为一年包括三个不同的值。一步不考虑指标变量的平方项,因为指标变量的平方就是自身。

因为“详细”是2,一步显示评估过程:

  • 一步计算p值添加一年体重^ 2.的p值为一年是小于两者的p值为体重^ 2且默认阈值为0.05;因此,一步补充.一年到模型中。

  • 一步计算p值添加重量:一年体重^ 2.因为p值为体重^ 2低于p值为重量:一年,一步函数添加体重^ 2到模型中。

  • 加上二次项之后,一步计算p-增值重量:一年再次,但p-value大于阈值。因此,一步不向模型中添加术语。一步不检查添加体重^ 3因为“上”名称-值对的论点。

  • 一步寻找要删除的条款。一步已经检查过体重^ 2,所以它只计算p-删除值一年.因为p-value小于默认阈值0.10,一步并没有去掉这个词。

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

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

temp_Year = dummyvar (tbl1.Year);Year_76 = temp_Year (:, 2);Year_82 = temp_Year (: 3);

创建一个包含英里/加仑重量年份.76,年份.82

tbl2=表(MPG,重量,第76年,第82年);

创建一个线性回归模型英里/加仑作为…的函数重量和使用一步改进模型。

mdl2 = fitlm(tbl2,英里/加仑~体重的);newmdl2 =步骤(mdl2,“上”'二次'“NSteps”5)
1.添加Year_82, FStat = 83.1956, pValue = 1.76163e-14添加重量:Year_82, FStat = 8.0641, pValue = 0.0055818添加Year_76, FStat = 8.1284, pValue = 0.0054157
NewMdl2 =线性回归模型:MPG ~ 1 + Year_76 + Weight*Year_82Estimate SE tStat pValue __________ __________ _______ __________ (Intercept) 38.844 1.5294 25.397 1.503e-42 Weight -0.006272 0.00042673 -14.698 1.5622e-25 Year_76 2.0395 0.71537 2.851 0.0054157 Year_82 19.607 3.8731 5.0623 2.2163e-06 Weight:Year_82 -0.0046268 0.0014979 -3.0888 0.0026806观测数量:94、误差自由度:89均方根误差:2.79 R-squared: 0.885,调整R-squared: 0.88 F-statistic vs. constant model: 171, p-value = 6.54e-41

该模型NewMdl2包括交互项重量:Year_82而不是体重^ 2,包括在其中的术语NewMdl1

输入参数

全部折叠

线性回归模型,指定为alinearmodel.对象创建使用fitlmstepwiselm

您可以使用一步只有当你创造mdl通过使用fitlm“RobustOpts”名称-值对参数设置为默认值“关闭”

名称-值参数

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

例子:“标准”、“另类投资会议”,“上”、“二次”、“详细”,2指示一步使用赤池信息准则,在模型中包含(最多)二次项,并显示评估过程和每一步所采取的决策。

条件来添加或删除指定为逗号分隔对的项,由“标准”其中一个价值观是:

  • 上交所的- - - - - -p- value forF-增加或删除项的平方和误差变化的检验

  • “另类投资会议”-赤池信息准则(AIC)值的变化

  • “bic”-贝叶斯信息准则(BIC)值的变化

  • “rsquared”-增值R2

  • “adjrsquared”- 增加调整的值R2

例子:“标准”,“bic”

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

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

    价值 模型类型
    “常数” 模型只包含一个常量(截距)项。
    “线性” 模型包含每个预测器的截距和线性项。
    “互动” 模型包含每个预测器的截距,线性项,以及对不同预测器的所有乘积(没有平方项)。下载188bet金宝搏
    “purequadratic” 模型包含截距项、线性项和平方项。
    '二次' 该模型包含一个截距项、每个预测器的线性项和平方项,以及不同预测器对的所有乘积。下载188bet金宝搏
    保利ijk 模型是一个多项式,所有项都达到次第一个预测因子是程度j在第二个预测器中,依此类推。使用数字0到9指定每个预测器的最大度数。模型包含交互项,但每个交互项的度数不超过指定度数的最大值。例如,“poly13”有一个截距x1x2x22x23.x1x2,x1x22条款,x1x2分别是第一和第二预测因素。
  • 一个t————(p+ 1)矩阵,或者a术语矩阵,在模型中指定术语,在哪里t是项的个数,p为预测变量的个数,+1表示响应变量。当预测器的数量很大且您希望以编程方式生成术语时,术语矩阵是很方便的。

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

    “Y~术语”

    那里条款威尔金森符号. 公式中的变量名必须有效®标识符。

例子:“较低”,“线性”

数据类型:仅有一个的||字符|字符串

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

例子:“NSteps”,5

数据类型:仅有一个的|

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

标准 默认值 决定
“SSE” 0.05 如果p价值的F-统计数字小于被关闭的p-value to enter),将术语添加到模型中。
“另类投资会议” 0 如果模型AIC的变化小于被关闭的,将术语添加到模型中。
“BIC” 0 如果模型中BIC的变化小于被关闭的,将术语添加到模型中。
“Rsquared” 0.1 如果模型的r平方值增加大于被关闭的,将术语添加到模型中。
“AdjRsquared” 0 如果模型的调整R平方值的增加大于被关闭的,将术语添加到模型中。

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

例子:“彭特”,0.075

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

标准 默认值 决定
“SSE” 0.10 如果p价值的F-统计数据大于PRemovep-value to remove),从模型中移除术语。
“另类投资会议” 0.01 如果模型AIC的变化大于PRemove,将该术语从模型中删除。
“BIC” 0.01 如果模型的BIC变化大于PRemove,将该术语从模型中删除。
“Rsquared” 0.05 如果模型的R平方值的增加小于PRemove,将该术语从模型中删除。
“AdjRsquared” -0.05 若模型调整后的r平方值增加小于PRemove,将该术语从模型中删除。

在每一步,一步函数还检查一个项是否与当前模型中的其他项冗余(线性相关)。当任何项与当前模型中的其他项线性相关时一步函数删除冗余项,而不考虑标准值。

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

例子:“PRemove”,0.05

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

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

    价值 模型类型
    “常数” 模型只包含一个常量(截距)项。
    “线性” 模型包含每个预测器的截距和线性项。
    “互动” 模型包含每个预测器的截距,线性项,以及对不同预测器的所有乘积(没有平方项)。下载188bet金宝搏
    “purequadratic” 模型包含截距项、线性项和平方项。
    '二次' 该模型包含一个截距项、每个预测器的线性项和平方项,以及不同预测器对的所有乘积。下载188bet金宝搏
    保利ijk 模型是一个多项式,所有项都达到次第一个预测因子是程度j在第二个预测器中,依此类推。使用数字0到9指定每个预测器的最大度数。模型包含交互项,但每个交互项的度数不超过指定度数的最大值。例如,“poly13”有一个截距x1x2x22x23.x1x2,x1x22条款,x1x2分别是第一和第二预测因素。
  • 一个t————(p+ 1)矩阵,或者a术语矩阵,在模型中指定术语,在哪里t是项的个数,p为预测变量的个数,+1表示响应变量。当预测器的数量很大且您希望以编程方式生成术语时,术语矩阵是很方便的。

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

    “Y~术语”

    那里条款威尔金森符号.公式中的变量名称必须是有效的MATLAB标识符。

例子:“上”、“二次”

数据类型:仅有一个的||字符|字符串

控件,指定为逗号分隔的对,由“详细”其中一个价值观是:

  • 0—禁止所有显示。

  • 1-显示在每一步采取的行动。

  • 2-展示评估过程和每一步采取的行动。

例子:“冗长”,2

输出参数

全部折叠

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

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

mdl =步骤(mdl);

更多关于

全部折叠

术语矩阵

一个条件矩阵T是一个t————(p+ 1)矩阵指定模型中的术语,其中t是项的个数,p为预测变量的个数,+1表示响应变量。的价值T (i, j)是变量的指数吗j长期

例如,假设一个输入包含三个预测变量x1x2,x3以及响应变量y的顺序x1x2x3,y.每一行的T代表一个术语:

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

  • [0 1 0 0]- - - - - -x2;同样,X1 ^0 * x2^1 * x3^0

  • [1 0 1 0]- - - - - -x1*x3

  • [2 0 0 0]- - - - - -x1 ^ 2

  • [0 1 2 0]- - - - - -x2 * (x3 ^ 2)

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

公式

模型规范的公式是这种形式的字符向量或字符串标量y条款

  • y是响应名称。

  • 条款表示模型中使用威尔金森表示法的预测项。

要表示预测器和响应变量,请使用表输入的变量名TBL.或使用指定的变量名VarNames.默认值VarNames{x1, x2,…,‘xn’,‘y’}

例如:

  • “y~x1+x2+x3”指定一个带有截距的三变量线性模型。

  • ‘y~x1+x2+x3–1’指定一个无截距的三变量线性模型。注意,默认情况下,公式包含一个常量(截距)项。要从模型中排除常数项,必须包含–1在公式中。

一个公式包含一个常数项,除非你明确地用–1

威尔金森符号

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

威尔金森表示法使用这些符号:

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

  • - - - - - -表示不包括下一个变量。

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

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

  • 将预测器提升到一个指数,就像重复,所以也包括低阶项。

  • ()分组术语。

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

威尔金森符号 标准符号术语
1 常数(拦截)
x1 ^ k,在那里k为正整数 x1x12, ...,x1k
x1+x2 x1x2
x1*x2 x1x2x1*x2
x1, x2 x1*x2只要
–x2 不包括x2
x1 * x2 + x3 x1x2x3x1*x2
X1 + x2 + x3 + X1:x2 x1x2x3x1*x2
x1*x2*x3–x1:x2:x3 x1x2x3x1*x2x1*x3x2*x3
x1 * (x2 + x3) x1x2x3x1*x2x1*x3

有关详细信息,请参见威尔金森符号

算法

  • 逐步回归是一种系统方法,用于根据线性或广义线性模型中的术语在解释响应变量时的统计意义,添加和删除这些术语。该方法从使用指定的初始模型开始模型规格,然后比较递增的较大模型和较小模型的解释力。

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

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

    逐步回归在以下情况下采取这些步骤:“标准”上交所的

    1. 适合初始模型。

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

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

    在任何阶段,如果模型不包括作为高阶项子集的所有低阶项,函数都不会添加高阶项。例如,函数不会尝试添加术语X1:X2^2除非两X1x2 ^ 2已经在模型中了。类似地,该函数不会删除模型中保留的高阶项子集的低阶项。例如,函数不会尝试删除X1x2 ^ 2如果X1:X2^2保持在模型中。

    默认值“标准”对于一个广义线性模型“越轨”逐步GLM一步属于GeneralizedLinearModel按照类似的程序添加或删除术语。

    您可以使用“标准”名称-值对的论点。例如,您可以指定Akaike信息标准、贝叶斯信息标准、r平方或调整的r平方的值的更改作为添加或删除项的标准。

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

  • 一步将分类预测值处理如下:

    • 一个有绝对预测器的模型l级别(类别)包括l- 1指标变量。模型使用第一个类别作为参考级别,因此不包括参考级别的指标变量。如果分类预测值的数据类型为分类,然后您可以通过使用查看类别的顺序类别并通过使用reordercats自定义参考级别。创建指标变量的详细信息请参见虚拟变量的自动创建

    • 一步对待一组l- 1指示器变量作为一个单独的变量。如果您想将指示器变量视为不同的预测变量,可以使用dummyvar.然后使用指示器变量,除了适合模型时对应于分类变量的参考级别的字符。对于分类预测因子X,如果指定的所有列dummyvar(X)并以截距项作为预测因子,使设计矩阵秩亏缺。

    • 连续预测器和分类预测器之间的交互项l层次由元素的乘积组成l- 1带有连续预测器的指标变量。

    • 两个分类预测因子之间的相互作用项l级别包括l- 1) * (- 1)指标变量包括两个分类预测水平的所有可能组合。

    • 不能为绝对预测器指定高阶项,因为指示器的平方等于它本身。

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

选择功能

  • 使用stepwiselm在初始模型中指定术语,并继续改进模型,直到没有任何添加或删除术语的步骤是有益的。

  • 使用addTerms移除添加或删除特定的术语。

扩展能力

介绍了R2012a