stepwiselm
进行逐步回归
语法
描述
例子
用逐步回归拟合线性模型
加载哈尔德
数据集,测量水泥成分对其硬化热的影响。
负载哈尔德
这个数据集包括变量成分
而且热
.矩阵成分
含有水泥中四种化学物质的百分比组成。向量热
包含每个水泥样品在180天后的热硬化值。
用逐步线性回归模型拟合数据。指定0.06作为准则的阈值,以便向模型中添加一个术语。
mdl = stepwiselm(成分、热、“囚禁”, 0.06)
1.添加x4, FStat = 22.7985, pValue = 0.0005762322 .添加x1, FStat = 108.2239, pValue = 1.105281e-06添加x2, FStat = 5.0259, pValue = 0.051687删除x4, FStat = 1.8633, pValue = 0.2054
mdl =线性回归模型:y ~ 1 + x1 + x2估计系数:估计SE tStat pValue ________ ________ ______ __________ (Intercept) 52.577 2.2862 22.998 5.4566e-10 x1 1.4683 0.1213 12.105 2.6922e-07 x2 0.66225 0.045855 14.442 5.029e-08观察数:13,误差自由度:10均方根误差:2.41 r -平方:0.979,调整r -平方:0.974 F-statistic对常数模型:230,p-value = 4.41e-09
默认情况下,起始模型是一个常数模型。stepwiselm
执行正向选择并添加x4
,x1
,x2
术语(按此顺序),因为对应的p的值小于被关闭的
值为0.06。stepwiselm
然后使用逆向消元法并删除x4
从模型来看,因为x2
在模型中p价值的x4
是否大于默认值PRemove
0.1点。
使用指定模型公式和变量的逐步回归
使用存储在数据集数组中的变量执行逐步回归。使用威尔金森表示法指定起始模型,并使用可选参数识别响应和预测变量。
加载样例数据。
负载医院
医院数据集数组包括患者的性别、年龄、体重和吸烟状况。
拟合线性模型与起始模型的常数项和吸烟者
作为预测变量。指定响应变量,重量
,分类预测变量,性
,年龄
,吸烟者
.
mdl = stepwiselm(医院,的体重~ 1 +抽烟',...“ResponseVar”,“重量”,“PredictorVars”, {“性”,“年龄”,“抽烟”},...“CategoricalVar”, {“性”,“抽烟”})
1.添加性,FStat = 770.0158, pValue = 6.262758e-48去除吸烟者,FStat = 0.21224, pValue = 0.64605
mdl =线性回归模型:权重~ 1 +性别估计系数:估计SE tStat pValue ________ ______ ______ ___________ (Intercept) 130.47 1.1995 108.77 5.2762e-104性别_male 50.06 1.7496 28.612 2.2464e-49观察数:100,误差自由度:98均方根误差:8.73 r平方:0.893,调整r平方:0.892 F-statistic对比常数模型:819,p值= 2.25e-49
在每个步骤中,stepwiselm
搜索要添加和删除的术语。第一步,逐步添加算法性
模型与
6.26 e-48的价值。然后,从模型中删除吸烟者,因为给定性
在模型中,变量吸烟者
成为多余的。stepwiselm
只包括性
在最终的线性模型中。患者的体重似乎没有因年龄或吸烟状况而有显著差异。
使用术语矩阵的逐步回归
加载一个样本数据集并定义预测器矩阵。
负载carsmallX =(加速度、重量);
使用术语矩阵定义开始模型和上模型。
T_starting = [0 0 0]常数模型
T_starting =1×30 0 0
T_upper = [0 0 0;1 0 0;0 1 0;1 1 0]具有相互作用的线性模型。
T_upper =4×30 0 0 1 0 0 0 1 0 1 1 0 0
使用逐步回归创建线性回归模型。使用术语矩阵指定起始模型和模型的上界,并指定“详细”
表示2,以显示评估过程和在每一步所作的决定。
T_starting mdl = stepwiselm (X,英里/加仑,“上”T_upper,“详细”, 2)
添加x1的pValue为4.0973e-06 pValue为1.6434e-28 1添加x2, FStat = 259.3087, pValue = 1.643351e-28添加x1的pValue为0.18493没有候选项要删除
mdl =线性回归模型:y ~ 1 + x2估计系数:估计SE tStat pValue __________ _________ _______ __________ (Intercept) 49.238 1.6411 30.002 2.7015e-49 x2 -0.0086119 0.0005348 -16.103 1.6434e-28观察数:94,误差自由度:92均方根误差:4.13 r -平方:0.738,调整r -平方:0.735 F-statistic对比常数模型:259,p值= 1.64e-28
带分类预测器的逐步回归
用逐步回归拟合线性回归模型和分类预测器。stepwiselm
一步添加或删除一组指示符变量,以添加或删除分类预测器。此示例还演示了如何手动创建指示器变量并将它们传递给stepwiselm
这stepwiselm
将每个指标变量作为单独的预测器。
加载carsmall
数据集,并使用重量
,Model_Year
,英里/加仑
变量。
负载carsmall年=分类(Model_Year);tbl1 =表(MPG、重量、年);
拟合线性回归模型英里/加仑
利用逐步回归。的函数指定启动模型重量
.将模型的上限设置为“poly21”
,这意味着模型可以(最多)包含一个常数和项重量
,体重^ 2
,一年
,重量*年
.指定“详细”
表示2,以显示评估过程和在每一步所作的决定。
mdl1 = stepwiselm (tbl1,英里/加仑~体重的,“上”,“poly21”,“详细”, 2)
pValue增加的年份为8.2284e-15。pValue增加的权重^2为0.15454 1。添加Year, FStat = 47.5136, pValue = 8.22836e-15 pValue增加Weight^2的值为0.0022303 pValue增加Weight:Year的值为0.0071637 2。增加重量^2,FStat = 9.9164, pValue = 0.0022303 p增加重量:年的值为0.19519 p删除年的值为2.9042e-16
mdl1 =线性回归模型:MPG ~ 1 + Weight + Year + Weight^2估计系数:Estimate SE tStat pValue __________ __________ _______ __________ (Intercept) 54.206 4.7117 11.505 2.6648e-19 Weight -0.016404 0.0031249 -5.2493 1.0283e-06 Year_76 2.0887 0.71491 2.9215 0.0044137 Year_82 8.1864 0.81531 10.041 2.6364e-16 Weight^2 1.5573e-06 4.9454e-07 3.149 0.0022303观察数:94,误差自由度:89均方根误差:2.78 R-squared: 0.885,调整后R-squared:0.88 f统计量vs常数模型:172,p值= 5.52e-41
stepwiselm
创建两个指标变量,Year_76
而且Year_82
,因为一年
包括三个不同的值。
因为“详细”
是2,stepwiselm
显示评估过程:
stepwiselm
的函数创建模型重量
.stepwiselm
计算p值添加一年
或体重^ 2
.的p值为一年
是小于两者p值为体重^ 2
且默认阈值为0.05;因此,stepwiselm
增加了一年
到模型中。stepwiselm
计算p值添加重量:一年
或体重^ 2
.因为p值为体重^ 2
小于p值为重量:一年
,stepwiselm
功能补充道体重^ 2
到模型中。将二次项相加后,
stepwiselm
计算p价值增加重量:一年
再次,但p-value大于阈值。因此,stepwiselm
不将术语添加到模型中。stepwiselm
不检查添加体重^ 3
的上限“上”
名称-值对的论点。stepwiselm
寻找可以删除的条款。stepwiselm
已经检查了体重^ 2
,所以它只计算p值为删除一年
.因为p-value小于默认阈值0.10,stepwiselm
不删除术语。虽然允许的最大步数是5步,
stepwiselm
在两个步骤之后终止流程,因为模型没有通过添加或删除一个项而得到改进。
stepwiselm
将两个指标变量视为一个预测变量并相加一年
在一个步骤。要将两个指示变量视为两个不同的预测变量,请使用dummyvar
创建单独的分类变量。
temp_Year = dummyvar(年);Year_76 =逻辑(temp_Year (:, 2));Year_82 =逻辑(temp_Year (:, 3));
创建包含以下内容的表英里/加仑
,重量
,Year_76
,Year_82
.
tbl2 =表(MPG、重量、Year_76 Year_82);
创建一个逐步线性回归模型从相同的开始模型使用mdl1
.
mdl2 = stepwiselm (tbl2,英里/加仑~体重的,“上”,“poly211”)
1.添加Year_82, FStat = 83.1956, pValue = 1.76163e-142 .添加权重:Year_82, FStat = 8.0641, pValue = 0.0055818添加Year_76, FStat = 8.1284, pValue = 0.0054157
mdl2 =线性回归模型:MPG ~ 1 + Year_76 + Weight*Year_82估计系数:Estimate SE tStat pValue __________ __________ _______ __________(截距)38.844 1.5294 25.397 1.503e-42 Weight -0.006272 0.00042673 -14.698 1.5622e-25 Year_76_1 2.0395 0.71537 2.851 0.0054157 Year_82_1 19.607 3.8731 5.0623 2.2163e-06 Weight:Year_82_1 -0.0046268 0.0014979 -3.0888 0.0026806观察数:94,误差自由度:89均方根误差:2.79 r -平方:0.885,调整后的r平方:0.88 f统计量vs常数模型:171,p值= 6.54e-41
该模型mdl2
包括交互项重量:Year_82_1
而不是体重^ 2
,包含的术语mdl1
.
输入参数
资源描述
- - - - - -输入数据
表格|数据集的数组
输入数据,包括预测器和响应变量,指定为表或数据集数组。预测器变量可以是数字、逻辑、类别、字符或字符串。响应变量必须是数字的或逻辑的。
默认情况下,
stepwiselm
取最后一个变量为响应变量,其余变量为预测变量。要将另一列设置为响应变量,请使用
ResponseVar
名称-值对的论点。要使用列的子集作为预测器,请使用
PredictorVars
名称-值对的论点。要定义模型规范,请设置
modelspec
参数使用公式或术语矩阵。公式或术语矩阵指定使用哪一列作为预测变量或响应变量。
表中的变量名不必是有效的MATLAB®标识符,但名称不能包含前导或尾随空格。如果名称无效,则在拟合或调整模型时不能使用公式;例如:
你不能指定
modelspec
使用一个公式。类时,不能使用公式指定要添加或删除的项
addTerms
函数或removeTerms
函数,分别。方法时,不能使用公式指定模型的下界和上界
一步
或stepwiselm
函数使用名称-值对参数“低”
而且“上”
,分别。
中的变量名可以进行验证资源描述
通过使用isvarname
函数。如果变量名无效,则可以使用matlab.lang.makeValidName
函数。
X
- - - - - -预测变量
矩阵
预测变量,指定为n——- - - - - -p矩阵,n观察的次数和p是预测变量的数量。每一列的X
表示一个变量,每一行表示一个观察结果。
默认情况下,模型中有一个常数项,除非您显式地删除它,所以不要在其中包含1列X
.
数据类型:单
|双
y
- - - - - -反应变量
向量
响应变量,指定为n1的向量,n是观察数。中的每个条目y
对应行的响应是X
.
数据类型:单
|双
|逻辑
modelspec
- - - - - -从模型
“不变”
(默认)|字符向量或字符串标量命名模型|t————(p+ 1)项矩阵|字符向量或字符串标量公式的形式“y ~条款”
逐步回归的起始模型,指定为以下之一:
命名模型的字符向量或字符串标量。
价值 模型类型 “不变”
模型只包含一个常数(截距)项。 “线性”
模型包含每个预测器的截距和线性项。 “互动”
模型包含一个截距,每个预测器的线性项,以及对不同预测器的所有乘积(没有平方项)。2022世界杯八强谁会赢? “purequadratic”
模型包含每个预测器的截距项、线性项和平方项。 “二次”
模型包含每个预测器的截距项、线性项和平方项,以及对不同预测器的所有乘积。2022世界杯八强谁会赢? “聚
ijk
'模型是一个多项式,所有项都在一定程度上 我
第一个预测因子是度j
在第二个预测器中,以此类推。通过使用数字0到9来指定每个预测器的最大程度。模型包含交互项,但每个交互项的程度不超过指定程度的最大值。例如,“poly13”
进行拦截x1,x2,x22,x23.,x1*x2,x1*x22条款,x1而且x2分别是第一和第二预测器。一个t————(p+ 1)矩阵,或者a计算矩阵,指定模型中的术语,其中t项的个数和p为预测变量个数,+1为响应变量。如果预测项的数量很大,并且希望以编程方式生成项,则使用项矩阵非常方便。
字符向量或字符串标量公式在表单中
“y ~条款”
,在哪里
条款
在威尔金森符号.公式中的变量名必须是资源描述
或指定的变量名Varnames
.另外,变量名必须是有效的MATLAB标识符。该软件利用模型中各项的顺序来确定拟合模型中各项的顺序
资源描述
或X
.因此,模型中的项的顺序可以与指定公式中的项的顺序不同。
如果你想指定模型中最小或最大的一组术语stepwiselm
适合,使用较低的
而且上
名称-值对参数。
数据类型:字符
|字符串
|单
|双
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:另类投资会议”、“标准”、“‘上’,‘互动’,‘详细’,1
指示stepwiselm
使用Akaike信息准则,显示它在每一步所采取的行动,并在模型中最多包含交互项。
CategoricalVars
- - - - - -分类变量列表
字符串数组|字符向量的单元格数组|逻辑或数字索引向量
类别变量列表,指定为逗号分隔的对,由“CategoricalVars”
以及包含表或数据集数组中的类别变量名的字符向量的字符串数组或单元格数组资源描述
,或指示哪些列是类别的逻辑或数字索引向量。
如果数据在表或数据集数组中
资源描述
,那么,默认情况下,stepwiselm
将字符向量的所有类别值、逻辑值、字符数组、字符串数组和单元格数组视为类别变量。如果数据在矩阵中
X
,则为默认值“CategoricalVars”
是一个空矩阵[]
.也就是说,没有变量是绝对的,除非您将其指定为绝对的。
例如,您可以使用以下任意一种方式将六个变量中的第二个和第三个变量指定为类别变量:
例子:“CategoricalVars”,[2,3]
例子:'CategoricalVars',logical([0 1 1 0 0 0])
数据类型:单
|双
|逻辑
|字符串
|细胞
标准
- - - - - -标准添加或删除术语
上交所的
(默认)|“另类投资会议”
|“bic”
|“rsquared”
|“adjrsquared”
条件添加或删除术语,指定为逗号分隔的对,由“标准”
其中一个价值观是:
上交所的
- - - - - -p价值的F-test由于添加或删除该项而导致的误差平方和的变化“另类投资会议”
-赤池信息准则(AIC)值的变化“bic”
-贝叶斯信息准则(BIC)值的变化“rsquared”
的值增加R2“adjrsquared”
-调整值的增加R2
例子:“标准”、“bic”
排除
- - - - - -观察排除
逻辑或数字索引向量
从拟合中排除的观察值,指定为逗号分隔的对,由“排除”
以及一个逻辑或数字索引向量,指示哪些观察结果应从拟合中排除。
例如,您可以使用以下任何一个示例排除6个观察结果中的2和3。
例子:“排除”,[2,3]
例子:'Exclude',logical([0 1 1 0 0 0])
数据类型:单
|双
|逻辑
拦截
- - - - - -常数项指标
真正的
(默认)|假
适合中的常数项(截距)的指示器,指定为逗号分隔的对,由“拦截”
,要么真正的
包括或假
从模型中去除常数项。
使用“拦截”
仅当使用字符向量或字符串标量而不是公式或矩阵指定模型时。
例子:“拦截”,假的
较低的
- - - - - -描述无法从模型中删除的术语的模型规范
“不变”
(默认)|特征向量|字符串标量|计算矩阵
描述不能从模型中删除的术语的模型规范,指定为逗号分隔的对,由“低”
其中一个选项是modelspec
命名模型。
例子:“低”,“线性”
NSteps
- - - - - -要走的最大步数
没有限制(默认)|正整数
要执行的最大步骤数,指定为逗号分隔的对,由“NSteps”
一个正整数。
例子:“NSteps”,5
数据类型:单
|双
被关闭的
- - - - - -阈值为准则添加项
标量值
阈值为准则添加一个术语,指定为逗号分隔的对组成“囚禁”
和一个标量值,如表中所示。
标准 | 默认值 | 决定 |
---|---|---|
上交所的 |
0.05 | 如果p价值的F-statistic小于被关闭的 (p),将术语添加到模型中。 |
“另类投资会议” |
0 | 如果模型AIC的变化小于被关闭的 ,将术语添加到模型中。 |
“BIC” |
0 | 如果模型的BIC变化小于被关闭的 ,将术语添加到模型中。 |
“Rsquared” |
0.1 | 如果模型的r平方值的增加大于被关闭的 ,将术语添加到模型中。 |
“AdjRsquared” |
0 | 如果模型调整后的r平方值的增加大于被关闭的 ,将术语添加到模型中。 |
有关更多信息,请参见标准
名称-值对的论点。
例子:“囚禁”,0.075
PredictorVars
- - - - - -预测变量
字符串数组|字符向量的单元格数组|逻辑或数字索引向量
在拟合中使用的预测器变量,指定为逗号分隔的对,由“PredictorVars”
以及表或数据集数组中变量名的字符向量的字符串数组或单元格数组资源描述
,或指示哪些列是预测变量的逻辑或数字索引向量。
中的名称中应该包含字符串值或字符向量资源描述
方法指定的名称“VarNames”
名称-值对的论点。
默认值是所有变量X
,或所有变量在资源描述
除了ResponseVar
.
例如,您可以使用以下任何一个示例指定第二个和第三个变量作为预测器变量。
例子:“PredictorVars”,[2,3]
例子:'PredictorVars',逻辑([0 1 1 0 0 0])
数据类型:单
|双
|逻辑
|字符串
|细胞
PRemove
- - - - - -去除项的标准阈值
标量值
阈值的准则删除一个术语,指定为逗号分隔的对组成“PRemove”
和一个标量值,如表中所示。
标准 | 默认值 | 决定 |
---|---|---|
上交所的 |
0.10 | 如果p价值的F-statistic大于PRemove (p-value to remove),从模型中删除该术语。 |
“另类投资会议” |
0.01 | 如果模型AIC的变化大于PRemove ,从模型中删除该项。 |
“BIC” |
0.01 | 如果模型的BIC变化大于PRemove ,从模型中删除该项。 |
“Rsquared” |
0.05 | 如果模型的r平方值的增加小于PRemove ,从模型中删除该项。 |
“AdjRsquared” |
-0.05 | 如果模型调整后的r平方值的增加小于PRemove ,从模型中删除该项。 |
在每一步,stepwiselm
函数还检查一个术语与当前模型中的其他术语是否冗余(线性相关)。当任何项与当前模型中的其他项线性相关时,则stepwiselm
函数删除冗余项,而不管标准值如何。
有关更多信息,请参见标准
名称-值对的论点。
例子:“PRemove”,0.05
ResponseVar
- - - - - -反应变量
最后一列资源描述
(默认)|包含变量名的字符向量或字符串标量|逻辑或数字索引向量
响应变量,指定为逗号分隔的对,由“ResponseVar”
和包含表或数据集数组中的变量名的字符向量或字符串标量资源描述
,或指示哪一列是响应变量的逻辑或数字索引向量。你通常需要使用“ResponseVar”
在拟合表或数据集数组时资源描述
.
例如,您可以指定第四个变量收益率
,作为六个变量的响应,可以采用以下方式之一。
例子:“ResponseVar”、“收益”
例子:“ResponseVar”,[4]
例子:'ResponseVar',逻辑([0 0 0 1 0 0])
数据类型:单
|双
|逻辑
|字符
|字符串
上
- - - - - -描述拟合项的最大集合的模型规范
“互动”
(默认)|特征向量|字符串标量|计算矩阵
描述拟合中最大的术语集的模型规范,指定为逗号分隔的对,由“上”
其中一个选项是modelspec
命名模型。
例子:“上”、“二次”
VarNames
- - - - - -变量的名字
{x1, x2,…,‘xn’,‘y’}
(默认)|字符串数组|字符向量的单元格数组
变量名,指定为逗号分隔的对,由“VarNames”
和字符向量的字符串数组或单元格数组,包括的列的名称X
首先,和响应变量的名称y
最后的
“VarNames”
不适用于表或数据集数组中的变量,因为这些变量已经有名称。
变量名不必是有效的MATLAB标识符,但名称不能包含前导或尾随空格。如果名称无效,则在拟合或调整模型时不能使用公式;例如:
类时,不能使用公式指定要添加或删除的项
addTerms
函数或removeTerms
函数,分别。方法时,不能使用公式指定模型的下界和上界
一步
或stepwiselm
函数使用名称-值对参数“低”
而且“上”
,分别。
在指定VarNames, VarNames
,您可以验证变量名varNames
通过使用isvarname
函数。如果变量名无效,则可以使用matlab.lang.makeValidName
函数。
例子:VarNames,{“马力”,“加速”,“Model_Year”,“英里”}
数据类型:字符串
|细胞
详细的
- - - - - -控件用于显示信息
1
(默认)|0
|2
控件的信息显示,指定为逗号分隔的对,由“详细”
其中一个价值观是:
0
—抑制所有显示。1
-显示每一步的操作。2
-显示评估过程和每一步所采取的行动。
例子:“详细”,2
权重
- - - - - -观察权重
的(n, 1)
(默认)|n-by-1的非负标量值的向量
观察权值,用逗号分隔的对表示“重量”
和一个n-by-1的非负标量值向量,其中n是观察数。
数据类型:单
|双
输出参数
mdl
——线性模型
LinearModel
对象
表示对数据响应的最小二乘拟合的线性模型,返回为LinearModel
对象。
对于线性模型对象的属性和方法,mdl
,请参阅LinearModel
类页面。
更多关于
计算矩阵
一个条件矩阵T
是一个t————(p+ 1)矩阵指定模型中的项,其中t是项的个数,p为预测变量个数,+1为响应变量。的价值T (i, j)
是变量的指数吗j
在术语我
.
例如,假设一个输入包含三个预测变量x1
,x2
,x3
响应变量y
的顺序x1
,x2
,x3
,y
.每一行的T
代表一个术语:
[0 0 0 0]
-常数项或截距[0 1 0 0]
- - - - - -x2
;同样,X1 ^0 * x2^1 * x3^0
[10 0 10 0]
- - - - - -x1 * x3
[2 0 0 0]
- - - - - -x1 ^ 2
[0 1 2 0]
- - - - - -x2 * (x3 ^ 2)
的0
每一项的末尾代表响应变量。通常,项矩阵中的零列向量表示响应变量的位置。如果在矩阵和列向量中有预测器和响应变量,则必须包含0
对于每一行最后一列中的响应变量。
公式
模型规范的公式是该形式的字符向量或字符串标量'
.y
~条款
'
y
是响应名称。条款
表示使用威尔金森表示法的模型中的预测项。
要表示预测器和响应变量,请使用表输入的变量名资源描述
或使用指定的变量名VarNames
.的默认值。VarNames
是{x1, x2,…,‘xn’,‘y’}
.
例如:
'y ~ x1 + x2 + x3'
指定带有截距的三变量线性模型。'y ~ x1 + x2 + x3 - 1'
指定无截距的三变量线性模型。注意,公式默认包含一个常数(拦截)项。要从模型中排除常数项,必须包含1
的公式。
一个公式包含一个常数项,除非你显式地用1
.
威尔金森符号
威尔金森表示法描述了模型中存在的项。符号与模型中出现的项有关,而与这些项的乘数(系数)无关。
威尔金森记数法使用这些符号:
+
意味着包括下一个变量。- - - - - -
方法不包括下一个变量。:
定义一个交互,它是术语的乘积。*
定义交互和所有低阶项。^
将预测因子提高到一次方,就像*
重复,所以^
也包括低阶项。()
组条件。
这个表展示了威尔金森表示法的典型例子。
威尔金森符号 | 标准记数法术语 |
---|---|
1 |
常数(拦截) |
x1 ^ k ,在那里k 是正整数 |
x1 ,x12 、……x1k |
x1 + x2 |
x1 ,x2 |
x1 * x2 |
x1 ,x2 ,x1 * x2 |
x1, x2 |
x1 * x2 只有 |
x2 |
不包括x2 |
x1 * x2 + x3 |
x1 ,x2 ,x3 ,x1 * x2 |
X1 + x2 + x3 + X1 = x2 |
x1 ,x2 ,x3 ,x1 * x2 |
x1 * x2 * x3 - x1, x2, x3 |
x1 ,x2 ,x3 ,x1 * x2 ,x1 * x3 ,x2 * x3 |
x1 * (x2 + x3) |
x1 ,x2 ,x3 ,x1 * x2 ,x1 * x3 |
有关更多细节,请参见威尔金森符号.
提示
你不能在逐步回归的同时使用稳健回归。在使用之前检查数据是否有异常值
stepwiselm
.对于其他方法,如
方差分析
的属性LinearModel
对象,看到LinearModel
.在训练一个模型之后,您可以生成预测新数据响应的C/ c++代码。生成C/ c++代码需要MATLAB编码器™.有关详细信息,请参见代码生成简介.
算法
逐步回归是一种系统的方法,根据在解释响应变量方面的统计显著性,从线性或广义线性模型中添加或删除项。该方法从一个指定为using的初始模型开始
modelspec
,然后比较增量大模型和增量小模型的解释能力。的
stepwiselm
函数使用正向和向后逐步回归来确定最终模型。的值搜索要添加到模型或从模型中删除的术语“标准”
名称-值对的论点。的默认值。
“标准”
对于线性回归模型是上交所的
.在这种情况下,stepwiselm
而且一步
的LinearModel
使用p价值的F-statistic在每个步骤中测试包含或不包含潜在项的模型。如果一个项目前不在模型中,零假设是,如果添加到模型中,该项的系数将为零。如果有足够的证据拒绝零假设,函数将该项添加到模型中。相反,如果一个项当前在模型中,零假设是该项的系数为零。如果没有足够的证据拒绝零假设,函数将从模型中删除该项。逐步回归采取这些步骤时
“标准”
是上交所的
:拟合初始模型。
检查一组不在模型中的可用术语。如果任何条款有p-值小于入口公差(也就是说,如果添加到模型中的项的系数不可能为零),则添加最小的项p-value并重复此步骤;否则,请执行步骤3。
如果模型中任何可用的术语有p-大于出口公差的值(即不能拒绝系数为零的假设),去掉最大的项p-value返回步骤2;否则,请结束该进程。
在任何阶段,如果模型不包含作为高阶项子集的所有低阶项,则函数将不会添加高阶项。例如,函数不会尝试添加术语
X1, X2 ^ 2
除非两X1
而且X2 ^ 2
已经在模型中了。同样,该函数也不会删除模型中保留的高阶项的子集中的低阶项。例如,函数将不会尝试删除X1
或X2 ^ 2
如果X1, X2 ^ 2
保留在模型中。的默认值。
“标准”
对于广义线性模型是“异常”
.stepwiseglm
而且一步
的GeneralizedLinearModel
在添加或删除术语时遵循类似的过程。方法可以指定其他条件
“标准”
名称-值对的论点。例如,您可以指定Akaike信息准则、Bayesian信息准则、r -平方或调整后的r -平方的值的变化作为增加或删除项的准则。根据初始模型中包含的术语,以及函数添加和删除术语的顺序,该函数可能从相同的潜在术语集构建不同的模型。当没有单一步骤改进模型时,函数终止。然而,不同的初始模型或不同的步骤顺序并不能保证更好的匹配。从这个意义上说,逐步模型是局部最优的,但可能不是全局最优的。
stepwiselm
将分类预测器处理如下:一个有分类预测器的模型l包括水平(类别)l- 1指标变量。模型使用第一个类别作为参考级别,因此它不包括参考级别的指示器变量。如果分类预测器的数据类型为
分类
,则可以使用类别
并通过使用对类别进行重新排序reordercats
自定义参考级别。有关创建指示符变量的详细信息,请参见虚拟变量的自动创建.stepwiselm
对待一组l- 1指标变量作为单个变量。如果您想将指标变量视为不同的预测变量,请使用dummyvar
.然后,在拟合模型时,使用除对应于类别变量的参考级别的指示变量之外的指示变量。对于绝对预测器X
,如果指定的所有列dummyvar (X)
以截距项作为预测因子,则设计矩阵秩不足。连续预测器和直言预测器之间的相互作用项l级别由元素的产品组成l- 1带有连续预测器的指标变量。
两个范畴预测器之间的相互作用项l而且米级别由(l- 1) * (米- 1)指标变量包括两个分类预测水平的所有可能组合。
不能为直言预测器指定高阶项,因为指标的平方等于它本身。
因此,如果
stepwiselm
添加或删除一个分类预测器,该函数实际上是在一个步骤中添加或删除一组指标变量。类似地,如果stepwiselm
添加或删除带有类别预测器的交互项,该函数实际上添加或删除包含类别预测器的交互项组。stepwiselm
认为南
,”
(空字符向量),""
(空字符串),< >失踪
,<定义>
值资源描述
,X
,Y
丢失的值stepwiselm
不使用在拟合中缺少值的观察值。的ObservationInfo
拟合模型的性质表明是否stepwiselm
在配合中使用每一个观察结果。
选择功能
您可以使用
fitlm
,然后手动调整模型使用一步
,addTerms
,或removeTerms
.
版本历史
介绍了R2013b
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。