建立广义线性回归模型
使用双向交互模型制作吸烟概率的逻辑二项式模型。
加载医院
数据集数组。
加载医院dsa =医院;
使用允许年龄、体重和性别变量之间双向交互的公式指定模型。吸烟者是反应变量。
modelspec ='吸烟者~年龄*体重*性别-年龄:体重:性别';
适合物流二项式模型。
mdl = fitglm(dsa,modelspec,'分配'那'二重子')
MDL =广义线性回归模型:Logit(吸烟)〜1 +性别*年龄+性别*重量+年龄*重量分布=二项式估计系数:估计SE TSTAT PVALUE ___________ ____________________________________________________________________________________________________________________________0492 19.749 -0492 19.749 -0492 19.749 -04922。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个预测器创建示例数据,使用只有三个预测器,以及泊松响应,以及常数。
rng ('默认')重复性的%x = randn(100,7);mu = exp(x(:,[1 3 6])* [。4; .2; .3] + 1);y = poissrnd(mu);
利用泊松分布拟合一个广义线性模型。
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.3149e-3.6 x1 0.44413 0.052337 8.4858 2.1416e-17 x2 0.0083388 0.056527 0.14752 0.88272 x3 0.21518 0.063416 3.3932 0.00069087 x4 -0.058386 0.065503 -0.89135 0.37274 x5 -0.060824 0.073441 -0.8282 0.40756 x6 0.34267 0.056778 6.0352 1.5878e-09 x7 0.04316 0.06146 0.70225 0.48252 100 observations, 92 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 119, p-value = 1.55e-22
这P.
2.14e-17,0.00069,和1.58e-09 - 值表示的变量的所述系数X1
那X3
, 和X6
在统计上显著。
TBL.
-输入数据输入数据包括预测器和响应变量,指定为表或数据集数组。预测变量和响应变量可以是数字,逻辑,分类,字符或字符串。响应变量只有在数字中只有除数字的数据类型'分配'
是'二重子'
.
默认情况下,Fitglm.
将最后一个变量作为响应变量和其他变量作为预测变量。
设置不同的列作为响应变量,使用响应官员
名称值对参数。
要使用的列作为预测的一个子集,使用预测orvars
名称值对参数。
要定义模型规范,请设置Modelspec.
参数使用公式或术语矩阵。公式或术语矩阵指定要用作预测器或响应变量的列。
在一个表中的变量名不一定是有效的MATLAB®身份标识。但是,如果名称无效,则在适合或调整模型时,您不能使用公式;例如:
您无法指定Modelspec.
使用公式。
您无法使用公式指定在使用时添加或删除的术语addterms.
功能或removeterms.
功能,分别。
您可以验证的变量名中TBL.
通过使用isvarname
功能。如果变量名称无效,则可以使用使用的转换它们matlab.lang.makevalidname.
功能。
X
-预测变量预测变量,指定为N——- - - - - -P.矩阵,N是观察人数和P.为预测变量的数量。每一列的X
表示一个变量,每行代表一个观察。
默认情况下,模型中存在一个常量术语,除非您显式删除它,因此不包含1S的列X
.
数据类型:单身的
|双
y
-响应变量响应变量,指定为向量或矩阵。
如果'分配'
不是'二重子'
, 然后y
必须是AN.N-1 vector,在哪里N是观测值的数量。每个条目y
是对应行的响应X
.数据类型必须为单或双。
如果'分配'
是'二重子'
, 然后y
可以是一个N1的向量或N-By-2矩阵,第1列的计数和BinomialSize
在第2栏中。
数据类型:单身的
|双
|逻辑
|分类
Modelspec.
-模型规格'线性'
(默认)|字符矢量或字符串标量命名模型|T.————(P.+ 1)术语矩阵|形式的字符矢量或字符串标量公式'Y〜术语'
模型规范,指定为其中一个值。
命名模型的字符向量或字符串标量。
价值 | 模型类型 |
---|---|
'持续的' |
模型仅包含一个常数(拦截)术语。 |
'线性' |
模型包含每个预测器的截距和线性术语。 |
'互动' |
模型包含每个预测器的截距,线性项,以及对不同预测器的所有乘积(没有平方项)。s manbetx 845 |
'purequadratic' |
模型包含每个预测器的截距项和线性和平方术语。 |
'二次' |
模型包含每个预测器的截距,线性和平方术语,以及所有不同预测器的所有产品。s manbetx 845 |
'Poly. |
模型是一种多项式,所有条款均可获得程度一世 第一个预测因子是程度j 在第二个预测因子,等等。通过使用数字来指定每个预测器的最大程度。但是模型包含交互术语,但每个交互项的程度不超过指定度的最大值。例如,“poly13” 具有截距和X1那X2那X22那X23.那X1*X2, 和X1*X22条款,X1和X2是第一和第二预测因子。 |
一种T.————(P.+ 1)矩阵,或者术语矩阵,在模型中指定项,其中T.是术语数量和数量P.为预测变量的个数,+1表示响应变量。当预测器的数量很大且您希望以编程方式生成术语时,术语矩阵是很方便的。
字符矢量或字符串标量公式在形式
'Y〜术语'
那
在哪里术语
是Wilkinson表示法.公式中的变量名必须是TBL.
或指定的可变名称Varnames
.此外,变量名称必须是有效的MATLAB标识符。
该软件通过使用术语顺序确定拟合模型中的术语顺序TBL.
或者X
.因此,模型中的术语顺序可以与指定公式中的术语顺序不同。
例子:'二次'
指定可选的逗号分离对名称,价值
论点。姓名
是参数名称和价值
是相应的价值。姓名
必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen
.
“分布”,“正常”,“链接”,“概率”,“排除”[23,59]
指定响应的分布是正常的,并指示Fitglm.
使用probit链接函数并从拟合中排除第23和59个观测值。
'BinomialSize'
-二项份分布的试验数量二项份分布的试验数量,即样本大小,指定为逗号分隔对'BinomialSize'
和变量名中TBL.
,数字标量或与响应相同长度的数字矢量。这是参数N
对于拟合的二项分布。BinomialSize
仅适用于分配
参数是'二重子'
.
如果BinomialSize
是标量值,这意味着所有观察结果都有相同数量的试验。
作为替代品BinomialSize
,您可以将响应指定为一个两列矩阵,在第1列和中包含计数BinomialSize
在第2栏中。
数据类型:单身的
|双
|字符
|细绳
'b0'
-系数估计的初始值对于系数估计的初始值,指定为数值向量。的默认值是从输入数据中得出的初始拟合值。
数据类型:单身的
|双
“CategoricalVars”
-分类变量列表分类变量列表,指定为逗号分隔的配对组成“CategoricalVars”
以及包含表或数据集数组中的分类变量名称的字符数阵列或单元格数组TBL.
指示哪些列分类,或逻辑或数字索引向量。
如果数据位于表或数据集数组中TBL.
,那么,在默认情况下,Fitglm.
将所有分类值、逻辑值、字符数组、字符串数组和字符向量的单元格数组视为分类变量。
如果数据在矩阵中X
,然后是默认值“CategoricalVars”
是一个空矩阵[]
.也就是说,除非您将其指定为分类,否则没有变量是分类的。
例如,您可以使用以下任一分类指定六个中的第二个和第三变量:
例子:'CategoricalVars',[2,3]
例子:'pationoricalvars',逻辑([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) |
'logit' |
F(μ) =日志(μ/(1-μ))) | μ= exp(Xb)/(1 + exp(Xb))) |
'概率' |
F(μ)=φ.-1(μ),其中Φ为标准正态分布的累积分布函数。 | μ=Φ(Xb) |
'comploglog' |
F(μ)= log(-log(1 -μ))) | μ= 1 - exp( -Xb))) |
'互惠的' |
F(μ)= 1 /μ | μ= 1 /(Xb) |
P. (一个号码) |
F(μ)=μP. | μ=Xb1 /P. |
|
F(μ)=S.Link. (μ) |
μ=S.Inverse (Xb) |
链接功能定义了关系F(μ)=X*B.在平均反应之间μ和预测值的线性组合X*B..
有关规范链接功能的更多信息,请参阅规范链接功能.
例子:'链接','probit'
数据类型:字符
|细绳
|单身的
|双
|塑造
'选项'
-优化选项statset ('Fitglm.
')
(默认)|结构体优化选项,指定为结构。此参数来确定用于所述迭代算法,所述控制参数Fitglm.
用途。
创建'选项'
使用该功能的值statset
或者通过创建包含此表中描述的字段和值的结构数组。
字段名 | 价值 | 默认值 |
---|---|---|
展示 |
信息显示量由算法
|
'离开' |
maxiter. |
允许最大迭代次数,指定为一个正整数 |
100. |
TolX |
参数的终止公差,指定为正标量 |
1E-6 |
你也可以进入statset ('
在命令窗口中查看字段的名称和默认值Fitglm.
')Fitglm.
接受的'选项'
名称-值参数。
例子:'选项',statset('显示','final','maxiter',1000)
指定显示迭代算法结果的最终信息,并将允许的最大迭代次数更改为1000。
数据类型:塑造
'抵消'
-偏移变量拟合中的偏移变量,指定为逗号分隔对'抵消'
和变量名中TBL.
或者一个与响应长度相同的数字向量。
Fitglm.
使用抵消
作为一个系数值固定为1的附加预测器。换句话说,拟合公式为
F(μ)=偏移+X*B.
那
在哪里F是链接功能,μ是平均反应,和X*B.是预测因子的线性组合吗X.这抵消
预测器具有系数1
.
例如,考虑泊松回归模型。假设以与预测器成正比的理论原因已知数量一种
.通过使用日志链接功能和指定日志(一)
作为偏移量,您可以强制模型满足该理论约束。
数据类型:单身的
|双
|字符
|细绳
'predictorvars'
-预测变量要在适合的情况下使用的预测变量,指定为逗号分隔对组成'predictorvars'
以及表或数据集数组中变量名称的字符数阵列或单元格数组TBL.
或指示哪个列是预测变量的逻辑或数字索引向量。
字符串值或字符向量应在名称中TBL.
或者使用您使用的名称'varnames'
名称值对参数。
默认值是所有变量X
,或所有变量TBL.
除了响应官员
.
例如,可以指定第二和第三变量如使用以下实施例任一个预测变量。
例子:'PredictorVars',[2,3]
例子:'predictorvars',逻辑([0 1 1 0 0 0])
数据类型:单身的
|双
|逻辑
|细绳
|细胞
'responsevar'
-响应变量TBL.
(默认)|含有可变量名字符向量或标量串|逻辑或数字索引矢量用于适合的响应变量,指定为逗号分隔的对组成'responsevar'
以及在表或数据集数组中包含变量名的字符向量或字符串标量TBL.
,或逻辑或数字索引向量,指示哪一列是响应变量。你通常需要使用'responsevar'
拟合表或数据集阵列时TBL.
.
例如,您可以指定第四个变量屈服
,作为六个变量的响应,以下列方式之一。
例子:'Responalvar','收益'
例子:'ResponalVar',[4]
例子:'ResponseVar',逻辑([0 0 0 1 0 0])
数据类型:单身的
|双
|逻辑
|字符
|细绳
'varnames'
-变量的名称{ 'X1', 'X2',......, 'XN', 'Y'}
(默认)|字符串数组|字符向量的单元格数组变量的名称,指定为逗号分隔的配对组成'varnames'
和字符串数组或字符向量的单元数组,包括列的名称X
第一,和用于响应变量名称y
最后的。
'varnames'
并不适用于表或数据集数组变量,因为这些变量已经有了名字。
变量名称不必是有效的MATLAB标识符。但是,如果名称无效,则在适合或调整模型时,您不能使用公式;例如:
您无法使用公式指定在使用时添加或删除的术语addterms.
功能或removeterms.
功能,分别。
在指定之前'VarNames',varNames
,您可以验证变量名称varnames.
通过使用isvarname
功能。如果变量名称无效,则可以使用使用的转换它们matlab.lang.makevalidname.
功能。
例子:'varnames',{'horsepower','加速','model_year','mpg'}
数据类型:细绳
|细胞
“重量”
-观察权重那些(n,1)
(默认)|N非负标量值的-乘1向量观察权值,指定为逗号分隔的对,由“重量”
和N非负标量值的-by-1向量,其中N是观测值的数量。
数据类型:单身的
|双
MDL.
- 广义线性回归模型GeneralizedLinearModel.
目的广义线性回归模型,指定为GeneralizedLinearModel.
使用对象的创建Fitglm.
或者挺身油
.
一个方面矩阵T.
是A.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
是响应名称。
术语
表示使用Wilkinson表示法的模型中的预测术语。
要表示预测器和响应变量,请使用表输入的变量名TBL.
或使用的变量名称VarNames
.的默认值VarNames
是{ 'X1', 'X2',......, 'XN', 'Y'}
.
例如:
'y〜x1 + x2 + x3'
指定与截距的三变量线性模型。
'y〜x1 + x2 + x3 - 1'
指定一个无拦截的三变线性模型。请注意,默认情况下,公式包括常量(拦截)术语。要从模型中排除常量术语,您必须包含-1
在公式。
公式包括常数术语,除非您明确地删除术语-1
.
威尔金森表示法描述了模型中的术语。这个符号与模型中的项相关,而不是这些项的乘数(系数)。
威尔金森表示法使用这些符号:
+
意味着包括下一个变量。
-
意味着不包括下一个变量。
:
定义交互,这是术语的份额。
*
定义交互和所有低阶项。
^
将预测器提升到电力,完全如此*
重复,所以^
也包括低阶项。
()
群体条款。
此表显示了Wilkinson表示法的典型示例。
Wilkinson表示法 | 标准符号术语 |
---|---|
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 |
有关详细信息,请参见Wilkinson表示法.
对于广义线性模型的默认链接功能是规范链接功能.
分配 | 规范链接功能名称 | 链接功能 | 平均(逆)功能 |
---|---|---|---|
“正常” |
'身份' |
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.
是一个标准的线性模型,除非你与另外指定分配
名称-值对。
对于诸如plotresivs
或者DevianceTest.
的属性GeneralizedLinearModel.
对象,参见GeneralizedLinearModel.
.
培训模型后,您可以生成C / C ++代码,该代码预测新数据的响应。生成C / C ++代码需要MATLAB编码器™.有关详细信息,请参见代码生成简介.
Fitglm.
处理分类预测器,如下所示:
与具有一个分类预测模型L.级别(类别)包括L.- 1指示器变量。该模型使用第一类作为参考级别,因此它不包括参考级别的指示灯。如果分类预测器的数据类型是分类
,则可以使用类别
和重新排序的类别,通过使用雷德斯
自定义参考级别。有关创建指示器变量的更多详细信息,请参阅自动创建虚拟变量.
Fitglm.
对待一组L.- 1指示器变量作为一个单独的变量。如果您想将指示器变量视为不同的预测变量,可以使用戴维尔
.然后在拟合模型时,使用除分类变量参考水平对应的指标变量外的其他指标变量。对于绝对预测器X
,如果您指定所有列dummyvar(x)
并且作为预测器的截距术语,然后设计矩阵变为缺陷。
连续预测因子与分类预测器之间的交互术语L.级别由元素 - 明智的产品组成L.- 1带有连续预测器的指标变量。
两个分类预测因子之间的交互条款L.和m级别包括(L.- 1)*(m- 1)指标变量,包括两个分类预测级别的所有可能的组合。
你不能为分类预测指定高阶项,因为指标的平方等于本身。
Fitglm.
考虑南
那''
(空字符向量),“
(空字符串),<缺失>
, 和<未定义>
价值TBL.
那X
, 和y
丢失值。Fitglm.
不使用缺少匹配值的观测值。这观察税收
拟合模型的性质表明是否Fitglm.
使用适合的每个观察。
用挺身油
自动选择模型规范。用步
那addterms.
, 或者removeterms.
调整拟合模型。
[1] Collett D。模拟二进制数据.纽约:查普曼与霍尔出版社,2002年出版。
[2] Dobson,A. J.广义线性模型的介绍.纽约:查普曼与霍尔出版社,1990。
[3]与McCullagh,P.,和J. A.内尔德。广义线性模型.纽约:查普曼与霍尔出版社,1990。
此功能支持具有一些限制的内存万博1manbetx存储数据的高阵列。
如果有任何输入参数Fitglm.
是一个高大的阵列,那么所有其他输入也必须是高阵列。这包括提供的非空变量“重量”
那“排除”
那'抵消'
, 和'BinomialSize'
名称值对。
默认迭代次数为5.您可以使用使用的迭代次数'选项'
名称 - 值对传递在选项结构中。使用选项结构使用statset
指定不同的值maxiter.
.
对于高数据,Fitglm.
返回A.Compact一项式标Model.
包含大多数属性的对象GeneralizedLinearModel.
目的。主要区别在于,紧凑的物体对内存要求敏感。Compact对象不包括包含数据的属性,或者包含与数据相同大小的数组。Compact对象不包含这些GeneralizedLinearModel.
特性:
诊断
拟合
抵消
观察税收
ObservationNames
残差
脚步
变量
您可以直接从返回的Compact对象中计算残差glm = fitglm(x,y)
使用
res = y - 预测(glm,x);s = sqrt(glm.sse / glm.dfe);直方图(Res,Linspace(-3 * s,3 * s,51)))
有关更多信息,请参见高存储器数据的阵列.
该功能完全支持GPU阵列。万博1manbetx有关更多信息,请参见在GPU上运行matlab函数(并行计算工具箱).
Tiene UnaVersiónModififada de Este Ejegro。¿desea abrir este ejegro ejemero con modififiones?
Ha Hecho Clic en en enrace que参考este comando de matlab:
ejecute el comandoinsuciéndoloen la Ventana de comandos de matlab。los navegadores网站没有adminiten comandos de matlab。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。