fitglm

创建广义线性回归模型

描述

MDL= fitglm(资源描述返回一个广义线性模型拟合变量在表或数据集阵列资源描述。默认,fitglm取最后一个变量作为响应变量。

MDL= fitglm(Xÿ返回响应的广义线性模型ÿ,装配到数据矩阵X

MDL= fitglm(___modelspec返回类型指定一个广义线性模型modelspec

MDL= fitglm(___名称,值返回由一个或多个指定的额外选项的广义线性模型名称,值对参数。

例如,您可以指定哪些变量是分类的、响应变量的分布以及要使用的链接函数。

例子

全部收缩

让吸烟的年龄,体重和性别的功能,采用了双向互动模式的概率的逻辑二项式模型。

加载医院数据集阵列。

加载医院dsa =医院;

使用允许变量年龄、体重和性别之间双向交互的公式指定模型。吸烟者是反应变量。

modelspec =吸烟年龄*体重*性别年龄:体重:性别;

适合物流二项式模型。

MDL = fitglm(DSA,modelspec,“分布”“二项式”
MDL =广义线性回归模型:分对数(吸烟)〜1个+性别*年龄+性别*重量+年龄*分子量分布=二项式估计系数:估计SE TSTAT p值___________ _________ ________ _______(截距)-6.0492 19.749 -0.3063 0.75938 Sex_Male  -2。2859 12.424 -0.18399 0.85402 Age 0.11691 0.50977 0.22934 0.81861 Weight 0.031109 0.15208 0.20455 0.83792 Sex_Male:Age 0.020734 0.20681 0.10025 0.92014 Sex_Male:Weight 0.01216 0.053168 0.22871 0.8191 Age:Weight -0.00071959 0.0038964 -0.18468 0.85348 100 observations, 93 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 5.07, p-value = 0.535

所有的p值(在pValue下)都是大的。这意味着没有一个系数是显著的。大 p - 值的模型,0.535的测试表明,这种模式可能不会从一个常数模型统计学差异。

使用20个预测器创建样本数据,仅使用3个预测器和一个常量创建泊松响应。

rng (“默认”%,持续重现X = randn(100,7);亩= EXP(X(:[4; 0.2; 0.3],[1 3 6])* + 1);Y = poissrnd(亩);

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

MDL = fitglm(X,Y,“线性”“分布”“泊松”
mdl =广义线性回归模型:log(y) ~ 1 + x1 + x2 + x3 + x4 + x5 + x6 + x7分布=泊松估计系数:估计SE tStat pValue _____说__________(拦截)0.88723 0.070969 12.502 7.3149 e-36 x1 0.44413 0.052337 8.4858 2.1416 e-17 x2 x3 0.21518 0.063416 3.3932 0.88272 0.0083388 0.056527 0.14752 0.00069087 x4 -0.058386 -0.060824 0.073441 -0.8282 0.40756 0.065503 -0.89135 0.37274 x5 x6 e-09 x7 0.04316 0.06146 0.70225 1.5878 0.34267 0.056778 6.0352 0.48252 100年观察,92错误自由度色散:1 x ^ 2-statistic与常数模型:119年,假定值= 1.55 e-22

p2.14e-17,0.00069,和1.58e-09 - 值表示的变量的所述系数x1x3, |x6|具有统计学意义。

输入参数

全部收缩

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

  • 默认,fitglm取最后一个变量为应变量,其他的预测变量。

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

  • 要使用的列作为预测的一个子集,使用PredictorVars名称 - 值对的参数。

  • 要定义一个型号规格,设置modelspec使用公式或术语矩阵参数。式或术语矩阵指定哪些列作为预测或响应变量使用。

在一个表中的变量名不一定是有效的MATLAB®身份标识。但是,如果名称是无效的,你不能当你适应或调整模型中使用的公式;例如:

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

  • 属性时,不能使用公式指定要添加或删除的项addTerms功能或removeTerms功能,分别。

  • 你不能用一个公式时使用指定型号的上限和下限一步要么stepwiseglm用名称 - 值对的参数函数“低”'上', 分别。

您可以验证的变量名中资源描述通过使用isvarname函数。下面的代码返回逻辑1真正),每个变量都有一个有效的变量名。

cellfun (@isvarname tbl.Properties.VariableNames)
如果变量名资源描述是无效的,然后使用它们转换matlab.lang.makeValidName函数。
tbl.Properties.VariableNames = matlab.lang.makeValidName(tbl.Properties.VariableNames);

预测变量,指定为ñ——- - - - - -p矩阵,ñ是观测值的数量和p为预测变量的个数。每一列的X表示一个可变的,并且每行表示一个观察。

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

数据类型:|

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

  • 如果“分布”不是“二项式”, 然后ÿ必须是ñ×1向量,其中ñ是观测值的数量。在每个条目ÿ对于相应行的响应X。数据类型必须是单或双。

  • 如果“分布”“二项式”, 然后ÿ可以是ñ1的向量或ñ-by-2矩阵与计数从第1列和BinomialSize在第2列。

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

模型规范,指定为这些值之一。

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

    模型类型
    “不变” 模型仅包含一个常数(截距)术语。
    “线性” 模型包含每个预测器的截距和线性项。
    “互动” 模型包含一个截距,每个预测器的线性项,以及不同预测器对的所有乘积(没有平方项)。下载188bet金宝搏
    'purequadratic' 模型包含每个预测项的截距项、线性项和平方项。
    “二次” 模型包含一个截距项,线性和对每个预测平方项,以及对不同的预测器的所有产品。下载188bet金宝搏
    “聚ijk 模型是一个多项式,它的所有项在一定程度上都是多项式一世在第一个预测中,是程度Ĵ在第二个预测,依此类推。通过使用数字0虽然9.模型包含交互项指定每个预测器的最大的程度,但每个交互项的次数不超过规定的程度的最大值。例如,“poly13”具有截距和X1X2X22X23X1*X2X1*X22条款,X1X2是所述第一和第二预测器,分别。
  • 一个Ť————(p+ 1)矩阵,或者a计算矩阵,指定模型中的项,其中Ť是项数和p为预测变量的数量,+1表示响应变量。如果谓词的数量很大,并且希望以编程方式生成术语,则术语矩阵非常方便。

  • 字符向量或标量的字符串表示公式形式

    “Y ~条款”

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

    该软件通过使用术语的顺序确定在拟合模型项的顺序资源描述要么X。因此,模型中的项的顺序可以与指定公式中的项的顺序不同。

例子:“二次”

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。的名字是参数的名称和是对应的值。的名字必须出现引号内。您可以按照任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'分配', '正常', '链接', '概率', '排除',[23,59]指定对所述响应的分布是正常的,并且指示fitglm使用probit link函数并从fit中排除第23次和第59次观察值。

为二项式分布试验次数,即样本大小,指定为逗号分隔的一对组成的'BinomialSize'和变量名中资源描述,数字标量,或相同的长度响应的数值向量。这是参数ñ对于拟合的二项分布。BinomialSize只适用于分配参数“二项式”

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

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

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

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

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

  • 如果数据是在矩阵中X,则默认值“CategoricalVars”是一个空矩阵[]。也就是说,没有任何变量是无条件的,除非你把它指定为无条件的。

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

例子:'CategoricalVars',[2,3]

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

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

用于计算色散参数的指示器“二项式”“泊松”分布,指定为逗号分隔的一对组成的“DispersionFlag”与下列情况之一。

真正 计算的标准误差当估计一个分散参数。所估计的分散参数值是平方皮尔逊残差由自由度误差(DFE)划分的总和。
违约。使用理论值计算标准误差。

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

例子:'DispersionFlag',真

响应变量的分布,指定为逗号分隔的一对组成的“分布”与下列情况之一。

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

例子:“分配”,“伽马”

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

例如,可以排除观察图2和3的6使用以下实施例任一。

例子:'排除',[2,3]

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

数据类型:||合乎逻辑

指示器在拟合常数项(截距),指定为逗号分隔的一对组成的'截距',要么真正包括或将常数项从模型中移除。

采用'截距'只有当指定使用字符向量或标量的字符串,而不是一个公式或矩阵模型。

例子:“拦截”,假的

在配合偏移变量,指定为逗号分隔的一对组成的“偏移”和变量名中资源描述或与响应长度相同的数字向量。

fitglm使用抵消作为系数值固定为1的附加预测器。换句话说,拟合的公式是

Fμ=偏移+X*b

哪里F是的链接功能,μ是平均响应,并且X*b是预测值的线性组合X。该抵消预测器具有系数1

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

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

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

字符串值或字符向量应该在其中的名称中资源描述或指定的名称'VarNames'名称 - 值对的参数。

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

例如,可以指定第二和第三变量如使用以下实施例任一个预测变量。

例子:'PredictorVars',[2,3]

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

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

响应变量在配合使用,指定为逗号分隔的一对组成的'ResponseVar'在表或数据集数组中包含变量名的字符向量或字符串标量资源描述,或指示哪一列是响应变量的逻辑或数值索引向量。您通常需要使用'ResponseVar'拟合表或数据集阵列时资源描述

例如,您可以指定第四个变量作为响应了6个变量,通过以下方式之一。

例子:“ResponseVar”、“收益”

例子:'ResponseVar',[4]

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

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

变量的名称,指定为逗号分隔的对'VarNames'和一个字符串数组或字符向量包括的列名的单元阵列X第一,和用于响应变量名称ÿ持续。

'VarNames'并不适用于表或数据集数组变量,因为这些变量已经有了名字。

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

  • 属性时,不能使用公式指定要添加或删除的项addTerms功能或removeTerms功能,分别。

  • 你不能用一个公式时使用指定型号的上限和下限一步要么stepwiseglm用名称 - 值对的参数函数“低”'上', 分别。

前指定'VarNames',varNames,可以验证其中的变量名varNames通过使用isvarname函数。下面的代码返回逻辑1真正),每个变量都有一个有效的变量名。

cellfun (@isvarname varNames)
如果变量名varNames是无效的,然后使用它们转换matlab.lang.makeValidName函数。
varNames = matlab.lang.makeValidName(varNames);

例子:'VarNames',{ '马力', '加速', 'Model_Year', 'MPG'}

数据类型:字符串|细胞

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

数据类型:|

输出参数

全部收缩

广义线性回归模型GeneralizedLinearModel使用对象的创建fitglm要么stepwiseglm

更多关于

全部收缩

计算矩阵

一个方面矩阵Ť是一个Ť————(p(1)表示模型项的矩阵,其中Ť是项数,p为预测变量的数量,+1表示响应变量。的价值T(I,J)是可变的指数Ĵ在术语一世

例如,假设输入包括三个预测变量一个C和响应变量ÿ按顺序一个Cÿ。每行Ť代表一个词:

  • [0 0 0 0]- 常量术语或截距

  • [0 1 0 0]-;等价地,甲^ 0 * B ^ 1 * C ^ 0

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

  • [2 0 0 0]-^ 2

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

0在每个期限结束表示响应变量。通常,在一个方面矩阵的零的列向量表示响应变量的位置。如果你在一个矩阵列向量预测和响应变量,那么你就必须包括0对于每行最后一列中的响应变量。

公式

一种用于模型规范公式的形式为一个字符向量或标量串ÿ条款

  • ÿ是响应名称。

  • 条款表示使用威尔金森符号在模型预测方面。

例如:

  • 'Y ~ A + B + C'指定与截距的三变量线性模型。

  • 'Y〜A + B + C - 1'规定了没有截距的三变量线性模型。需要注意的是公式中包含默认常数(拦截)项。要排除从模型中的常数项,你必须包括1的公式。

威尔金森符号

威尔金森符号描述了模型中出现的术语。这个符号与模型中的项有关,而与这些项的乘数(系数)无关。

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

  • +装置包括下一个变量。

  • -手段不包括下一个变量。

  • 限定的相互作用,这是项的乘积。

  • *定义一个交互和所有低阶术语。

  • ^将预测器提升到一次方,完全一样*重复的,所以^还包括低阶术语。

  • ()团体方面。

这个表展示了威尔金森符号的典型例子。

威尔金森符号 术语标准符号
1 常数(截距)术语
^ k,在那里ķ是一个正整数 一个一个2,...,一个ķ
A + B 一个
A * B 一个A * B
A: B A * B只有
- b 不包括
A * B + C 一个CA * B
A + B + C + A:B 一个CA * B
A * B * C - A:B:C 一个CA * B一个* C公元前
A *(B + C) 一个CA * B一个* C

统计和机器学习工具箱™符号总是包含常数项,除非你明确地使用删除项1

有关更多细节,请参见威尔金森符号

规范的链接功能

对于广义线性模型的默认链接功能是规范链接功能

分配 正则链接函数名 链接功能 意味着(逆)函数
'正常' “身份” Fμ)=μ μ=Xb
“二项式” 'Logit模型' Fμ)=日志(μ/(1 -μ)) μ= EXP(Xb)/(1个+ EXP(Xb))
“泊松” “日志” Fμ)=日志(μ μ= EXP(Xb
“伽马” -1 Fμ)= 1 /μ μ= 1 /(Xb
“逆高斯” -2 Fμ)= 1 /μ2 μ=(Xb-1/2

提示

  • 广义线性模型MDL是一个标准的线性模型,除非你与另外指定分配名称-值对。

  • 对于方法,例如plotResiduals要么devianceTest的属性GeneralizedLinearModel对象时,看到GeneralizedLinearModel

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

算法

  • fitglm对待一个分类预测如下:

    • 与具有一个分类预测模型大号水平(类别)包括大号- 1指标变量。该模型使用第一类作为参考电平,所以它不包括用于参考电平指示变量。如果分类预测的数据类型分类,然后可以使用以下命令检查类别的顺序类别和重新排序的类别,通过使用reordercats自定义引用级别。

    • fitglm对待一群大号- 1指示符变量为单个变量。如果您希望将指示符变量视为不同的预测变量,请使用以下命令手动创建指示符变量dummyvar。然后,当您适合模型时,除了与分类变量的参考级别对应的指标变量外,使用指标变量。用于分类预测器X的所有列dummyvar(X)和截距项作为预测,则设计矩阵变成秩亏。

    • 连续预测和分类预测与之间的相互作用方面大号级别由元素-明智的乘积组成大号- 1指标变量与连续预测。

    • 两个范畴谓词之间的交互项大号中号级别由大号- 1)*(中号- 1)指标变量,包括两个分类预测级别的所有可能的组合。

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

  • fitglm认为为NaN“”(空字符向量),“”(空字符串),<失踪><未定义>资源描述Xÿ丢失的值。fitglm不使用匹配中缺失值的观察值。该ObservationInfo拟合模型的性质指示是否fitglm使用在配合每个观测。

另类功能

参考文献

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

[2] Dobson, A. J。简介广义线性模型。纽约:查普曼和霍尔出版社,1990年。

[3]与McCullagh,P.,和J. A.内尔德。广义线性模型。纽约:查普曼和霍尔出版社,1990年。

扩展功能

介绍了在R2013b