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
)大。这意味着所有的系数都显著。大
值的测试模型,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
的p
e-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
函数。
X
- - - - - -预测变量
矩阵
预测变量指定为一个n——- - - - - -p矩阵,n是观察和的数量吗p是预测变量的数量。每一列的X
代表一个变量,每一行代表一个观察。
默认情况下,模型中的常数项,除非你显式地删除它,所以不包括1 s的一列X
。
数据类型:单
|双
y
- - - - - -反应变量
向量|矩阵
响应变量指定为一个向量或矩阵。
如果
“分布”
不是“二”
,然后y
必须是一个n1的向量,n是观测的数量。中的每个条目y
的响应相应的行吗X
。数据类型必须是单引号或双。如果
“分布”
是“二”
,然后y
可以是一个n1的向量或n1和2矩阵与计数列BinomialSize
在第2列。
数据类型:单
|双
|逻辑
|分类
modelspec
- - - - - -模型规范
“线性”
(默认)|特征向量或字符串标量命名模型|t————(p+ 1)矩阵|特征向量或字符串标量形式公式“y ~条款”
模型规范,指定为一个值。
一个特征向量或字符串标量命名模型。
价值 模型类型 “不变”
模型只包含一个常数(拦截)。 “线性”
模型包含一个为每个预测拦截和线性项。 “互动”
模型包含一个拦截,为每个预测线性项,和所有的产品对不同的预测(无平方项)。下载188bet金宝搏 “purequadratic”
模型包含一个截距项为每个预测和线性平方项。 “二次”
模型包含一个拦截的术语,为每个预测线性和平方项,和所有的产品对不同的预测。下载188bet金宝搏 “聚
ijk
”模型是一个多项式与学位的所有条款 我
在第一个预测,学位j
在第二个预测,等等。为每个预测指定最大程度利用数字0到9。模型包含交互条款,但每个交互项的程度不超过指定的度的最大值。例如,“poly13”
有一个拦截和x1,x2,x22,x23,x1*x2,x1*x22条款,x1和x2分别是第一和第二预测。一个t————(p+ 1)矩阵,或计算矩阵在模型中指定条件,t的条款和数量吗p预测变量的数量,+ 1占响应变量。矩阵是方便当预测的数量很大,你想以编程方式生成条件。
一个特征向量或字符串标量公式在表单中
“y ~条款”
,在哪里
条款
在威尔金森符号。公式中的变量名必须是变量名资源描述
或指定的变量名Varnames
。另外,变量名必须是有效MATLAB标识符。软件决定的条款在拟合模型通过使用条款的顺序
资源描述
或X
。因此,模型中的条款的顺序可以不同于条款的顺序在指定的公式。
例子:“二次”
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:“分布”、“正常”,“链接”、“概率单位”,“排除”,[23日59]
指定响应的分布是正常的,和指示fitglm
使用probit链接功能和排除的23日和59观察健康。
BinomialSize
- - - - - -试验二项分布
1(默认)|数字标量|数值向量|特征向量|字符串标量
试验二项分布,样本大小,指定为逗号分隔组成的“BinomialSize”
和变量名资源描述
、数字标量或数值向量长度相同的响应。这是参数n
安装二项分布。BinomialSize
只适用于当分布
参数是“二”
。
如果BinomialSize
是一个标量值,这意味着所有的观察有相同数量的试验。
作为一个替代BinomialSize
,您可以指定响应为一个两列矩阵列1和计数BinomialSize
在第2列。
数据类型:单
|双
|字符
|字符串
B0
- - - - - -初始值的系数估计
数值向量
初始值的系数估计,指定为一个数值向量。默认值是初始拟合值来自输入数据。
数据类型:单
|双
CategoricalVars
- - - - - -分类变量列表
字符串数组|单元阵列的特征向量|逻辑或数字索引向量
类别变量列表中,指定为逗号分隔组成的“CategoricalVars”
和字符串数组或单元阵列特征向量包含分类表中的变量名或数据集的数组资源描述
、逻辑或数字索引向量显示哪些列直言。
如果表中的数据或数据集的数组
资源描述
那么,在默认情况下,fitglm
将所有分类值、逻辑值,字符数组,字符串数组和细胞特征向量作为分类变量的数组。如果数据矩阵
X
的默认值“CategoricalVars”
是一个空矩阵[]
。即不变量分类,除非你指定分类。
例如,您可以指定第二个和第三个变量的分类使用下列六:
例子:“CategoricalVars”, [2,3]
例子:“CategoricalVars”、逻辑([0 1 1 0 0 0])
数据类型:单
|双
|逻辑
|字符串
|细胞
DispersionFlag
- - - - - -指标计算色散参数
假
为“二”
和“泊松”
分布(默认)|真正的
计算色散参数指标“二”
和“泊松”
分布,指定为逗号分隔组成的“DispersionFlag”
和一个以下。
真正的 |
估计色散参数时,计算标准错误。估计色散参数值是培生残差的平方和除以自由度误差(DFE)。 |
假 |
违约。使用1计算的理论值标准错误。 |
拟合函数总是估计其他发行版的色散。
例子:“DispersionFlag”,真的
分布
- - - - - -响应变量的分布
“正常”
(默认)|“二”
|“泊松”
|“伽马”
|逆高斯分布的
分布的响应变量,指定为逗号分隔组成的“分布”
和一个以下。
“正常” |
正态分布 |
“二” |
二项分布 |
“泊松” |
泊松分布 |
“伽马” |
伽马分布 |
逆高斯分布的 |
逆高斯分布 |
例子:“分布”、“伽马”
排除
- - - - - -观察排除
逻辑或数字索引向量
观察从健康,排除指定为逗号分隔组成的“排除”
和逻辑或数字索引向量表示,从适合观测,以排除。
例如,您可以排除观测2和3的6使用下面的例子。
例子:“排除”,[2,3]
例子:“排除”,逻辑([0 1 1 0 0 0])
数据类型:单
|双
|逻辑
拦截
- - - - - -指标常数项
真正的
(默认)|假
为常数项指标(拦截),指定为逗号分隔组成的“拦截”
,要么真正的
包括或假
去除模型中的常数项。
使用“拦截”
只有当指定模型使用一个特征向量或字符串标量,不是一个公式或矩阵。
例子:“拦截”,假的
链接
- - - - - -链接功能
规范的链接功能(默认)|标量值|结构
链接功能,使用规范的链接功能,指定为逗号分隔组成的“链接”
和一个以下。
链接函数名 | 链接功能 | 意味着(逆)函数 |
---|---|---|
“身份” |
f(μ)=μ | μ=Xb |
“日志” |
f(μ)=日志(μ) | μ= exp (Xb) |
分对数的 |
f(μ)=日志(μ/ (1 -μ)) | μ= exp (Xb)/ (1 + exp (Xb)) |
“probit” |
f(μ)=Φ1(μ),其中Φ是标准正态分布的累积分布函数。 | μ=Φ(Xb) |
“comploglog” |
f(μ日志(日志(1 -)=μ)) | μ= 1 - exp (exp (Xb)) |
“互惠” |
f(μ)= 1 /μ | μ= 1 / (Xb) |
p (数量) |
f(μ)=μp | μ=Xb1 /p |
|
f(μ)=S.Link (μ) |
μ=S.Inverse (Xb) |
函数定义的链接关系f(μ)=X*b之间的平均响应μ和预测的线性组合X*b。
规范的链接功能的更多信息,见规范的链接功能。
例子:“链接”、“概率单位”
数据类型:字符
|字符串
|单
|双
|结构体
选项
- - - - - -优化选项
statset ('fitglm
”)
(默认)|结构
fitglm
”)优化选项,指定为一个结构。这个参数决定了控制参数的迭代算法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
- - - - - -预测变量
字符串数组|单元阵列的特征向量|逻辑或数字索引向量
预测变量用于配合,指定为逗号分隔组成的“PredictorVars”
和字符串数组或单元阵列特征向量的变量名称的表或数据集的数组资源描述
、逻辑或数字索引向量显示哪些列预测变量。
字符串值或特征向量应该名称中资源描述
,或者您指定的名称使用“VarNames”
名称-值对的论点。
默认是所有变量X
或所有变量资源描述
除了ResponseVar
。
例如,您可以指定第二个和第三个变量作为预测变量使用下面的例子。
例子:“PredictorVars”, [2,3]
例子:“PredictorVars”、逻辑([0 1 1 0 0 0])
数据类型:单
|双
|逻辑
|字符串
|细胞
ResponseVar
- - - - - -反应变量
最后一列资源描述
(默认)|特征向量包含变量名或字符串标量|逻辑或数字索引向量
反应变量在适合使用,指定为逗号分隔组成的“ResponseVar”
和一个特征向量或字符串标量数据集包含表中的变量名或数组资源描述
、逻辑或数字索引向量表示哪个列变量的响应。你通常需要使用“ResponseVar”
当配件表或数据集的数组资源描述
。
例如,您可以指定第四变量,说收益率
六个变量的响应,在下列方式之一。
例子:“ResponseVar”、“收益”
例子:“ResponseVar”, [4]
例子:“ResponseVar”、逻辑([0 0 0 1 0 0])
数据类型:单
|双
|逻辑
|字符
|字符串
VarNames
- - - - - -变量的名字
{x1, x2,…,‘xn’,‘y’}
(默认)|字符串数组|单元阵列的特征向量
变量的名字,指定为逗号分隔组成的“VarNames”
和一个字符串数组或单元阵列的特征向量,包括的列的名称X
首先,和响应变量的名称y
最后一次。
“VarNames”
不适用于变量数据集在一个表格或数组,因为这些变量已经有名字。
变量名不需要有效的MATLAB标识符,但名称必须不包含前导或尾随空格。如果名称是无效的,你适合时不能使用一个公式或调整模型;例如:
你不能用一个公式来指定术语来添加或删除当你使用
addTerms
函数或removeTerms
函数,分别。你不能用一个公式来指定模型的上下边界时使用
一步
或stepwiseglm
函数的名称-值对参数“低”
和“上”
,分别。
在指定VarNames, VarNames
,您可以验证的变量名varNames
通过使用isvarname
函数。如果变量名是无效的,那么您可以将其转换使用matlab.lang.makeValidName
函数。
例子:VarNames,{“马力”,“加速”,“Model_Year”,“英里”}
数据类型:字符串
|细胞
权重
- - - - - -观察权重
的(n, 1)
(默认)|n1负的标量值的向量
观察体重、指定为逗号分隔组成的“重量”
和一个n1负的标量值的向量,n是观测的数量。
数据类型:单
|双
输出参数
mdl
——广义线性回归模型
GeneralizedLinearModel
对象
广义线性回归模型,指定为一个GeneralizedLinearModel
对象创建使用fitglm
或stepwiseglm
。
更多关于
计算矩阵
一个条件矩阵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
是一个标准的线性模型,除非你指定的吗分布
名称-值对。等方法
plotResiduals
或devianceTest
或属性的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
使用中的每个观察健康。
选择功能
使用
stepwiseglm
自动选择一个模型规范。使用一步
,addTerms
,或removeTerms
调整拟合模型。
引用
[1]Collett D。二进制数据建模。纽约:查普曼&大厅,2002。
[2]多布森,a·J。介绍了广义线性模型。纽约:查普曼&大厅,1990。
[3]McCullagh, P。,J. A. Nelder.广义线性模型。纽约:查普曼&大厅,1990。
扩展功能
高大的数组
计算和数组的行比装入内存。
这个函数支持高数组内存不足数金宝app据和一些限制。
如果任何输入参数
fitglm
是一个高大的数组,那么所有其他的输入必须高数组。这包括提供的非空的变量“重量”
,“排除”
,“抵消”
,“BinomialSize”
名称-值对。默认的迭代次数是5。你可以改变迭代使用的数量
“选项”
名称-值对结构通过一个选项。创建一个选项结构使用statset
指定一个不同的值麦克斯特
。对于高数据,
fitglm
返回一个CompactGeneralizedLinearModel
对象包含大多数相同的属性GeneralizedLinearModel
对象。主要的区别在于,紧凑的对象内存需求敏感。紧凑的对象不包括属性,包括数据,或相同大小的数组,包括数据。紧凑的对象不包含这些GeneralizedLinearModel
属性:诊断
安装
抵消
ObservationInfo
ObservationNames
残差
步骤
变量
你可以计算出残差直接从紧凑的对象返回
GLM = fitglm (X, Y)
使用RES = Y -预测(GLM X);S =√GLM.SSE / GLM.DFE);直方图(RES linspace (3 * S, 3 *年代,51))
有关更多信息,请参见高内存不足数据数组。
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
这个函数完全支持GPU数组。金宝app有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
版本历史
介绍了R2013b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。