主要内容

Fitglm.

建立广义线性回归模型

描述

例子

MDL.= fitglm(TBL.返回一个普遍的线性模型适合表格或数据集数组中的变量TBL..默认情况下,Fitglm.将最后一个变量作为响应变量占用。

例子

MDL.= fitglm(Xy返回响应的广义线性模型y,适合数据矩阵X

例子

MDL.= fitglm(___Modelspec.返回您指定的类型的广义线性模型Modelspec.

例子

MDL.= fitglm(___名称,价值返回一个概括的线性模型,其中包含一个或多个指定的附加选项名称,价值对参数。

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

例子

全部收缩

使用双向交互模型制作吸烟概率的逻辑二项式模型。

加载医院数据集数组。

加载医院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)都大。这意味着没有一个系数是显著。大 P. - 值的模型,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 - 值表示的变量的所述系数X1X3, 和X6在统计上显著。

输入参数

全部收缩

输入数据包括预测器和响应变量,指定为表或数据集数组。预测变量和响应变量可以是数字,逻辑,分类,字符或字符串。响应变量只有在数字中只有除数字的数据类型'分配''二重子'

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

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

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

  • 要定义模型规范,请设置Modelspec.参数使用公式或术语矩阵。公式或术语矩阵指定要用作预测器或响应变量的列。

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

  • 您无法指定Modelspec.使用公式。

  • 您无法使用公式指定在使用时添加或删除的术语addterms.功能或removeterms.功能,分别。

  • 你不能用一个公式时使用指定型号的上限和下限或者挺身油用名称 - 值对的参数函数'降低''上', 分别。

您可以验证的变量名中TBL.通过使用isvarname功能。如果变量名称无效,则可以使用使用的转换它们matlab.lang.makevalidname.功能。

预测变量,指定为N——- - - - - -P.矩阵,N是观察人数和P.为预测变量的数量。每一列的X表示一个变量,每行代表一个观察。

默认情况下,模型中存在一个常量术语,除非您显式删除它,因此不包含1S的列X

数据类型:单身的|

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

  • 如果'分配'不是'二重子', 然后y必须是AN.N-1 vector,在哪里N是观测值的数量。每个条目y是对应行的响应X.数据类型必须为单或双。

  • 如果'分配''二重子', 然后y可以是一个N1的向量或N-By-2矩阵,第1列的计数和BinomialSize在第2栏中。

数据类型:单身的||逻辑|分类

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

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

    价值 模型类型
    '持续的' 模型仅包含一个常数(拦截)术语。
    '线性' 模型包含每个预测器的截距和线性术语。
    '互动' 模型包含每个预测器的截距,线性项,以及对不同预测器的所有乘积(没有平方项)。s manbetx 845
    'purequadratic' 模型包含每个预测器的截距项和线性和平方术语。
    '二次' 模型包含每个预测器的截距,线性和平方术语,以及所有不同预测器的所有产品。s manbetx 845
    'Poly.IJK.' 模型是一种多项式,所有条款均可获得程度一世第一个预测因子是程度j在第二个预测因子,等等。通过使用数字来指定每个预测器的最大程度。但是模型包含交互术语,但每个交互项的程度不超过指定度的最大值。例如,“poly13”具有截距和X1X2X22X23.X1*X2, 和X1*X22条款,X1X2是第一和第二预测因子。
  • 一种T.————(P.+ 1)矩阵,或者术语矩阵,在模型中指定项,其中T.是术语数量和数量P.为预测变量的个数,+1表示响应变量。当预测器的数量很大且您希望以编程方式生成术语时,术语矩阵是很方便的。

  • 字符矢量或字符串标量公式在形式

    'Y〜术语'

    在哪里术语Wilkinson表示法.公式中的变量名必须是TBL.或指定的可变名称Varnames.此外,变量名称必须是有效的MATLAB标识符。

    该软件通过使用术语顺序确定拟合模型中的术语顺序TBL.或者X.因此,模型中的术语顺序可以与指定公式中的术语顺序不同。

例子:'二次'

名称值对参数

指定可选的逗号分离对名称,价值论点。姓名是参数名称和价值是相应的价值。姓名必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:“分布”,“正常”,“链接”,“概率”,“排除”[23,59]指定响应的分布是正常的,并指示Fitglm.使用probit链接函数并从拟合中排除第23和59个观测值。

二项份分布的试验数量,即样本大小,指定为逗号分隔对'BinomialSize'和变量名中TBL.,数字标量或与响应相同长度的数字矢量。这是参数N对于拟合的二项分布。BinomialSize仅适用于分配参数是'二重子'

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

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

数据类型:单身的||字符|细绳

对于系数估计的初始值,指定为数值向量。的默认值是从输入数据中得出的初始拟合值。

数据类型:单身的|

分类变量列表,指定为逗号分隔的配对组成“CategoricalVars”以及包含表或数据集数组中的分类变量名称的字符数阵列或单元格数组TBL.指示哪些列分类,或逻辑或数字索引向量。

  • 如果数据位于表或数据集数组中TBL.,那么,在默认情况下,Fitglm.将所有分类值、逻辑值、字符数组、字符串数组和字符向量的单元格数组视为分类变量。

  • 如果数据在矩阵中X,然后是默认值“CategoricalVars”是一个空矩阵[].也就是说,除非您将其指定为分类,否则没有变量是分类的。

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

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

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

数据类型:单身的||逻辑|细绳|细胞

用于计算色散参数的指标'二重子''泊松'分布,指定为逗号分隔对组成“DispersionFlag”以及以下之一。

真的 计算的标准误差当估计一个分散参数。所估计的分散参数值是平方皮尔逊残差由自由度误差(DFE)划分的总和。
错误的 默认。计算标准差时,应采用1的理论值。

拟合功能始终估计用于其他分布的色散。

例子:'DispersionFlag',真

响应变量的分布,指定为逗号分隔的对组成'分配'以及以下之一。

“正常” 正态分布
'二重子' 二项分布
'泊松' 泊松分销
“伽马” 伽玛分布
'逆高斯' 逆高斯分布

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

从拟合中排除的观察,指定为逗号分隔的配对“排除”以及逻辑或数字索引向量,指示要从拟合中排除哪些观测值。

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

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

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

数据类型:单身的||逻辑

符合术语(拦截)的指示符,指定为逗号分隔对组成'截距'和任何一种真的包括或者错误的从模型中删除常数项。

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

例子:'拦截',假

优化选项,指定为结构。此参数来确定用于所述迭代算法,所述控制参数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'以及表或数据集数组中变量名称的字符数阵列或单元格数组TBL.或指示哪个列是预测变量的逻辑或数字索引向量。

字符串值或字符向量应在名称中TBL.或者使用您使用的名称'varnames'名称值对参数。

默认值是所有变量X,或所有变量TBL.除了响应官员

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

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

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

数据类型:单身的||逻辑|细绳|细胞

用于适合的响应变量,指定为逗号分隔的对组成'responsevar'以及在表或数据集数组中包含变量名的字符向量或字符串标量TBL.,或逻辑或数字索引向量,指示哪一列是响应变量。你通常需要使用'responsevar'拟合表或数据集阵列时TBL.

例如,您可以指定第四个变量屈服,作为六个变量的响应,以下列方式之一。

例子:'Responalvar','收益'

例子:'ResponalVar',[4]

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

数据类型:单身的||逻辑|字符|细绳

变量的名称,指定为逗号分隔的配对组成'varnames'和字符串数组或字符向量的单元数组,包括列的名称X第一,和用于响应变量名称y最后的。

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

变量名称不必是有效的MATLAB标识符。但是,如果名称无效,则在适合或调整模型时,您不能使用公式;例如:

  • 您无法使用公式指定在使用时添加或删除的术语addterms.功能或removeterms.功能,分别。

  • 你不能用一个公式时使用指定型号的上限和下限或者挺身油用名称 - 值对的参数函数'降低''上', 分别。

在指定之前'VarNames',varNames,您可以验证变量名称varnames.通过使用isvarname功能。如果变量名称无效,则可以使用使用的转换它们matlab.lang.makevalidname.功能。

例子:'varnames',{'horsepower','加速','model_year','mpg'}

数据类型:细绳|细胞

观察权值,指定为逗号分隔的对,由“重量”N非负标量值的-by-1向量,其中N是观测值的数量。

数据类型:单身的|

输出参数

全部收缩

广义线性回归模型,指定为GeneralizedLinearModel.使用对象的创建Fitglm.或者挺身油

更多关于

全部收缩

术语矩阵

一个方面矩阵T.是A.T.————(P.+ 1)指定模型中的项的矩阵,其中T.是术语数量,P.为预测变量的个数,+1表示响应变量。的价值T(I,J)是变量的指数j术语一世

例如,假设输入包括三个预测变量X1X2, 和X3和响应变量y按顺序X1X2X3, 和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表示法的典型示例。

Wilkinson表示法 标准符号术语
1 常数(拦截)术语
X1 ^ K.,在那里K.是一个正整数 X1X12,......,X1K.
x1 + x2 X1X2
x1 * x2 X1X2x1 * x2
x1:x2 x1 * x2只要
-x2 不包括X2
x1 * x2 + x3 X1X2X3x1 * x2
X1 + x2 + x3 + X1:x2 X1X2X3x1 * x2
x1 * x2 * x3 - x1:x2:x3 X1X2X3x1 * x2x1 * x3x2 * x3
x1 *(x2 + x3) X1X2X3x1 * x2x1 * 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.使用适合的每个观察。

替代功能

参考

[1] Collett D。模拟二进制数据.纽约:查普曼与霍尔出版社,2002年出版。

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

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

扩展能力

介绍在R2013B.