主要内容

Fitglm.

创建广义线性回归模型

描述

示例

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

示例

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

示例

mdl= fitglm (___modelspec返回您指定的类型的广义线性模型modelspec

示例

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

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

例子

全部折叠

使用双向交互模型,建立吸烟概率作为年龄、体重和性别函数的逻辑二项式模型。

加载医院数据集的数组。

负载医院dsa =医院;

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

modelspec ='吸烟〜年龄*体重*性别 - 年龄:体重:性别'

符合逻辑二项模型。

mdl = fitglm (dsa、modelspec“分布”“二”
mdl =广义线性回归模型:logit(吸烟者)~ 1 +性别*年龄+性别*体重+年龄*体重分布=二项式估计系数:Estimate SE tStat pValue ___________ _________ ________ _______ (Intercept) -6.0492 19.749 -0.3063 0.5938 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下)都是大的。这意味着没有一个系数是显着的。大 P. -Value用于模型的测试,0.535表示该模型可能与恒定模型有统计学不同。

用20个预测器创建示例数据,使用只有三个预测器,以及泊松响应,以及常数。

rng ('默认'重复性的%X = randn (100 7);mu = exp(X(:,[1 3 6])*[.4;.2;]3) + 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.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.将最后一个变量作为响应变量,其余变量作为预测变量。

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

  • 要使用列的子集作为预测器,请使用PredictorVars名称值对参数。

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

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

  • 你不能指定modelspec使用公式。

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

  • 您无法使用公式指定当您使用时模型的下限和上限step挺身油函数的名称-值对参数“低”'上'分别。

您可以验证变量名资源描述通过使用isvarname函数。下面的代码返回逻辑的1真正的)对于具有有效变量名的每个变量。

cellfun(@ isvarname,tbl.properties.variablenames)
如果变量名在资源描述是无效的,则使用matlab.lang.makeValidName函数。
tbl.Properties.VariableNames = matlab.lang.makeValidName (tbl.Properties.VariableNames);

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

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

数据类型:|双人间

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

  • 如果“分布”不是“二”那么y必须是一个N1的向量,N是观察人数。每个条目y对应一行的响应是X..数据类型必须为单或双。

  • 如果“分布”“二”那么y可以是一个N1的向量或N- × 2矩阵,列1和Binomialsize.在第2列。

数据类型:|双人间|逻辑|分类

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

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

    价值 模型类型
    '常数' 模型只包含一个常数(截距)项。
    “线性” 模型包含每个预测器的截距和线性术语。
    “互动” 模型包含每个预测器的截距,线性项,以及对不同预测器的所有乘积(没有平方项)。s manbetx 845
    'purequadratic' 模型包含每个预测器的截距项和线性和平方术语。
    “二次” 模型包含每个预测器的截距项、线性项和平方项,以及对不同预测器的所有乘积。s manbetx 845
    “聚ijk' 模型是一种多项式,所有条款均可获得程度在第一个预测因子,学位j在第二个预测中,等等。通过使用数字0到9指定每个预测器的最大程度。模型中包含交互项,但每个交互项的程度不超过指定程度的最大值。例如,“poly13”有一个拦截和X.1X.2X.22X.23.X.1*X.2,X.1*X.22条款,X.1X.2分别是第一和第二预测因素。
  • A.T.————(P.+ 1)矩阵,或者术语矩阵,在模型中指定项,其中T.是多少项和P.为预测变量的个数,+1表示响应变量。当预测器的数量很大且您希望以编程方式生成术语时,术语矩阵是很方便的。

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

    'Y〜术语'

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

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

例子:“二次”

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。名称参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

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

二项份分布的试验数量,即样本大小,指定为逗号分隔对“BinomialSize”和变量名称资源描述、数字标量或与响应长度相同的数字向量。这是参数N对于拟合的二项分布。Binomialsize.仅适用于分布参数是“二”

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

作为替代Binomialsize.,您可以将响应指定为双列矩阵,其中包含列1中的计数Binomialsize.在第2列。

数据类型:|双人间|字符|

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

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

  • 如果数据在矩阵中X.,则为的默认值“CategoricalVars”是一个空矩阵[].也就是说,没有一个变量是绝对的,除非你指定它为绝对的。

例如,您可以使用以下任意一个示例指定6个观察结果中的2个和3个为分类。

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

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

数据类型:|双人间|逻辑||细胞

计算色散参数的指示器“二”'泊松'发行版,指定为逗号分隔对,由'DispersensionFlag'以及以下之一。

真正的 计算标准错误时估计分散参数。估计的色散参数值是平方皮尔逊残差除以误差(DFE)的自由度除外。
违约。计算标准误差时使用理论值。

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

例子:'DispersensionFlag',真实

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

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

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

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

例如,您可以使用下面的任何一个示例排除6个观察值中的2个和3个。

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

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

数据类型:|双人间|逻辑

适应度中的常数项(截距)指示符,指定为逗号分隔的对组成“拦截”,要么真正的包括或从模型中移除常数项。

使用“拦截”仅在使用字符向量或字符串标量指定模型时,而不是公式或矩阵。

例子:“拦截”,假的

匹配中的偏移量变量,指定为逗号分隔的对,由“抵消”和变量名称资源描述或者一个与响应长度相同的数字向量。

Fitglm.用途偏移作为一个系数值固定为1的附加预测器。换句话说,拟合公式为

F.μ=偏移+X.*B.

在哪里F.为链接函数,μ平均值是多少X.*B.是预测器的线性组合X..当偏移预测器具有系数1

例如,考虑泊松回归模型。假设以与预测器成正比的理论原因已知数量A..通过使用日志链接函数和指定日志(a)作为补偿,您可以强制模型满足这个理论约束。

数据类型:|双人间|字符|

要在适合的情况下使用的预测变量,指定为逗号分隔对组成'predictorvars'以及表或数据集数组中变量名称的字符数阵列或单元格数组资源描述,或逻辑或数字索引向量,指示哪些列是预测变量。

中的名称应包含字符串值或字符向量资源描述或者使用您使用的名称“VarNames”名称值对参数。

默认是所有的变量X.,或所有变量资源描述除了响应官员

例如,您可以使用以下任意一个示例指定第二个和第三个变量作为预测变量。

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

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

数据类型:|双人间|逻辑||细胞

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

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

例子:“ResponseVar”、“收益”

例子:'ResponalVar',[4]

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

数据类型:|双人间|逻辑|字符|

变量的名称,指定为逗号分隔的配对组成“VarNames”以及字符向量的字符串数组或单元格数组,其中包括的列的名称X.首先是响应变量的名称y最后一次。

“VarNames”不适用于表或数据集数组中的变量,因为这些变量已经有了名称。

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

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

  • 您无法使用公式指定当您使用时模型的下限和上限step挺身油函数的名称-值对参数“低”'上'分别。

在指定'varnames',varnames,您可以验证变量名称varnames.通过使用isvarname函数。下面的代码返回逻辑的1真正的)对于具有有效变量名的每个变量。

Cellfun(@ Isvarname,Varnames)
如果变量名在varnames.是无效的,则使用matlab.lang.makeValidName函数。
varNames = matlab.lang.makeValidName (varNames);

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

数据类型:|细胞

观察权重,指定为逗号分隔的配对组成'重量'和一个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 1 0 0]-X2;同样,x1 ^ 0 * x2 ^ 1 * x3 ^ 0

  • [1 0 1 0]-x1 * x3

  • [2 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

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.
“二” 分对数的 F.μ)=日志(μ/ (1 -μ)) μ= exp (XB.) / (1 + exp(XB.))
'泊松' 'log' F.μ)=日志(μ μ= exp (XB.
'伽玛' -1 F.μ) = 1 /μ μ= 1 /(XB.
逆高斯分布的 -2 F.μ) = 1 /μ2 μ= (XB.1/2

提示

  • 广义线性模型mdl是标准的线性模型,除非您以其他方式指定分布名称值对。

  • 对于以下方法plotResidualsdevianceTest的属性GeneralizedLinearModel对象,看到GeneralizedLinearModel

  • 培训模型后,您可以生成C / C ++代码,该代码预测新数据的响应。生成C / C ++代码需要Matlab Coder™.有关详细信息,请参见代码生成简介

算法

  • Fitglm.对分类预测器的处理如下:

    • 具有分类预测指标的模型L.包括水平(类别)L.- 1指标变量。模型使用第一个类别作为参考级别,因此不包含参考级别的指标变量。如果分类预测器的数据类型为分类,则可以使用类别并通过使用重新排序类别reordercats自定义参考级别。有关创建指示器变量的更多详细信息,请参阅虚拟变量的自动创建

    • Fitglm.对待一组L.- 1指示器变量作为一个单独的变量。如果您想将指示器变量视为不同的预测变量,可以使用戴维尔.然后在拟合模型时,使用除分类变量参考水平对应的指标变量外的其他指标变量。对于绝对预测器X.,如果您指定所有列dummyvar (X)并以截距项作为预测因子,使设计矩阵秩亏缺。

    • 连续预测器和分类预测器之间的交互项L.层次由元素的乘积组成L.- 1具有连续预测器的指示器变量。

    • 两个分类预测因子之间的交互条款L.m级别包括L.- 1)*(m- 1)指标变量包括两个分类预测水平的所有可能组合。

    • 不能为绝对预测器指定高阶项,因为指示器的平方等于它本身。

  • Fitglm.认为(空字符向量),(空字符串),< >失踪,<定义>价值资源描述X.,y丢失值。Fitglm.不使用符合缺失值的观察结果。当ObservationInfo拟合模型的性质表明是否Fitglm.把每个观察结果都用在合适的地方。

选择功能

参考资料

[1] Collett D。二进制数据建模.纽约:2002年Chapman&Hall。

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

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

扩展能力

介绍了R2013b