创建广义线性回归模型
让吸烟的年龄,体重和性别的功能,采用了双向互动模式的概率的逻辑二项式模型。
加载医院
数据集阵列。
加载医院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下)都是大的。这意味着没有一个系数是显著的。大 - 值的模型,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
该p
2.14e-17,0.00069,和1.58e-09 - 值表示的变量的所述系数x1
,x3
, |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);
X
-预测变量预测变量,指定为ñ——- - - - - -p矩阵,ñ是观测值的数量和p为预测变量的个数。每一列的X
表示一个可变的,并且每行表示一个观察。
默认情况下,模型中有一个常数项,除非您显式地删除它,否则不要在其中包含1列X
。
数据类型:单
|双
ÿ
-响应变量响应变量,指定为矢量或矩阵。
如果“分布”
不是“二项式”
, 然后ÿ
必须是ñ×1向量,其中ñ是观测值的数量。在每个条目ÿ
对于相应行的响应X
。数据类型必须是单或双。
如果“分布”
是“二项式”
, 然后ÿ
可以是ñ1的向量或ñ-by-2矩阵与计数从第1列和BinomialSize
在第2列。
数据类型:单
|双
|合乎逻辑
|分类
modelspec
-模型规范“线性”
(默认)|字符向量或标量字符串命名模型|Ť————(p+ 1)项矩阵|在形式字符向量或标量串式“Y ~条款”
模型规范,指定为这些值之一。
命名模型的字符向量或字符串标量。
值 | 模型类型 |
---|---|
“不变” |
模型仅包含一个常数(截距)术语。 |
“线性” |
模型包含每个预测器的截距和线性项。 |
“互动” |
模型包含一个截距,每个预测器的线性项,以及不同预测器对的所有乘积(没有平方项)。下载188bet金宝搏 |
'purequadratic' |
模型包含每个预测项的截距项、线性项和平方项。 |
“二次” |
模型包含一个截距项,线性和对每个预测平方项,以及对不同的预测器的所有产品。下载188bet金宝搏 |
“聚 |
模型是一个多项式,它的所有项在一定程度上都是多项式一世 在第一个预测中,是程度Ĵ 在第二个预测,依此类推。通过使用数字0虽然9.模型包含交互项指定每个预测器的最大的程度,但每个交互项的次数不超过规定的程度的最大值。例如,“poly13” 具有截距和X1,X2,X22,X23,X1*X2和X1*X22条款,X1和X2是所述第一和第二预测器,分别。 |
一个Ť————(p+ 1)矩阵,或者a计算矩阵,指定模型中的项,其中Ť是项数和p为预测变量的数量,+1表示响应变量。如果谓词的数量很大,并且希望以编程方式生成术语,则术语矩阵非常方便。
字符向量或标量的字符串表示公式形式
“Y ~条款”
,
在哪里条款
在威尔金森符号。公式中的变量名称必须是合法的MATLAB标识符。
例子:“二次”
指定可选的用逗号分隔的对名称,值
参数。的名字
是参数的名称和值
是对应的值。的名字
必须出现引号内。您可以按照任何顺序指定多个名称和值对参数Name1, Value1,…,的家
。
'分配', '正常', '链接', '概率', '排除',[23,59]
指定对所述响应的分布是正常的,并且指示fitglm
使用probit link函数并从fit中排除第23次和第59次观察值。
'BinomialSize'
-对于二项分布试验次数为二项式分布试验次数,即样本大小,指定为逗号分隔的一对组成的'BinomialSize'
和变量名中资源描述
,数字标量,或相同的长度响应的数值向量。这是参数ñ
对于拟合的二项分布。BinomialSize
只适用于分配
参数“二项式”
。
如果BinomialSize
是标量值,这意味着所有观察有相同数量的试验。
作为一种替代BinomialSize
,您可以指定在第1列的响应与计数一个两列的矩阵和BinomialSize
在第2列。
数据类型:单
|双
|字符
|字符串
“CategoricalVars”
-分类变量列表类别变量列表,指定为逗号分隔的对组成“CategoricalVars”
和是一个字符串数组或包含在表或数据集阵列分类变量名字符向量的单元阵列资源描述
指示哪些列分类,或逻辑或数字索引向量。
如果数据是在一个表或数据集阵列资源描述
,那么,在默认情况下,fitglm
将所有分类值、逻辑值、字符数组、字符串数组和字符向量的单元数组视为分类变量。
如果数据是在矩阵中X
,则默认值“CategoricalVars”
是一个空矩阵[]
。也就是说,没有任何变量是无条件的,除非你把它指定为无条件的。
例如,您可以使用以下任何一个示例指定6个观察值中的2和3为分类观察值。
例子:'CategoricalVars',[2,3]
例子:" CategoricalVars ",逻辑([0 1 1 0 0 0])
数据类型:单
|双
|合乎逻辑
|字符串
|细胞
“DispersionFlag”
-用于计算色散参数的指示器假
对于“二项式”
和“泊松”
分布(默认)|真正
用于计算色散参数的指示器“二项式”
和“泊松”
分布,指定为逗号分隔的一对组成的“DispersionFlag”
与下列情况之一。
真正 |
计算的标准误差当估计一个分散参数。所估计的分散参数值是平方皮尔逊残差由自由度误差(DFE)划分的总和。 |
假 |
违约。使用理论值计算标准误差。 |
拟合函数总是估计其他分布的色散。
例子:'DispersionFlag',真
“分布”
-响应变量的分布'正常'
(默认)|“二项式”
|“泊松”
|“伽马”
|“逆高斯”
响应变量的分布,指定为逗号分隔的一对组成的“分布”
与下列情况之一。
'正常' |
正态分布 |
“二项式” |
二项分布 |
“泊松” |
泊松分布 |
“伽马” |
伽马分布 |
“逆高斯” |
逆高斯分布 |
例子:“分配”,“伽马”
“排除”
-观察排除观测到从拟合排除,指定为逗号分隔的一对组成的“排除”
以及一个逻辑或数值索引向量,指示从拟合中排除哪些观测值。
例如,可以排除观察图2和3的6使用以下实施例任一。
例子:'排除',[2,3]
例子:'排除',逻辑([0 1 1 0 0 0])
数据类型:单
|双
|合乎逻辑
'截距'
-常数项指示器真正
(默认)|假
指示器在拟合常数项(截距),指定为逗号分隔的一对组成的'截距'
,要么真正
包括或假
将常数项从模型中移除。
采用'截距'
只有当指定使用字符向量或标量的字符串,而不是一个公式或矩阵模型。
例子:“拦截”,假的
'链接'
-链接功能链接函数用来代替规范链接函数,指定为逗号分隔的对组成'链接'
与下列情况之一。
链接函数名 | 链接功能 | 意味着(逆)函数 |
---|---|---|
“身份” |
F(μ)=μ | μ=Xb |
“日志” |
F(μ)=日志(μ) | μ= EXP(Xb) |
'Logit模型' |
F(μ)=日志(μ/(1-μ)) | μ= EXP(Xb)/(1个+ EXP(Xb)) |
“概率” |
F(μ)=Φ1(μ) | μ=Φ(Xb) |
'comploglog' |
F(μ)=日志(-log(1 -μ)) | μ= 1 - EXP(-exp(Xb)) |
'倒数' |
F(μ)= 1 /μ | μ= 1 /(Xb) |
p (一个号码) |
F(μ)=μp | μ=Xb1 /p |
|
F(μ)=S.Link (μ) |
μ=S.Inverse (Xb) |
link函数定义了这种关系F(μ)=X*b平均响应之间μ和预测值的线性组合X*b。
有关规范链接功能的更多信息,请参阅规范的链接功能。
例子:“链接”,“概率”
数据类型:字符
|字符串
|单
|双
|结构
“偏移”
-offset变量在配合偏移变量,指定为逗号分隔的一对组成的“偏移”
和变量名中资源描述
或与响应长度相同的数字向量。
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'
拟合表或数据集阵列时资源描述
。
例如,您可以指定第四个变量让
作为响应了6个变量,通过以下方式之一。
例子:“ResponseVar”、“收益”
例子:'ResponseVar',[4]
例子:'ResponseVar',逻辑([0 0 0 1 0 0])
数据类型:单
|双
|合乎逻辑
|字符
|字符串
'VarNames'
-变量的名字{ 'X1', 'X2',......, 'XN', 'Y'}
(默认)|字符串数组|字符向量的单元数组变量的名称,指定为逗号分隔的对'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'}
数据类型:字符串
|细胞
“权重”
-观察权重一(N,1)
(默认)|ñ非负标量值的-1乘向量观察权值,由逗号分隔的对组成“权重”
和ñ非负标量值的-乘1向量,其中ñ是观测值的数量。
数据类型:单
|双
MDL
- 广义线性回归模型GeneralizedLinearModel
宾语广义线性回归模型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 |
一个 ,乙 ,C ,A * B |
A + B + C + A:B |
一个 ,乙 ,C ,A * B |
A * B * C - A:B:C |
一个 ,乙 ,C ,A * B ,一个* C ,公元前 |
A *(B + C) |
一个 ,乙 ,C ,A * 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
使用在配合每个观测。
采用stepwiseglm
自动选择型号规格。采用一步
,addTerms
, 要么removeTerms
以调整拟合模型。
[1]Collett D。建模二进制数据。纽约:查普曼和霍尔,2002年。
[2] Dobson, A. J。简介广义线性模型。纽约:查普曼和霍尔出版社,1990年。
[3]与McCullagh,P.,和J. A.内尔德。广义线性模型。纽约:查普曼和霍尔出版社,1990年。
此功能支持用于与一些限制内存金宝app不足数据高大阵列。
如果有输入参数fitglm
是一个高大阵列的所有其它输入,则必须是高的阵列,以及。这包括与所提供的非空变量“权重”
,“排除”
,“偏移”
和'BinomialSize'
名称-值对。
迭代的默认数量为5.您可以使用改变迭代次数“选项”
要传入选项结构的名称-值对。使用以下命令创建一个选项结构statset
指定不同的值麦克斯特
。
对于高数据,fitglm
回报CompactGeneralizedLinearModel
对象,其中包含多数相同属性作为的GeneralizedLinearModel
宾语。主要的区别是,该紧凑目的是内存需求很敏感。紧凑的对象不包括属性包括该数据,或包括相同大小的数据的数组。紧凑的对象不包含这些GeneralizedLinearModel
特性:
诊断
安装
抵消
ObservationInfo
ObservationNames
残差
步骤
变量
您可以直接计算残差从紧凑的对象返回由GLM = fitglm (X, Y)
运用
RES = Y - predict(GLM,X);S =√GLM.SSE / GLM.DFE);直方图(RES linspace (3 * S, 3 *年代,51))
有关更多信息,请参见内存不足数据的长数组(MATLAB)。
您单击对应于该MATLAB命令的链接:
通过在MATLAB命令窗口中输入该命令来运行它。Web浏览器不支持MATLAB命令。金宝app
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。