stepwisefit
适合使用逐步回归线性回归模型
语法
描述
例子
逐步回归与默认参数
执行一个基本的逐步回归,得到的系数估计。
加载哈尔德
数据集。
负载哈尔德谁%检查变量加载到工作区中
名称大小字节类属性描述22 x58 2552字符哈尔德13 x5 520双热13 x1 104双成分13 x4 416双
这个数据集包含的观察各种混合物的热演化在水泥硬化四水泥原料。响应变量是热
。矩阵成分
包含四个列的预测。
运行stepwisefit
开始只有一个常数项的模型和使用默认出入境公差为0.05和0.10,分别。
b = stepwisefit(成分、热)
最初的列包括:步骤1,添加列4 p = 0.000576232步骤2,添加列1,p = 1.10528 e-06最后列包括:1 4{多项式系数的}{Std.Err。'}{“地位”}{“P”} {[1.4400]} {[0.1384]} {”“} {[1.1053 e-06]}{[0.4161]}{[0.1856]}{‘出来’}{[0.0517]}{[-0.4100]}{[0.1992]}{‘出来’}{[0.0697]}{[-0.6140]}{[0.0486]}{”“}{[1.8149 e-07]}
b =4×11.4400 0.4161 -0.4100 -0.6140
的stepwisefit
显示器显示列1
和4
都包含在最终的模型。输出b
包括所有列的估计,即使是那些不会出现在最终的模型。stepwisefit
计算列的估计2
(或3
)通过拟合模型组成的最终模型加上一列2
(或3
)。
调整逐步过程
加载carsmall
数据集,其中包含各种汽车测量。
负载carsmall谁
名字大小字节类属性加速100 x1 800双气缸100 x1 800双位移100 x1 800双马力100 x1 800双100 MPG x1 800双生产厂100 * 13 2600字符模型100 x33 6600字符Model_Year 100 x1 800双起源100 x7 1400字符体重100 x1 800双
进行逐步回归和四个连续变量和响应变量英里/加仑
。
X =(加速度气缸位移马力);y = MPG;b4_default = stepwisefit (X, y)%与默认参数逐步回归
最初的列包括:步骤1,添加列2,p = 1.59001 e-25步骤2,添加列4 p = 0.00364266步骤3,添加列1,p = 0.0161414最后一列包括:1 2 4{多项式系数的}{Std.Err。'}{“地位”}{“P”} {[-0.4517]} {[0.1842]} {”“} {[0.0161]} {[-2.6407]} {[0.4823]} {”“} {[4.0003 e-07]}{[0.0148]}{[0.0157]}{‘出来’}{[0.3472]}{[-0.0772]}{[0.0204]}{”“}{[2.6922 e-04]}
b4_default =4×1-0.4517 -2.6407 0.0148 -0.0772
这个词位移
从来没有进入模型。确定它是高度相关的,其他三个方面通过计算相关矩阵。
corrcoef (X,“行”,“完成”)从计算%排除与缺失值的行
ans =4×41.0000 -0.6438 -0.6968 -0.6968 -0.6438 1.0000 0.9517 0.8622 -0.6968 0.9517 1.0000 0.9134 -0.6968 0.8622 0.9134 1.0000
相关矩阵对应的第三行位移
。这个术语与其他三个方面高度相关,特别是气缸
(0.95
),马力
(0.91
)。
重新定义输入矩阵X
包括重量
。指定一个初始模型包含的条款位移
和马力
通过使用“InModel”
名称-值对的论点。
X =(气缸位移加速度功率重量);inmodel =(假假真真正假);b5_inmodel = stepwisefit (X, y,“InModel”inmodel)
最初的列包括:3 4步骤1,添加列5 p = 1.06457 e-06步骤2,添加列2,p = 0.00410234最后一列包括:2 3 4 5{多项式系数的}{Std.Err。'}{“地位”}{“P”}{[-0.0912]}{[0.2032]}{‘出来’}{[0.6548]}{[-2.3223]}{[0.7879]}{”“}{[0.0041]}{[0.0252]}{[0.0145]}{”“}{[0.0862]}{[-0.0449]}{[0.0231]}{”“}{[0.0555]}{[-0.0050]}{[0.0012]}{”“}{[1.0851 e-04]}
b5_inmodel =5×1-0.0912 -2.3223 0.0252 -0.0449 -0.0050
最终的模型由术语2 - 5
。然而,位移
和马力
估计有
值大于0.05
在最后的模型。您可以调整逐步算法使用的行为更为保守“PRemove”
名称-值对的论点。例如,设置“PRemove”
来0.05
(而不是默认的0.1
)在一个较小的最后结果模型只有两项,每一个都有
值小于0.05
。
b5_inmodel_premove = stepwisefit (X, y,“InModel”inmodel,“PRemove”,0.05)
最初的列包括:3 4步骤1,添加列5 p = 1.06457 e-06步骤2,添加列2,p = 0.00410234步骤3,第三列,p = 0.0862131步骤4,删除列4 p = 0.239239最后一列包括:2 5{多项式系数的}{Std.Err。'}{“地位”}{“P”}{[-0.0115]}{[0.1656]}{‘出来’}{[0.9449]}{[-1.6037]}{[0.5146]}{”“}{[0.0025]}{[0.0101]}{[0.0124]}{‘出来’}{[0.4186]}{[-0.0234]}{[0.0198]}{‘出来’}{[0.2392]}{[-0.0055]}{[0.0011]}{”“}{[3.9038 e-06]}
b5_inmodel_premove =5×1-0.0115 -1.6037 0.0101 -0.0234 -0.0055
每一列(计算中心和规模z分数)之前使用的配件“规模”
名称-值对的论点。不改变缩放模型选择,系数估计的迹象,或者他们
值。然而,缩放比例系数估计。
b5_inmodel_premove_scale = stepwisefit (X, y,“InModel”inmodel,“PRemove”,0.05,“规模”,“上”)
最初的列包括:3 4步骤1,添加列5 p = 1.06457 e-06步骤2,添加列2,p = 0.00410234步骤3,第三列,p = 0.0862131步骤4,删除列4 p = 0.239239最后一列包括:2 5{多项式系数的}{Std.Err。'}{“地位”}{“P”}{[-0.0370]}{[0.5339]}{‘出来’}{[0.9449]}{[-2.8136]}{[0.9028]}{”“}{[0.0025]}{[1.1155]}{[1.3726]}{‘出来’}{[0.4186]}{[-1.0617]}{[0.8961]}{‘出来’}{[0.2392]}{[-4.4406]}{[0.9028]}{”“}{[3.9038 e-06]}
b5_inmodel_premove_scale =5×1-0.0370 -2.8136 1.1155 -1.0617 -4.4406
通常,你估计规模比较测量的术语在不同的尺度,如马力
和重量
。在这种情况下,增加马力
由一个标准偏差导致的预期下降1
在英里/加仑
,而增加重量
由一个标准偏差导致的预期下降4.4
在英里/加仑
。
从逐步回归检索详细的输出
加载进口- 85
数据集。该数据集包含特征的汽车进口在1985年。所有列名称的列表,请参阅变量描述
在工作区或类型描述
在命令行中。
负载进口- 85谁
名称大小字节类属性描述9 x79 1422字符X 205 x26 42640双
选择一个子集的连续变量使用逐步回归,组成的预测变量发动机的大小
,生
,中风
,压缩比
,马力
,peak-rpm
,city-mpg
,highway-mpg
,和响应变量价格
。
varnames = [“引擎”,“生”,“中风”,“压缩比”,“马力”,“peak-rpm”,“city-mpg”,“highway-mpg”,“价格”];%变量名中使用逐步回归dataTbl = array2table (X(:,八16),“VariableNames”,varnames);用变量名%创建数据表Xstepw = dataTbl {: {发动机的大小的,“生”,“中风”,的压缩比,“马力”,“peak-rpm”,“city-mpg”,“highway-mpg”}};%的输入矩阵ystepw = dataTbl {: {“价格”}};%响应向量
运行stepwisefit
的变量价格
其他八个变量,首先用默认常数初始模型,然后用一个初始模型包括highway-mpg
。省略步骤信息的显示。
[betahat_def, se_def pval_def、finalmodel_def stats_def] = stepwisefit (Xstepw ystepw,“显示”,“关闭”);inmodel =(假假假假假假假真);[betahat_in, se_in pval_in、finalmodel_in stats_in] = stepwisefit (Xstepw ystepw,“InModel”inmodel,“显示”,“关闭”);
检查返回的最终模型stepwisefit
。
finalmodel_def
finalmodel_def =1×8逻辑阵列1 0 1 1 0 1 1 0
finalmodel_in
finalmodel_in =1×8逻辑阵列1 0 1 1 0 1 0 1
默认的模型滴highway-mpg
(项8
从模型和包括)city-mpg
(项7
)。比较的根均方误差(rmse)这两个最终的模型。
stats_def.rmse
ans = 3.3033 e + 03
stats_in.rmse
ans = 3.3324 e + 03
产生的模型默认参数RMSE略低。注意,全面规范的最终模型由术语估计+拦截的估计。
betahat_def%术语估计
betahat_def =8×1103×0.1559 -0.2242 -2.8578 0.3904 0.0222 0.0024 -0.2414 0.0793
stats_def.intercept%拦截估计
ans = -7.3506 e + 03
检索的默认运行的历史stepwisefit
和推荐的下一个步骤。省略步骤信息的显示。
[~,~,~,~,~,nextstep_def, history_def] = stepwisefit (Xstepw ystepw,“显示”,“关闭”);nextstep_def
nextstep_def = 0
没有进一步措施建议(nextstep_def
是0
)。
history_def。(“在”)
ans =7×8逻辑阵列1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0
该算法执行共有七个步骤。输出显示发动机的大小
(项1
步中添加)1
,马力
(项5
步中添加)2
,等等。
输入参数
X
- - - - - -预测变量
数字矩阵
预测变量指定为一个n——- - - - - -p数字矩阵,n是观察和的数量吗p是预测变量的数量。每一列的X
代表一个变量,每一行代表一个观察。
stepwisefit
总是包含一个模型中的常数项。因此,不包括1 s的一列X
。
数据类型:单
|双
y
- - - - - -反应变量
数字或逻辑向量
响应变量指定为一个n1数字或逻辑向量,n是观测的数量。中的每个条目y
的响应相应的行吗X
。
数据类型:单
|双
|逻辑
请注意
stepwisefit
对待南
值在X
或y
失踪而忽略所有行包含这些值。
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:“囚禁”,0.10,“PRemove”, 0.15,“麦克斯特”,8
指示stepwisefit
使用出入境的公差0.10
和0.15
分别和最多8
步骤。
InModel
- - - - - -条款的初始模型
逻辑向量
初始模型,指定为逗号分隔组成的“InModel”
和一个逻辑向量指定条款包括在最初的模型。默认是不包括的条款。
例子:“InModel”,真假假真
数据类型:逻辑
被关闭的
- - - - - -对模型添加术语
0.05
(默认)|积极的标量
对条款添加到模型中,指定为逗号分隔组成的“囚禁”
和积极的标量指定最大值p值的一个术语。缺省值是0.05。
例子:“囚禁”,0.10
数据类型:单
|双
PRemove
- - - - - -对消除从模型
最大的被关闭的
和0.10
(默认)|积极的标量
对消除从模型,指定为逗号分隔组成的“PRemove”
和积极的标量指定最小值p价值的术语被删除。默认值是最大的被关闭的
和0.10
。
请注意
PRemove
是不允许小于被关闭的
因为这将导致stepwisefit
进入一个无限循环,其中一个变量是多次添加到模型,从模型中删除。
例子:“PRemove”, 0.15
数据类型:单
|双
显示
- - - - - -指标显示步骤的信息
“上”
(默认)|“关闭”
指标显示步骤信息,指定为逗号分隔组成的“显示”
和“上”
或“关闭”
。
“上”
在命令窗口中显示每一步的信息(默认)。“关闭”
省略了。
例子:“显示”,“关闭”
麦克斯特
- - - - - -最大数量的步骤
正
(默认)|正整数
最大数量的步骤,指定为逗号分隔组成的“麦克斯特”
和一个正整数正
(默认)。正
允许该算法运行,直到没有一个一步改善模型。
例子:“麦克斯特”,12
数据类型:双
保持
- - - - - -他们保持初始状态
逻辑向量
他们保持初始状态,指定为逗号分隔组成的“保持”
和一个逻辑向量。的值真正的
指定在任期(或)的初始模型部队这个词留在(或)最终的模型。的值假
任期不强迫这个词留在(或)最终的模型。默认是指定没有术语来保持他们的初始状态。
例子:“保持”,真的真的假的假的
数据类型:逻辑
规模
- - - - - -归心指示器和扩展条款
“关闭”
(默认)|“上”
归心指示器和扩展术语中,指定为逗号分隔组成的“规模”
和“关闭”
或“上”
。
“关闭”
没有中心和规模(默认)。“上”
中心和鳞片的每一列X
(计算z拟合之前分数)。
例子:“规模”,“上”
输出参数
b
——估计系数
数值向量
估计系数,作为数值向量返回相应的条款X
。的stepwisefit
函数值的计算b
如下:
如果一个项是包含在最终的模型,然后相应的价值
b
是一种由贪婪导致的估计拟合最终的模型。如果一个项是排除在最终的模型,然后相应的价值
b
是一种由贪婪导致的估计拟合最终模型加上这一项。
请注意
获得一个完整规范的安装模式,你也需要估计拦截除了b
。估计拦截作为字段输出参数提供统计数据
。更多细节见stepwisefit拟合模型。
se
——标准错误
数值向量
标准错误,作为数字返回向量对应的估计b
。
pval
- - - - - -p值
数值向量
p值,作为数值向量返回测试结果是否的元素b
是0
。
finalmodel
——最后的模型
逻辑向量
最终的模型,作为一个逻辑向量长度等于返回的列数X
,表明哪些术语是在最后的模型。
统计数据
——额外的统计
结构
额外的统计数据,作为结构与以下字段返回。所有统计数据与最终模型除特殊说明外。
场 | 描述 |
---|---|
源 |
特征向量 |
教育部 |
自由度为错误 |
df0 |
自由度的回归 |
SStotal |
总平方和的反应 |
SSresid |
残差的平方和 |
函数 |
F统计测试最终的模型与不模型(平均) |
pval |
p价值的F统计 |
rmse |
根均方误差 |
xr |
残差的条款不能最终模型,计算减去每一项预测反应的最终模型 |
年 |
残差为响应在最后使用预测模型 |
B |
最终模型中的系数项,每一项的值没有在模型中设置的值将通过这一项添加到模型中 |
SE |
标准误差系数估计 |
TSTAT |
t系数估计的统计数据 |
PVAL |
p系数值估计 |
拦截 |
估计拦截 |
wasnan |
行包含的数据 |
nextstep
——建议下一步
非负整数
建议下一步,作为一个非负整数返回等于下一项的索引添加或删除从模型,或0
如果没有进一步的措施建议。
历史
——信息的步骤
结构
步骤信息,作为结构与以下字段返回。
场 | 描述 |
---|---|
B |
回归系数矩阵,每一列是一个步骤,每一行是一个系数向量 |
rmse |
根均方误差模型在每一步 |
df0 |
自由度的回归在每一步 |
在 |
逻辑数组表明该预测模型中的每一步,每一行是一个步骤,每一列是一个预测 |
更多关于
stepwisefit
拟合模型
最后一个stepwisefit
拟合模型
在这里,
预测平均响应。
stats.intercept
是估计的拦截。X
(finalmodel:)
是输入矩阵方面的最终模型。b (finalmodel)
是向量系数估计的最终模型。
算法
逐步回归是一个方法用于添加和删除条款条款从多重线性模型基于统计学意义。这种方法从一个初始模型,然后开始需要连续的步骤修改模型,添加或删除。在每一步,p价值的F测试模型与统计计算,没有潜在的术语。如果一个术语不是目前模型中,零假设是这个词有一个零系数如果添加到模型中。如果有足够的证据拒绝零假设,这个词添加到模型中。相反,如果一个词目前模型中,零假设是,这个词有一个零系数。如果没有足够的证据拒绝零假设,从模型中删除。该方法所得如下:
初始模型。
如果在模型中没有任何条款p公差值不到一个条目,添加最小的一家p值,重复这个步骤。例如,假设初始模型是默认常数模型和宽容是默认的条目
0.05
。算法首先符合模型组成的常数加上另一个术语和最小的识别项p值,例如术语4
。如果这个词4
p值小于0.05
,然后术语4
添加到模型中。接下来,执行一个搜索算法在所有模型组成的常数,术语4
和另一个术语。如果一个学期没有在模型中有一个p值小于0.05
用最小的,术语p值被添加到模型和重复的过程。当不存在任何进一步的条款,可以添加到模型中,该算法步骤3。如果在模型中任何条款p值大于退出宽容,去掉最大的p值到步骤2;否则,结束。
在算法的每一步,stepwisefit
使用最小二乘法估计模型系数。添加一个学期后模型在早期阶段,该算法可能随后下降这一项如果不再有用的结合其他条款后来添加的。方法终止时没有一个一步改善模型。然而,最后的模型并不能保证最优,这意味着有最适合的数据。不同的初始模型或一个不同的序列的步骤可能会导致一个更好的选择。从这个意义上讲,分段模型的局部最优,但不一定是全局最优。
选择功能
您可以创建一个模型使用
fitlm
,然后手动调整模型使用一步
,addTerms
,removeTerms
。使用
stepwiselm
如果你有一个表中的数据,你有连续和分类预测,或你想指定模型公式可以包括高阶和交互。使用
stepwiseglm
创建阶梯式广义线性模型(例如,如果你有一个二进制响应变量和想要适应一个分类模型)。
引用
[1]德雷伯,诺曼·R。和哈里·史密斯。应用回归分析。新泽西州霍博肯:Wiley-Interscience, 1998年。307 - 312页。
版本历史
之前介绍过的R2006a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。