逐步GLM

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

描述

mdl= stepwiseglm (tbl创建表或数据集数组的广义线性模型tbl使用逐步回归来添加或删除预测,从一个常数模型开始。逐步GLM使用的最后一个变量tbl作为响应变量。逐步GLM使用正向和反向逐步回归确定最终模型。在每一步中,函数都会根据“标准”论点

例子

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

mdl= stepwiseglm (___模型规格指定起始模型模型规格使用前面语法中的任何输入参数组合。

例子

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

例子

全部折叠

仅使用20个预测器中的3个创建响应数据,并使用逐步算法创建一个广义线性模型,看看它是否使用了正确的预测器。

用20个预测器创建数据,用3个预测器加上一个常数创建泊松响应。

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

利用泊松分布拟合一个广义线性模型。

mdl = stepwiseglm (X, y,...“不变”“上”“线性”“分配”“泊松”
1.加x5, Deviance = 134.439, Chi2Stat = 52.24814, PValue = 4.891229e-13加上x15, Deviance = 106.285, Chi2Stat = 28.15393, PValue = 1.1204e-07加上x10, Deviance = 95.0207, Chi2Stat = 11.2644, PValue = 0.000790094
mdl =广义线性回归模型:log(y) ~ 1 + x5 + x10 + x15估计SE tStat pValue ________ ________ ______ __________ (Intercept) 1.0115 0.064275 15.737 8.4217e-56 x5 0.39508 0.066665 5.9263 3.0977e-09 x10 0.18863 0.05534 3.4085 0.0006532 x15 0.29295 0.053269 5.4995 3.8089e-08 100个观测值,96个误差自由度

起始模型为常数模型。逐步GLM默认情况下,使用模型的偏差作为标准。它首先补充说x5进入模型,作为 p -测试统计值偏差(两个模型偏差的差异)小于默认阈值0.05。然后,它补充道连接因为考虑到x5在模型中,当连接添加, p -值的卡方检验小于0.05。然后补充说x10因为考虑到x5连接在模型中,什么时候x10添加, p -值的卡方检验统计量再次小于0.05。

输入参数

全部折叠

输入数据,包括预测器和响应变量,指定为表或数据集数组。预测变量和响应变量可以是数字、逻辑、分类、字符或字符串。只有在以下情况下,响应变量才能具有非数值的数据类型“分配”“二”

  • 默认情况下,逐步GLM将最后一个变量作为响应变量,其余变量作为预测变量。

  • 要将不同的列设置为响应变量,请使用应答器名称-值对的论点。

  • 要使用列的子集作为预测器,请使用PredictorVars名称-值对的论点。

  • 要定义模型规范,请设置模型规格使用公式或术语矩阵的参数。公式或术语矩阵指定使用哪些列作为预测器或响应变量。

表中的变量名不一定是有效的MATLAB®标识符。但是,如果名称无效,则在适合或调整模型时不能使用公式;例如:

  • 你不能指定模型规格使用公式。

  • 属性时,不能使用公式指定要添加或删除的术语addTerms函数或移除函数,分别。

  • 属性时,不能使用公式来指定模型的上下限逐步GLM函数的名称-值对参数“更低”“上”,分别。

您可以验证变量名tbl通过使用isvarname功能。下面的代码返回逻辑1真正的),以获取每个具有有效变量名的变量。

cellfun (@isvarname tbl.Properties.VariableNames)
如果变量名在tbl是无效的,则使用matlab.lang.makeValidName函数。
tbl.Properties.VariableNames = matlab.lang.makeValidName (tbl.Properties.VariableNames);

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

默认情况下,模型中有一个常量项,除非您显式删除它,否则不要在模型中包含一列1X

数据类型:单一的|

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

  • 如果“分配”不是“二”,然后y必须是一个n1的向量,n为观察次数。中的每个条目y对应一行的响应是X。数据类型必须为单或双。

  • 如果“分配”“二”,然后y可以是一个n1的向量或n- × 2矩阵,列1和BinomialSize在第2列。

数据类型:单一的||逻辑|绝对的

启动模型逐步GLM,指定为下列其中之一:

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

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

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

    “Y ~条款”

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

如果您想指定模型中最小或最大的项集逐步地适合,使用降低名称-值对参数。

数据类型:字符|字符串|单一的|

名称-值对的观点

指定可选的逗号分隔的对名称,值论据。名称参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数名称1,值1,…,名称,值

例子:另类投资会议”、“标准”、“‘分配’,‘泊松’,‘上’,‘互动’将Akaike信息准则作为模型添加或删除变量的准则,将泊松分布作为响应变量的分布,将具有所有可能交互作用的模型作为最大模型考虑作为拟合。

二项分布的试验次数,即样本容量,指定为逗号分隔对组成“BinomialSize”变量名tbl、数字标量或与响应长度相同的数字向量。这是参数n对于拟合的二项分布。BinomialSize仅当分布参数是“二”

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

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

数据类型:单一的||字符|字符串

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

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

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

例如,您可以使用以下任意一个示例指定6个观察结果中的2个和3个为分类。

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

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

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

添加或删除术语的条件,指定为逗号分隔对,由“标准”以及以下其中之一:

  • “异常”- - - - - -p-价值F或者通过添加或移除项来检验偏差变化。F-test用于测试单个模型。卡方检验用于比较两种不同的模型。

  • 上交所的- - - - - -p价值的F-通过增加或删除项来检验平方和误差的变化。

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

  • “bic”—Bayesian information criterion (BIC)值的变化。

  • “rsquared”-增加价值R2

  • “adjrsquared”-调整值增加R2

例子:“标准”、“bic”

用于计算色散参数的指标“二”“泊松”发行版,指定为逗号分隔对,由“DispersionFlag”下面是其中之一。

真正的 在计算标准误差时估计一个离散参数
违约计算标准误差时使用理论值

拟合函数总是估计其他分布的离散度。

例子:“DispersionFlag”,真的

响应变量的分布,指定为逗号分隔对组成“分配”下面是其中之一。

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

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

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

例如,您可以使用下面的任何一个示例排除6个观察值中的2个和3个。

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

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

数据类型:单一的||逻辑

适应度中的常数项(截距)指示符,指定为逗号分隔的对组成“拦截”或者真正的包括或从模型中删除常量项。

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

例子:“拦截”,错

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

例子:“低”,“线性”

要采取的最大步骤数,指定为逗号分隔的对,包括“NSteps”一个正整数。

例子:“NSteps”,5

数据类型:单一的|

匹配中的偏移量变量,指定为逗号分隔的对,由“抵消”以及与响应长度相同的向量或变量名。

逐步GLM使用抵消作为一个额外的预测器,系数值固定为1.0。换句话说,拟合公式为

fμ~Offset+(涉及实际预测值的术语)

抵消预测有系数1

例如,考虑一个泊松回归模型。假设计数的数量是已知的理论原因与预测器成正比一个。通过使用日志链接函数和指定日志(一)作为补偿,您可以强制模型满足这个理论约束。

数据类型:单一的||字符|字符串

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

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

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

例子:“囚禁”,0.075

要在适合的情况下使用的预测变量,指定为逗号分隔对组成“PredictorVars”以及表或数据集数组中变量名的字符向量的字符串数组或单元格数组tbl,或逻辑或数字索引向量,指示哪些列是预测变量。

字符串值或字符向量应位于tbl,或使用“VarNames”名称-值对的论点。

默认是所有的变量X,或所有变量tbl除了应答器

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

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

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

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

删除术语标准的阈值,指定为逗号分隔对,由“PRemove”和标量值,如表所示。

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

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

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

例子:“PRemove”,0.05

响应变量要在适合中使用,指定为逗号分隔对组成“ResponseVar”以及在表或数据集数组中包含变量名的字符向量或字符串标量tbl,或逻辑或数字索引向量,指示哪一列是响应变量。你通常需要使用“ResponseVar”当拟合表或数据集数组时tbl

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

例子:“ResponseVar”,“收益率”

例子:“ResponseVar”,[4]

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

数据类型:单一的||逻辑|字符|字符串

模型规范描述了最大的适合的术语集,指定为逗号分隔对组成“上”其中一个选择是模型规格命名模型。

例子:“上”、“二次”

变量名称,指定为逗号分隔对,由“VarNames”以及字符向量的字符串数组或单元格数组,其中包括的列的名称X首先是响应变量的名称y最后一次。

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

变量名不必是有效的MATLAB标识符。但是,如果名称无效,则在适合或调整模型时不能使用公式;例如:

  • 属性时,不能使用公式指定要添加或删除的术语addTerms函数或移除函数,分别。

  • 属性时,不能使用公式来指定模型的上下限逐步GLM函数的名称-值对参数“更低”“上”,分别。

在指定VarNames, VarNames,您可以在中验证变量名varNames通过使用isvarname功能。下面的代码返回逻辑1真正的),以获取每个具有有效变量名的变量。

cellfun(@isvarname,varNames)
如果变量名在varNames是无效的,则使用matlab.lang.makeValidName函数。
varNames = matlab.lang.makeValidName (varNames);

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

数据类型:字符串|细胞

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

  • 0—禁止所有显示。

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

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

例子:“详细”,2

观察权值,指定为逗号分隔的对,由“重量”和一个n非负标量值的-by-1向量,其中n为观察次数。

数据类型:单一的|

输出参数

全部折叠

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

对于广义线性模型对象的性质和方法,mdl,请参阅GeneralizedLinearModel类页面。

更多关于

全部折叠

术语矩阵

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

例如,假设一个输入包含三个预测变量一个B,C以及响应变量Y的顺序一个BC,Y。每一行的T代表一个术语:

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

  • [0 1 0 0]- - - - - -B;同样,A^0 * b ^1 * c ^0

  • [1 0 1 0]- - - - - -* C

  • [2 0 0]- - - - - -A^2

  • [0 1 2 0]- - - - - -B * (C ^ 2)

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

公式

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

  • Y是响应名称。

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

例如:

  • ' y ~ a + b + c '指定一个带有截距的三变量线性模型。

  • 1 . a + b + c - 1'指定一个无截距的三变量线性模型。注意,默认情况下,公式包含一个常量(截距)项。要从模型中排除常数项,必须包含1在公式中。

威尔金森符号

威尔金森表示法描述了模型中的术语。这个符号与模型中的项相关,而不是这些项的乘数(系数)。

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

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

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

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

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

  • 将预测器提高到幂,与中的完全相同重复,所以也包括低阶项。

  • ()分组术语。

此表显示了威尔金森符号的典型示例。

威尔金森符号 标准符号术语
1 常数(拦截)
A^k,在那里k为正整数 一个一个2、……一个k
A + B 一个B
A * B 一个BA * B
A: B A * B只有
- b 不包括B
A*B+C 一个BCA * B
A+B+C+A:B 一个BCA * B
* B * C - A: B: C 一个BCA * B* CB * C
* (B + C) 一个BCA * B* C

统计学和机器学习工具箱™表示法总是包含一个常量术语,除非您明确地使用该术语1

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

正则配分函数

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

广义线性模型的标准链接函数

分布 链接函数名 链接功能 平均(逆)函数
“正常” “身份” 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编码器™。有关详细信息,请参见代码生成简介

算法

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

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

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

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

    1. 适合初始模型。

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

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

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

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

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

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

  • 逐步GLM对分类预测器的处理如下:

    • 一个有绝对预测器的模型l包括水平(类别)l- 1指标变量。模型使用第一个类别作为参考级别,因此不包含参考级别的指标变量。如果分类预测器的数据类型为绝对的,则可以使用类别并通过使用reordercats自定义参考级别。

    • 逐步GLM对待一组l- 1指示器变量作为一个单独的变量。如果您想将指示器变量视为不同的预测变量,可以使用dummyvar。然后在拟合模型时,使用除分类变量参考水平对应的指标变量外的其他指标变量。对于绝对预测器X,如果指定的所有列dummyvar (X)并以截距项作为预测因子,使设计矩阵秩亏缺。

    • 连续预测器和分类预测器之间的交互项l级别由以下元素的元素级产品组成:l- 1带有连续预测器的指标变量。

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

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

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

  • 逐步GLM考虑''(空字符向量),""(空字符串),,<定义>价值观tblX,Y丢失值。逐步GLM不使用缺少匹配值的观测值。的观测信息拟合模型的性质表明是否逐步GLM把每个观察结果都用在合适的地方。

选择

工具书类

[1] Collett D。二进制数据建模。纽约:查普曼与霍尔出版社,2002年出版。

[2] 多布森,A.J。广义线性模型导论。纽约:查普曼与霍尔出版社,1990。

P. McCullagh和J. A. Nelder。广义线性模型。纽约:查普曼与霍尔出版社,1990。

介绍了R2013b