主要内容

stepwiselm

执行逐步回归

描述

例子

mdl= stepwiselm (资源描述为表或数据集数组中的变量创建线性模型资源描述使用逐步回归从常数模型开始添加或删除预测因子。stepwiselm的最后一个变量资源描述作为响应变量。stepwiselm使用正向和反向逐步回归来确定最终模型。方法的值,在每个步骤中,函数搜索要将模型添加到模型或从模型中删除的项“标准”论点。

例子

mdl= stepwiselm (Xy创建响应的线性模型y到数据矩阵中的预测变量X

例子

mdl= stepwiselm (___modelspec指定起始模型modelspec使用以前语法中的任何输入参数组合。

例子

mdl= stepwiselm (___名称,值使用一个或多个名称-值对参数指定其他选项。例如,您可以指定分类变量、在模型中使用的最小或最大的术语集、要采取的最大步骤数,或者使用的标准stepwiselm用于添加或删除术语。

例子

全部折叠

加载哈尔德数据集,测量水泥成分对其硬化热的影响。

负载哈尔德

这个数据集包括变量成分而且.矩阵成分含有水泥中四种化学物质的百分比组成。向量包含每个水泥样品在180天后的热硬化值。

拟合一个逐步线性回归模型的数据。指定0.06作为标准的阈值,以便向模型中添加一个术语。

MDL =逐步(配料,热量,“囚禁”, 0.06)
1.添加x4, FStat = 22.7985, pValue = 0.0005762323.添加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 ________ ________ ______ __________(截距)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统计量vs常数模型:230,p值= 4.41e-09

默认情况下,起始模型是一个常量模型。stepwiselm属性的前向选择x4x1,x2Terms(按此顺序),因为对应p-values小于被关闭的值为0.06。stepwiselm然后使用逆向消去和移除x4从模型中,因为,一次x2在模型中,p价值的x4大于默认值PRemove0.1点。

使用存储在数据集数组中的变量执行逐步回归。使用威尔金森符号指定起始模型,并使用可选参数标识响应和预测变量。

加载样例数据。

负载医院

医院数据集数组包括患者的性别、年龄、体重和吸烟状况。

拟合线性模型,起始模型为常数项和吸烟者作为预测变量。指定响应变量,重量,分类预测变量,年龄,吸烟者

逐步地,逐步地的体重~ 1 +抽烟'...“ResponseVar”“重量”“PredictorVars”, {“性”“年龄”“抽烟”},...“CategoricalVar”, {“性”“抽烟”})
1.添加性别,FStat = 770.0158, pValue = 6.262758e-48移除吸烟者,FStat = 0.21224, pValue = 0.64605
mdl =线性回归模型:权值~ 1 +性别估计系数:估计SE tStat pValue ________ ______ ______ ___________(截距)130.47 1.1995 108.77 5.2762e-104性别男性50.06 1.7496 28.612 2.2464e-49观测数:100,误差自由度:98均方根误差:8.73 r平方:0.893,调整r平方:0.892 f统计量vs常数模型:819,p值= 2.25e-49

在每一步,stepwiselm搜索要添加和删除的术语。第一步,逐步递增算法给模型加上 p -value of 6.26e-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 1 1 0

使用逐步回归创建线性回归模型。使用术语矩阵指定起始模型和模型的上界,并指定“详细”As 2显示评估过程和每一步所做的决定。

mdl = stepwism (X,MPG,T_starting,“上”T_upper,“详细”, 2)
x1的pValue为4.0973e-06 x2的pValue为1.6434e-28 1。加上x2, FStat = 259.3087, pValue = 1.643351e-28加上x1的pValue为0.18493没有候选项要删除
mdl =线性回归模型:y ~ 1 + x2估计系数:估计SE tStat pValue __________ _________ _______ __________(截距)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统计量vs常数模型:259,p值= 1.64e-28

用逐步回归方法拟合线性回归模型和分类预测器。stepwiselm一步添加或删除一组指示符变量,以添加或删除分类预测器。这个例子还展示了如何手动创建指示器变量并将它们传递给stepwiselm如此......以至于......stepwiselm将每个指标变量作为单独的预测器。

加载carsmall数据集,并创建一个表使用重量Model_Year,英里/加仑变量。

负载carsmallYear = categorical(Model_Year);tbl1 =表(MPG,重量,年份);

拟合的线性回归模型英里/加仑使用逐步回归。的函数指定起始模型重量.设置模型的上限为“poly21”,这意味着模型可以(最多)包括一个常数和项重量体重^ 2一年,重量*年.指定“详细”As 2显示评估过程和每一步所做的决定。

Mdl1 = stepwism (tbl1,“MPG ~重量”“上”“poly21”“详细”, 2)
添加Year的pValue为8.2284e-15添加Weight^2的pValue为0.15454 1。添加年份,FStat = 47.5136, pValue = 8.22836e-15 pValue for Adding Weight^2 = 0.0022303 pValue for Adding Weight:Year = 0.0071637添加Weight^2, FStat = 9.9164, pValue = 0.0022303添加Weight:Year的pValue为0.19519删除Year的pValue为2.9042e-16
mdl1 =线性回归模型:MPG ~ 1 + Weight + Year + Weight^2估计系数:估计SE tStat pValue __________ __________ _______ __________(截距)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平方:0.885,调整后r平方: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);Year_76 = logical(temp_Year(:));Year_82 = logical(temp_Year(:));

创建一个表,其中包含英里/加仑重量Year_76,Year_82

tbl2 = table(MPG,Weight,Year_76,Year_82);

创建一个逐步线性回归模型从相同的开始模型用于mdl1

Mdl2 = stepwism (tbl2,“MPG ~重量”“上”“poly211”
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
mdl2 =线性回归模型:MPG ~ 1 + Year_76 +权值*Year_82估计系数:估计SE tStat pValue __________ __________ _______ __________(截距)38.844 1.5294 25.397 1.503e-42权值-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权值: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函数。

预测变量,指定为n——- - - - - -p矩阵,n观察的次数和p是预测变量的数量。的每一列X表示一个变量,每一行表示一个观察结果。

默认情况下,模型中有一个常数项,除非您显式地删除它,所以不要包含1的列X

数据类型:|

响应变量,指定为n-by-1向量,其中n是观测的数量。每一项y对应的行是否为响应X

数据类型:||逻辑

逐步回归的起始模型,指定为以下之一:

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

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

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

    “y ~项”

    在哪里条款威尔金森符号.公式中的变量名必须为资源描述或指定的变量名Varnames.此外,变量名必须是有效的MATLAB标识符。

    该软件利用拟合模型中术语的顺序来确定拟合模型中术语的顺序资源描述X.因此,模型中的项的顺序可以不同于指定公式中的项的顺序。

如果您想指定模型中最小或最大的项集,则stepwiselm适合,使用较低的而且名称-值对参数。

数据类型:字符|字符串||

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。

例子:另类投资会议”、“标准”、“‘上’,‘互动’,‘详细’,1指示stepwiselm使用赤池信息准则,显示它在每一步所采取的操作,并且在模型中最多包含交互项。

类别变量列表,指定为逗号分隔的对,由“CategoricalVars”或包含表或数据集数组中的类别变量名的字符向量的字符串数组或单元格数组资源描述,或逻辑或数字索引向量,指示哪些列是分类的。

  • 如果数据在表或数据集数组中资源描述,那么,默认情况下,stepwiselm将字符向量的所有分类值、逻辑值、字符数组、字符串数组和单元格数组视为分类变量。

  • 如果数据是矩阵X,则为默认值“CategoricalVars”是一个空矩阵[].也就是说,除非将变量指定为分类变量,否则没有变量是分类变量。

例如,您可以使用以下任意一种方法将六个变量中的第二个和第三个变量指定为分类变量:

例子:“CategoricalVars”,[2,3]

例子:'CategoricalVars',logical([0 1 1 0 0 0 0])

数据类型:||逻辑|字符串|细胞

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

  • 上交所的- - - - - -p-valueF-测试由于增加或删除项而导致的误差平方和的变化

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

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

  • “rsquared”的价值增加R2

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

例子:“标准”、“bic”

从拟合中排除的观测值,指定为由逗号分隔的对组成的“排除”以及一个逻辑或数值索引向量,指示哪些观测值应从拟合中排除。

例如,你可以用下面的例子排除观察结果2和3。

例子:“排除”,[2,3]

例子:'Exclude',logical([0 1 1 0 0 0 0])

数据类型:||逻辑

拟合中常数项(截距)的指示器,指定为逗号分隔的对,由“拦截”,要么真正的包括:包括或从模型中去掉常数项。

使用“拦截”仅当使用字符向量或字符串标量而不是公式或矩阵指定模型时。

例子:“拦截”,假的

描述不能从模型中删除的术语的模型规范,指定为由逗号分隔的对组成“低”其中一个选项是modelspec命名模型。

例子:“低”,“线性”

要执行的最大步数,指定为逗号分隔的对,由“NSteps”一个正整数。

例子:“NSteps”,5

数据类型:|

阈值为条件添加一个术语,指定为由逗号分隔的对组成“囚禁”和一个标量值,如本表所述。

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

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

例子:“囚禁”,0.075

拟合中使用的预测变量,指定为逗号分隔的对,由“PredictorVars”以及表或数据集数组中变量名的字符向量的字符串数组或单元格数组资源描述,或逻辑或数字索引向量,指示哪些列是预测变量。

字符串值或字符向量应该在资源描述属性指定的名称“VarNames”名称-值对参数。

默认为所有变量X,或所有变量在资源描述除了ResponseVar

例如,您可以使用以下示例之一指定第二个和第三个变量作为预测变量。

例子:“PredictorVars”,[2,3]

例子:'PredictorVars',logical([0 1 1 0 0 0 0])

数据类型:||逻辑|字符串|细胞

阈值,用于移除一个术语,指定为由逗号分隔的对组成“PRemove”和一个标量值,如本表所述。

标准 默认值 决定
上交所的 0.10 如果p的-valueF-statistic大于PRemovep-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”,[4]

例子:'ResponseVar',logical([0 0 0 0 1 0 0])

数据类型:||逻辑|字符|字符串

描述拟合中最大术语集的模型规范,指定为逗号分隔的对,由“上”其中一个选项是modelspec命名模型。

例子:“上”、“二次”

变量名,指定为逗号分隔的对,由“VarNames”和包含列名的字符向量的字符串数组或单元格数组X首先是响应变量的名称y最后的

“VarNames”不适用于表或数据集数组中的变量,因为这些变量已经有名称。

变量名不必是有效的MATLAB标识符,但名称不能包含前导或尾随空格。如果名称无效,则在拟合或调整模型时不能使用公式;例如:

在指定VarNames, VarNames中,您可以验证变量名varNames通过使用isvarname函数。变量名无效,则可以使用matlab.lang.makeValidName函数。

例子:VarNames,{“马力”,“加速”,“Model_Year”,“英里”}

数据类型:字符串|细胞

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

  • 0-禁止所有显示。

  • 1—显示每一步执行的操作。

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

例子:“详细”,2

观察权重,由逗号分隔的对组成“重量”和一个n非负标量值的-by-1向量,其中n是观测的数量。

数据类型:|

输出参数

全部折叠

表示对数据响应的最小二乘拟合的线性模型,返回为LinearModel对象。

对于线性模型对象的属性和方法,mdl,请参阅LinearModel类页面。

更多关于

全部折叠

计算矩阵

A项矩阵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 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是正整数 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对象,看到LinearModel

  • 在训练模型之后,您可以生成预测新数据响应的C/ c++代码。生成C/ c++代码需要MATLAB编码器™.详细信息请参见代码生成简介

算法

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

    stepwiselm函数使用正向和反向逐步回归来确定最终模型。的值搜索要添加到模型或从模型中删除的项“标准”名称-值对参数。

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

    逐步回归采取这些步骤时“标准”上交所的

    1. 拟合初始模型。

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

    3. 如果模型中任何可用项具有p-大于出口容差的值(即不能拒绝系数为零的假设),删除最大的项p-value并返回步骤2;否则,请结束该进程。

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

    的默认值“标准”对于广义线性模型是“异常”stepwiseglm而且一步GeneralizedLinearModel按照类似的过程添加或删除术语。

    属性可以指定其他条件“标准”名称-值对参数。例如,您可以指定赤池信息准则、贝叶斯信息准则、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在拟合中使用每个观察结果。

选择功能

版本历史

在R2013b中引入