主要内容

fitglm

创建广义线性回归模型

描述

例子

mdl= fitglm (资源描述)返回一个广义线性模型适合表中的变量或数组的数据集资源描述。默认情况下,fitglm以最后一个变量作为响应变量。

例子

mdl= fitglm (X,y)返回一个广义线性模型的响应y,适合数据矩阵X

例子

mdl= fitglm (___,modelspec)返回一个指定类型的广义线性模型modelspec

例子

mdl= fitglm (___,名称,值)返回一个广义线性模型由一个或多个指定附加选项名称,值对参数。

例如,您可以指定哪个变量是绝对的,响应变量的分布,使用和链接功能。

例子

全部折叠

使物流二项式模型吸烟的概率的函数的年龄,体重,和性,使用双向交互模型。

加载医院数据集的数组。

负载医院dsa =医院;

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

modelspec =“吸烟者~年龄*重量*性别-年龄:重量:性的;

适合物流二项式模型。

mdl = fitglm (dsa、modelspec“分布”,“二”)
mdl =广义线性回归模型:分对数(吸烟)~ 1 +性别*年龄+性别*重量+年龄*重量分配=二项式系数估计:估计SE tStat pValue ___________ _____ ________ _________(拦截)Sex_Male 0.75938 -6.0492 19.749 -0.3063 -2.2859 12.424 -0.18399 0.85402年龄体重0.11691 0.50977 0.22934 0.81861 0.031109 0.15208 0.20455 0.83792 Sex_Male:年龄0.020734 0.20681 0.10025 0.92014 Sex_Male:体重0.01216 - 0.053168 0.22871 - 0.8191年龄:体重-0.00071959 - 0.0038964 -0.18468 - 0.85348 100观察,93错误自由度色散:1 x ^ 2-statistic与常数模型:5.07,p = 0.535

所有的假定值(下pValue)大。这意味着所有的系数都显著。大 p 值的测试模型,0.535,表明该模型可能没有统计上的不同常数模型。

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

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

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

mdl = fitglm (X, y,“线性”,“分布”,“泊松”)
mdl =广义线性回归模型:日志(y) ~ 1 + x1 + x2 + x3 + x4 + x5 + x6 + x7 =泊松分布估计系数:估计SE tStat pValue _____说__________(拦截)0.88723 0.070969 12.502 7.3149 e-36 x1 e-17 x2 0.0083388 0.056527 0.14752 2.1416 0.44413 0.052337 8.4858 0.88272 x3 x4 0.00069087 0.21518 0.063416 3.3932 -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

pe-17值2.14,0.00069,和1.58 e-09表明变量的系数x1,x3,x6统计学意义。

输入参数

全部折叠

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

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

  • 不同的列设置为响应变量,使用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列。

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

模型规范,指定为一个值。

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

    价值 模型类型
    “不变” 模型只包含一个常数(拦截)。
    “线性” 模型包含一个为每个预测拦截和线性项。
    “互动” 模型包含一个拦截,为每个预测线性项,和所有的产品对不同的预测(无平方项)。下载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。因此,模型中的条款的顺序可以不同于条款的顺序在指定的公式。

例子:“二次”

名称-值参数

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

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

例子:“分布”、“正常”,“链接”、“概率单位”,“排除”,[23日59]指定响应的分布是正常的,和指示fitglm使用probit链接功能和排除的23日和59观察健康。

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

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

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

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

初始值的系数估计,指定为一个数值向量。默认值是初始拟合值来自输入数据。

数据类型:|

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

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

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

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

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

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

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

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

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

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

例子:“DispersionFlag”,真的

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

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

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

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

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

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

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

数据类型:||逻辑

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

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

例子:“拦截”,假的

优化选项,指定为一个结构。这个参数决定了控制参数的迭代算法fitglm用途。

创建“选项”通过使用函数值statset或通过创建一个结构数组包含字段和值在这个表中描述。

字段名 价值 默认值
显示

数量的信息显示的算法

  • “关闭”——显示任何信息

  • “最后一次”——显示最终的输出

“关闭”
麦克斯特

最大允许的迭代次数,指定为一个正整数

One hundred.
TolX

终止对参数,指定为一个积极的标量

1 e-6

您还可以输入statset ('fitglm”)在命令窗口中看到的字段的名称和默认值fitglm接受的“选项”名称-值参数。

例子:“选项”,statset(“显示”、“最后”,麦克斯特,1000)指定要显示的最后信息迭代算法的结果,和迭代允许的最大数量更改为1000。

数据类型:结构体

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

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”当配件表或数据集的数组资源描述

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

例子:“ResponseVar”、“收益”

例子:“ResponseVar”, [4]

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

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

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

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

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

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

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

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

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

数据类型:字符串|细胞

观察体重、指定为逗号分隔组成的“重量”和一个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是一个标准的线性模型,除非你指定的吗分布名称-值对。

  • 等方法plotResidualsdevianceTest或属性的GeneralizedLinearModel对象,看到GeneralizedLinearModel

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

算法

  • fitglm对待分类预测如下:

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

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

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

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

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

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

选择功能

引用

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

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

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

扩展功能

版本历史

介绍了R2013b