主要内容

stepwiseglm

通过逐步回归建立广义线性回归模型

描述

mdl= stepwiseglm (资源描述)创建一个广义线性模型的数据集表或数组资源描述使用逐步回归来添加或删除预测,从一个常数模型。stepwiseglm使用的最后一个变量资源描述作为反应变量。stepwiseglm使用向前和向后逐步回归来确定最终的模型。在每个步骤中,函数搜索术语来添加或删除从模型的模型,基于价值的“标准”论点。

例子

mdl= stepwiseglm (X,y)创建一个广义线性模型的响应y一个数据矩阵X

mdl= stepwiseglm (___,modelspec)指定起始模型modelspec使用任何输入参数组合在以前的语法。

例子

mdl= stepwiseglm (___,modelspec,名称,值)使用一个或多个指定附加选项名称-值对参数。例如,您可以指定分类变量,最小或最大的一组术语使用模型中,步骤的最大数目,或标准stepwiseglm用来添加或删除。

例子

全部折叠

使用三20创建响应数据预测,并创建一个广义线性模型使用分段算法是否使用正确的预测。

创建数据与20预测和泊松响应仅使用三个预测因子,加上一个常数。

rng (“默认”)%的再现性20 X = randn (100);μ= exp (X (: [5 10 15]) * [。4; 2。3)+ 1);y = poissrnd(μ);

适合使用泊松分布的广义线性模型。

mdl = stepwiseglm (X, y,“不变”,“上”,“线性”,“分布”,“泊松”)
1。添加x5,异常= 134.439,Chi2Stat = 52.24814, PValue = 4.891229 e-13 2。添加连接,异常= 106.285,Chi2Stat = 28.15393, PValue = 1.1204 e-07 3。添加x10,异常= 95.0207,Chi2Stat = 11.2644, PValue = 0.000790094
mdl =广义线性回归模型:日志(y) ~ 1 + x5 + x10 + x15 =泊松分布估计系数:估计SE tStat pValue说______ __________(拦截)1.0115 0.064275 15.737 8.4217 e-56 x5 e-09 x10 0.18863 0.05534 3.4085 3.0977 0.39508 0.066665 5.9263 0.0006532 x15 0.29295 0.053269 5.4995 3.8089 100年e-08观察,96错误自由度色散:1 x ^ 2-statistic与常数模型:91.7,p = 9.61 e-20

开始模型常数模型。stepwiseglm在默认情况下使用模型的偏差作为标准。它首次添加x5到模型, p 值的测试统计,异常(异常的两种模型的区别),小于默认阈值0.05。然后,它增加了连接因为考虑到x5在模型中,什么时候连接添加, p 卡方测试值小于0.05。然后补充说x10因为考虑到x5连接在模型中,什么时候x10添加, p 卡方检验统计量的值小于0.05。

输入参数

全部折叠

输入数据包括预测和响应变量指定为一个表或数据集的数组。预测变量和响应变量可以是数字,逻辑,直言,字符或字符串。响应变量可以有数值只有以外的数据类型“分布”“二”

  • 默认情况下,stepwiseglm以最后一个变量作为响应变量和其他预测变量。

  • 不同的列设置为响应变量,使用ResponseVar名称-值对的论点。

  • 使用列的一个子集作为预测因子,使用PredictorVars名称-值对的论点。

  • 定义一个模型规范,设置modelspec参数使用公式或矩阵。公式或计算矩阵指定列作为预测或响应变量。

表中的变量名称不需要有效的MATLAB®标识符,但名称必须不包含前导或尾随空格。如果名称是无效的,你适合时不能使用一个公式或调整模型;例如:

  • 你不能指定modelspec使用一个公式。

  • 你不能用一个公式来指定术语来添加或删除当你使用addTerms函数或removeTerms函数,分别。

  • 你不能用一个公式来指定模型的上下边界时使用一步stepwiseglm函数的名称-值对参数“低”“上”,分别。

您可以验证变量名资源描述通过使用isvarname函数。如果变量名是无效的,那么您可以将其转换使用matlab.lang.makeValidName函数。

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

默认情况下,模型中的常数项,除非你显式地删除它,所以不包括1 s的一列X

数据类型:|

响应变量指定为一个向量或矩阵。

  • 如果“分布”不是“二”,然后y必须是一个n1的向量,n是观测的数量。中的每个条目y的响应相应的行吗X。数据类型必须是单引号或双。

  • 如果“分布”“二”,然后y可以是一个n1的向量或n1和2矩阵与计数列BinomialSize在第2列。

数据类型:||逻辑|分类

起始模型stepwiseglm,指定为以下之一:

  • 一个特征向量或字符串标量命名模型。

    价值 模型类型
    “不变” 模型只包含一个常数(拦截)。
    “线性” 模型包含一个为每个预测拦截和线性项。
    “互动” 模型包含一个拦截,为每个预测线性项,和所有的产品对不同的预测(无平方项)。下载188bet金宝搏
    “purequadratic” 模型包含一个截距项为每个预测和线性平方项。
    “二次” 模型包含一个拦截的术语,为每个预测线性和平方项,和所有的产品对不同的预测。下载188bet金宝搏
    “聚ijk 模型是一个多项式与学位的所有条款在第一个预测,学位j在第二个预测,等等。为每个预测指定最大程度利用数字0到9。模型包含交互条款,但每个交互项的程度不超过指定的度的最大值。例如,“poly13”有一个拦截和x1,x2,x22,x23,x1*x2,x1*x22条款,x1x2分别是第一和第二预测。
  • 一个t————(p+ 1)矩阵,或计算矩阵在模型中指定条件,t的条款和数量吗p预测变量的数量,+ 1占响应变量。矩阵是方便当预测的数量很大,你想以编程方式生成条件。

  • 一个特征向量或字符串标量公式在表单中

    “y ~条款”,

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

    软件决定的条款在拟合模型通过使用条款的顺序资源描述X。因此,模型中的条款的顺序可以不同于条款的顺序在指定的公式。

如果你想指定最小或最大的条款在模型中stepwiselm适合,使用较低的名称-值对参数。

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

名称-值参数

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

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:另类投资会议”、“标准”、“‘分配’,‘泊松’,‘上’,‘互动’指定Akaike信息准则为准绳来添加或删除变量的模型中,泊松分布作为反应变量的分布,并与所有可能的相互作用模型作为最大的模型考虑的健康。

试验二项分布,样本大小,指定为逗号分隔组成的“BinomialSize”和变量名资源描述、数字标量或数值向量长度相同的响应。这是参数n安装二项分布。BinomialSize只适用于当分布参数是“二”

如果BinomialSize是一个标量值,这意味着所有的观察有相同数量的试验。

作为一个替代BinomialSize,您可以指定响应为一个两列矩阵列1和计数BinomialSize在第2列。

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

类别变量列表中,指定为逗号分隔组成的“CategoricalVars”和字符串数组或单元阵列特征向量包含分类表中的变量名或数据集的数组资源描述、逻辑或数字索引向量显示哪些列直言。

  • 如果表中的数据或数据集的数组资源描述那么,在默认情况下,stepwiseglm将所有分类值、逻辑值,字符数组,字符串数组和细胞特征向量作为分类变量的数组。

  • 如果数据矩阵X的默认值“CategoricalVars”是一个空矩阵[]。即不变量分类,除非你指定分类。

例如,您可以指定第二个和第三个变量的分类使用下列六:

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

例子:“CategoricalVars”、逻辑([0 1 1 0 0 0])

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

标准添加或删除项,指定为逗号分隔组成的“标准”这些值之一:

  • “异常”- - - - - -p价值的F以及或卡方测试结果的偏差的变化添加或删除。的F单个模型以及测试,和卡方检验比较两个不同的模型。

  • 上交所的- - - - - -p价值的F以及变化的平方误差的总和,结果添加或删除。

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

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

  • “rsquared”——增加的价值R2

  • “adjrsquared”——增加价值的调整R2

例子:“标准”、“bic”

计算色散参数指标“二”“泊松”分布,指定为逗号分隔组成的“DispersionFlag”和一个以下。

真正的 估计色散参数时,计算标准错误。估计色散参数值是培生残差的平方和除以自由度误差(DFE)。
违约。使用1计算的理论值标准错误。

拟合函数总是估计其他发行版的色散。

例子:“DispersionFlag”,真的

分布的响应变量,指定为逗号分隔组成的“分布”和一个以下。

“正常” 正态分布
“二” 二项分布
“泊松” 泊松分布
“伽马” 伽马分布
逆高斯分布的 逆高斯分布

例子:“分布”、“伽马”

观察从健康,排除指定为逗号分隔组成的“排除”和逻辑或数字索引向量表示,从适合观测,以排除。

例如,您可以排除观测2和3的6使用下面的例子。

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

例子:“排除”,逻辑([0 1 1 0 0 0])

数据类型:||逻辑

为常数项指标(拦截),指定为逗号分隔组成的“拦截”,要么真正的包括或去除模型中的常数项。

使用“拦截”只有当指定模型使用一个特征向量或字符串标量,不是一个公式或矩阵。

例子:“拦截”,假的

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

例子:“低”,“线性”

最大数量的步骤,指定为逗号分隔组成的“NSteps”和一个正整数。

例子:“NSteps”, 5

数据类型:|

健康,抵消变量指定为逗号分隔组成的“抵消”和变量名资源描述或者一个数值向量长度相同的反应。

stepwiseglm使用抵消作为一个额外的预测系数值固定在1。换句话说,拟合的公式

f(μ)=抵消+X*b,

在哪里f是连接函数,μ是平均响应,X*b的线性组合预测吗X。的抵消预测了系数1

例如,考虑一个泊松回归模型。假设的数量成正比计数理论闻名理由预测一个。通过使用日志功能,通过指定链接日志(一)作为补偿,你可以迫使模型来满足这个理论的约束。

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

阈值标准添加项,指定为逗号分隔组成的“囚禁”和一个标量值,在这个表中描述。

标准 默认值 决定
“异常” 0.05 如果p价值的F统计或卡方统计量小于被关闭的(p输入值),将项添加到模型中。
上交所的 0.05 如果p价值的F统计量小于被关闭的词添加到模型。
“另类投资会议” 0 如果模型的AIC的变化小于被关闭的词添加到模型。
“BIC” 0 如果模型的BIC的变化小于被关闭的词添加到模型。
“Rsquared” 0.1 如果模型的平方值的增加大于被关闭的词添加到模型。
“AdjRsquared” 0 如果增加模型的平方值大于调整被关闭的词添加到模型。

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

例子:“囚禁”,0.075

预测变量用于配合,指定为逗号分隔组成的“PredictorVars”和字符串数组或单元阵列特征向量的变量名称的表或数据集的数组资源描述、逻辑或数字索引向量显示哪些列预测变量。

字符串值或特征向量应该名称中资源描述,或者您指定的名称使用“VarNames”名称-值对的论点。

默认是所有变量X或所有变量资源描述除了ResponseVar

例如,您可以指定第二个和第三个变量作为预测变量使用下面的例子。

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

例子:“PredictorVars”、逻辑([0 1 1 0 0 0])

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

阈值标准删除一个术语,指定为逗号分隔组成的“PRemove”和一个标量值,在这个表中描述。

标准 默认值 决定
“异常” 0.10 如果p价值的F统计或卡方统计量大于PRemove(p值删除),从模型中删除这个词。
上交所的 0.10 如果p价值的F统计量大于PRemove从模型中,删除这个词。
“另类投资会议” 0.01 如果模型的AIC的变化大于PRemove从模型中,删除这个词。
“BIC” 0.01 如果模型的BIC的变化大于PRemove从模型中,删除这个词。
“Rsquared” 0.05 如果模型的平方值的增加小于PRemove从模型中,删除这个词。
“AdjRsquared” -0.05 如果增加模型的平方值小于调整PRemove从模型中,删除这个词。

在每一步,stepwiseglm函数也检查是否一个术语是多余的(线性相关的)与其他条款在当前的模型。当一个项是线性相关的其他条款在当前模型,stepwiseglm函数删除冗余项,无论价值标准。

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

例子:“PRemove”, 0.05

反应变量在适合使用,指定为逗号分隔组成的“ResponseVar”和一个特征向量或字符串标量数据集包含表中的变量名或数组资源描述、逻辑或数字索引向量表示哪个列变量的响应。你通常需要使用“ResponseVar”当配件表或数据集的数组资源描述

例如,您可以指定第四变量,说收益率六个变量的响应,在下列方式之一。

例子:“ResponseVar”、“收益”

例子:“ResponseVar”, [4]

例子:“ResponseVar”、逻辑([0 0 0 1 0 0])

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

模型规范描述最大的组条件适合时,指定为逗号分隔组成的“上”其中一个选项modelspec命名模型。

例子:“上”、“二次”

变量的名字,指定为逗号分隔组成的“VarNames”和一个字符串数组或单元阵列的特征向量,包括的列的名称X首先,和响应变量的名称y最后一次。

“VarNames”不适用于变量数据集在一个表格或数组,因为这些变量已经有名字。

变量名不需要有效MATLABidentifiers,但是名称不能包含前导或尾随空格。如果名称是无效的,你适合时不能使用一个公式或调整模型;例如:

在指定VarNames, VarNames,您可以验证的变量名varNames通过使用isvarname函数。如果变量名是无效的,那么您可以将其转换使用matlab.lang.makeValidName函数。

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

数据类型:字符串|细胞

控制显示的信息,指定为逗号分隔组成的“详细”这些值之一:

  • 0——抑制所有显示。

  • 1——显示每一步的行动。

  • 2——显示评估过程和每一步的行动。

例子:“详细”,2

观察体重、指定为逗号分隔组成的“重量”和一个n1负的标量值的向量,n是观测的数量。

数据类型:|

输出参数

全部折叠

广义线性回归模型,指定为一个GeneralizedLinearModel对象创建使用fitglmstepwiseglm

更多关于

全部折叠

计算矩阵

一个条件矩阵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

  • (1 0 1 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

更多细节,请参阅威尔金森符号

正则配分函数

默认链接函数的广义线性模型规范的链接功能

分布 规范的链接函数名 链接功能 意味着(逆)函数
“正常” “身份” f(μ)=μ μ=Xb
“二” 分对数的 f(μ)=日志(μ/ (1 -μ)) μ= exp (Xb)/ (1 + exp (Xb))
“泊松” “日志” f(μ)=日志(μ) μ= exp (Xb)
“伽马” 1 f(μ)= 1 /μ μ= 1 / (Xb)
逆高斯分布的 2 f(μ)= 1 /μ2 μ= (Xb)1/2

提示

  • 广义线性模型mdl是一个标准的线性模型,除非你指定的吗分布名称-值对。

  • 等其他方法devianceTest或属性的GeneralizedLinearModel对象,看到GeneralizedLinearModel

  • 训练模型后,可以生成C / c++代码为新数据预测的反应。需要生成C / c++代码MATLAB编码器™。有关详细信息,请参见介绍代码生成

算法

  • 逐步回归是一个系统性的方法来添加和删除从一个线性或广义线性模型基于统计学意义的解释变量的响应。使用指定的方法始于一个初始模型,modelspec,然后比较了增量较大和较小的模型的解释力。

    stepwiseglm函数使用向前和向后逐步回归来确定最终的模型。每一步,函数搜索条件对模型添加或删除从模型基础上的价值“标准”名称-值对的论点。

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

    逐步回归的时候需要这些步骤“标准”上交所的:

    1. 初始模型。

    2. 检查一组可用的条款不能在模型中。如果任何条款p公差值不到一个入口(也就是说,如果一个词不太可能有一个零系数如果添加到模型),添加术语与最小的p值和重复这个步骤;否则,进入步骤3。

    3. 如果在模型中任何可用的条款p值大于退出公差(即零系数的假设不能被拒绝),删除与最大的术语p值并返回步骤2;否则,结束流程。

    在任何阶段,该函数不会增加一个高阶术语如果模型不包括所有低阶项的高阶项的子集。例如,函数不会试图添加X1, X2 ^ 2除非两X1X2 ^ 2已经在模型中。同样,这个函数不会删除低阶项高阶项保留在模型的子集。例如,函数不会试图删除X1X2 ^ 2如果X1, X2 ^ 2仍然在模型中。

    的默认值“标准”广义线性模型“异常”stepwiseglm一步GeneralizedLinearModel遵循类似的程序添加或删除。

    您可以指定使用的其他标准“标准”名称-值对的论点。例如,您可以指定的值的变化Akaike信息标准,贝叶斯信息准则,平方,或调整的平方为准绳添加或删除。

    根据条款包含在初始模型,和函数的顺序添加和删除条款,该函数可能会建立不同的模型相同的一组潜在的条款。函数终止当没有一步改善模型。然而,不同的初始模型或一个不同的一系列步骤并不能保证一个更好的选择。从这个意义上讲,分段模型的局部最优,但可能不是全局最优。

  • stepwiseglm对待分类预测如下:

    • 一个模型的分类预测l包括水平(类别)l- 1指标变量。模型使用第一类作为参考水平,所以它不包括参考的指标变量的水平。如果数据类型的分类预测分类,那你可以检查的顺序分类利用类别通过使用和重新排序的类别reordercats自定义参考水平。关于创建指标变量的更多细节,请参阅自动创建虚拟变量

    • stepwiseglm治疗组l- 1作为一个变量指标变量。如果你想把指标变量不同的预测变量,使用手动创建指标变量dummyvar。然后使用指标变量,除了一个对应的参考电平分类变量,当你适应一个模型。的分类预测X如果你指定的所有列dummyvar (X)和一个截距项预测,然后设计矩阵变得不足。

    • 交互条款之间的连续预测和分类预测l由element-wise产品的水平l- 1变量与连续预测指标。

    • 两个分类预测之间的交互方面l水平的(l- 1)* (- 1)指标变量包括所有可能的组合的两个分类预测的水平。

    • 你不能指定高阶术语分类预测,因为一个指标的平方等于本身。

    因此,如果stepwiseglm添加或删除分类预测,实际上函数添加或删除的指标变量在一个步骤。类似地,如果stepwiseglm添加或删除一个交互项分类预测,实际上这个函数添加或删除组交互条款包括分类预测。

  • stepwiseglm认为,(空字符向量),”“(空字符串),<失踪>,<定义>资源描述,X,Y缺失值。stepwiseglm不使用与缺失值的观察。的ObservationInfo拟合模型表明是否的属性stepwiseglm使用中的每个观察健康。

选择

引用

[1]Collett D。二进制数据建模。纽约:查普曼&大厅,2002。

[2]多布森,a·J。介绍了广义线性模型。纽约:查普曼&大厅,1990。

[3]McCullagh, P。,J. A. Nelder.广义线性模型。纽约:查普曼&大厅,1990。

版本历史

介绍了R2013b