主要内容

fitglm

建立广义线性回归模型

描述

例子

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

例子

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

例子

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

例子

MDL.= fitglm(___名称,值返回带有由一个或多个指定的附加选项的广义线性模型名称,值对参数。

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

例子

全部折叠

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

加载医院数据集数组。

负载医院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值(下p值)大。这意味着没有一个系数是重要的。大 p -值用于模型的检验,0.535,表明该模型在统计上可能与常数模型没有差异。

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

rng (“默认”%的再现性X = randn(100,7);亩= EXP(X(:[4; 0.2; 0.3],[1 3 6])* + 1);Y = poissrnd(亩);

利用泊松分布拟合一个广义线性模型。

mdl = fitglm (X, y,'线性''分配'“泊松
MDL =广义线性回归模型:日志(y)的〜1 + X1 + X2 + X3 + X4 + X5 + X6 + X7分布=泊松估计系数:估计SE TSTAT p值_________ ________ __________(截距)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.函数,分别。

  • 属性时,不能使用公式来指定模型的上下限或者挺身油函数的名称-值对参数“低”“上”,分别。

您可以验证变量名资源描述通过使用isvarname函数。如果变量名是无效的,那么你可以通过将它们转换matlab.lang.makeValidName函数。

预测变量,指定为n——- - - - - -p矩阵,n是观测值的数量和p为预测变量的数量。每一列的X表示一个变量,每一行表示一个观察。

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

数据类型:单身的|

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

  • 如果'分配'不是“二项式”,然后y必须是一个n×1向量,其中n为观察次数。中的每个条目y对应一行的响应是X.数据类型必须为单或双。

  • 如果'分配'“二项式”,然后y可以是一个n1的向量或n- × 2矩阵,列1和BinomialSize在第2列。

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

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

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

    价值 模型类型
    '持续的' 模型仅包含一个常数(截距)术语。
    '线性' 模型包含每个预测器的截距和线性项。
    “互动” 模型包含每个预测器的截距,线性项,以及对不同预测器的所有乘积(没有平方项)。下载188bet金宝搏
    “purequadratic” 模型包含每个预测器的截距项和线性和平方术语。
    “二次” 模型包含一个截距项,线性和对每个预测平方项,以及对不同的预测器的所有产品。下载188bet金宝搏
    'Poly.ijk 模型是一种多项式,所有条款均可获得程度第一个预测因子是程度j在第二个预测因子,等等。通过使用数字来指定每个预测器的最大程度。但是模型包含交互术语,但每个交互项的程度不超过指定度的最大值。例如,“poly13”有一个截距x1x2x22x23.x1x2, 和x1x22条款,x1x2分别是第一和第二预测因素。
  • 一个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”是一个空矩阵[].也就是说,没有一个变量是绝对的,除非你指定它为绝对的。

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

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

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

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

用于计算色散参数的指标“二项式”“泊松分布,指定为逗号分隔对组成'DispersionFlag'下面是其中之一。

真的 在计算标准误差时估计一个离散参数。估计的色散参数值是皮尔逊残差的平方和除以误差自由度(DFE)。
违约。计算标准误差时,使用理论值1。

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

例子:“DispersionFlag”,真的

响应变量的分布,指定为逗号分隔对组成'分配'下面是其中之一。

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

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

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

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

例子:“排除”,[2,3]

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

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

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

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

例子:“拦截”,假的

优化选项,指定为结构。该参数确定迭代算法的控制参数fitglm用途。

创建'选项'使用该功能的值statset或通过创建包含在该表中描述的字段和值的结构阵列。

字段名 价值 默认值
展示

算法显示的信息量

  • “关闭”- 显示无信息

  • “最后一次”—显示最终输出

“关闭”
麦克斯特

允许的最大迭代次数,指定为正整数

100.
TolX

参数的终止公差,指定为正标量

1E-6

你也可以输入statset ('fitglm”)在命令窗口中查看字段的名称和默认值fitglm接受的'选项'名称-值参数。

例子:'选项',statset('显示','final','maxiter',1000)指定显示迭代算法结果的最终信息,并将允许的最大迭代次数更改为1000。

数据类型:结构体

在配合偏移变量,指定为逗号分隔的一对组成的'抵消'变量名资源描述或者一个与响应长度相同的数字向量。

fitglm使用抵消作为一个系数值固定为1的附加预测器。换句话说,拟合公式为

fμ=抵消+Xb

在哪里f是链接功能,μ平均值是多少Xb是预测因子的线性组合吗X.的抵消预测了系数1

例如,考虑泊松回归模型。假设是著名的理论依据计数的数量是成正比的预测一个.通过使用日志链接函数和指定日志(一)作为补偿,您可以强制模型满足这个理论约束。

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

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

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

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

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

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

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

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

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

例如,您可以指定第四个变量收益率作为响应了6个变量,通过以下方式之一。

例子:“ResponseVar”、“收益”

例子:“ResponseVar”,[4]

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

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

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

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

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

  • 你不能用一个公式来指定的条款中添加或当您使用删除addTerms函数或removeterms.函数,分别。

  • 属性时,不能使用公式来指定模型的上下限或者挺身油函数的名称-值对参数“低”“上”,分别。

在指定之前VarNames, VarNames,您可以验证变量名称varNames通过使用isvarname函数。如果变量名是无效的,那么你可以通过将它们转换matlab.lang.makeValidName函数。

例子:'VarNames',{ '马力', '加速', '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 *(×3 ^ 2)

0在每个期限结束表示响应变量。通常,在一个方面矩阵的零的列向量表示响应变量的位置。如果你在一个矩阵列向量预测和响应变量,那么你就必须包括0对于每行的最后一列中的响应变量。

公式

模型规范的公式是这种形式的字符向量或字符串标量y术语

  • y是响应名称。

  • 术语表示使用Wilkinson表示法的模型中的预测术语。

要表示预测器和响应变量,请使用表输入的变量名资源描述或使用指定的变量名VarNames.的默认值VarNames{x1, x2,…,‘xn’,‘y’}

例如:

  • 'Y〜X1 + X2 + X3'指定一个带有截距的三变量线性模型。

  • 'y〜x1 + x2 + x3 - 1'指定一个无截距的三变量线性模型。注意,默认情况下,公式包含一个常量(截距)项。要从模型中排除常数项,必须包含-1在公式。

一个公式包含一个常数项,除非你明确地用-1

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 X3 *x2 * x3
x1 * (x2 + x3) X1X2X3X1 * X2X1 X3 *

有关详细信息,请参阅Wilkinson表示法

规范链接功能

广义线性模型的默认链接函数为规范的链接功能

分布 规范链接功能名称 链接功能 意味着(逆)函数
“正常” '身份' 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层次由元素的乘积组成l- 1带有连续预测器的指标变量。

    • 有两个分类预测变量之间的相互作用方面lM级别包括l- 1) * (M- 1)指标变量包括两个分类预测水平的所有可能组合。

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

  • fitglm认为(空字符向量),""(空字符串),< >失踪, 和<定义>价值资源描述X, 和Y丢失值。fitglm不使用缺少匹配值的观测值。的ObservationInfo拟合模型的性质表明是否fitglm使用在配合每个观测。

另类功能

参考文献

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

多布森广义线性模型导论.纽约:查普曼与霍尔出版社,1990。

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

扩展能力

介绍了在R2013b