主要内容gydF4y2Ba

广义线性模型gydF4y2Ba

什么是广义线性模型?gydF4y2Ba

线性回归模型描述一个响应和一个或多个预测项之间的线性关系。然而,很多时候存在非线性关系。gydF4y2Ba非线性回归gydF4y2Ba描述一般的非线性模型。一类特殊的非线性模型,称为gydF4y2Ba广义线性模型gydF4y2Ba,使用线性方法。gydF4y2Ba

回想一下,线性模型具有这些特性:gydF4y2Ba

  • 在每一组预测值上,响应具有均值的正态分布gydF4y2Baμ.gydF4y2Ba.gydF4y2Ba

  • 系数矢量gydF4y2BabgydF4y2Ba定义线性组合gydF4y2BaXgydF4y2BabgydF4y2Ba的预测因素gydF4y2BaXgydF4y2Ba.gydF4y2Ba

  • 该模型是gydF4y2Baμ.gydF4y2Ba=gydF4y2BaXgydF4y2BabgydF4y2Ba.gydF4y2Ba

在广义的线性模型中,这些特征是如下推广:gydF4y2Ba

  • 对于预测器的每一组值,响应都有一个分布gydF4y2Ba正常的gydF4y2Ba,gydF4y2Ba一键gydF4y2Ba,gydF4y2Ba泊松gydF4y2Ba,gydF4y2BaγgydF4y2Ba,或gydF4y2Ba逆高斯分布gydF4y2Ba,参数包括平均值gydF4y2Baμ.gydF4y2Ba.gydF4y2Ba

  • 系数矢量gydF4y2BabgydF4y2Ba定义线性组合gydF4y2BaXgydF4y2BabgydF4y2Ba的预测因素gydF4y2BaXgydF4y2Ba.gydF4y2Ba

  • 一个gydF4y2Ba链接功能gydF4y2BafgydF4y2Ba将模型定义为gydF4y2BafgydF4y2Ba(gydF4y2Baμ.gydF4y2Ba)=gydF4y2BaXgydF4y2BabgydF4y2Ba.gydF4y2Ba

准备数据gydF4y2Ba

要开始拟合回归,请将数据转换为拟合函数所期望的形式。所有回归技术都是从数组中的输入数据开始的gydF4y2BaXgydF4y2Ba响应数据在一个单独的向量中gydF4y2BaygydF4y2Ba或表或数据集数组中的输入数据gydF4y2BaTBL.gydF4y2Ba和响应数据作为列gydF4y2BaTBL.gydF4y2Ba.输入数据的每一行代表一个观察。每列代表一个预测器(变量)。gydF4y2Ba

用于表或数据集数组gydF4y2BaTBL.gydF4y2Ba,表示响应变量gydF4y2Ba'responsevar'gydF4y2Ba名称值对:gydF4y2Ba

mdl = fitglm(tbl,gydF4y2Ba'responsevar'gydF4y2Ba,gydF4y2Ba'血压'gydF4y2Ba);gydF4y2Ba

默认情况下,响应变量是最后一列。gydF4y2Ba

您可以使用数字gydF4y2Ba分类gydF4y2Ba预测器。分类预测器是从固定的可能性集中获取值的预测器。gydF4y2Ba

  • 对于数字数组gydF4y2BaXgydF4y2Ba,用。表示分类预测因子gydF4y2Ba“分类”gydF4y2Ba名称值对。例如,表示预测器gydF4y2Ba2gydF4y2Ba和gydF4y2Ba3.gydF4y2Ba六个是分类:gydF4y2Ba

    mdl = fitglm (X, y,gydF4y2Ba“分类”gydF4y2Ba[2、3]);gydF4y2Ba%或等价gydF4y2Bamdl = fitglm (X, y,gydF4y2Ba“分类”gydF4y2Ba,逻辑([0 1 1 0 0]));gydF4y2Ba
  • 用于表或数据集数组gydF4y2BaTBL.gydF4y2Ba,拟合函数假设这些数据类型是分类的:gydF4y2Ba

    • 逻辑向量gydF4y2Ba

    • 分类向量gydF4y2Ba

    • 字符数组gydF4y2Ba

    • 字符串数组gydF4y2Ba

    如果要指示数值预测器是分类的,请使用gydF4y2Ba“分类”gydF4y2Ba名称值对。gydF4y2Ba

表示丢失的数字数据为gydF4y2Ba南gydF4y2Ba.表示其他数据类型的缺失数据,请参阅gydF4y2Ba失踪组值gydF4y2Ba.gydF4y2Ba

  • 对于一个gydF4y2Ba'二重子'gydF4y2Ba数据矩阵模型gydF4y2BaXgydF4y2Ba, 响应gydF4y2BaygydF4y2Ba可以是:gydF4y2Ba

    • 二进制列向量 - 每个条目代表成功(gydF4y2Ba1gydF4y2Ba)或失败(gydF4y2Ba0gydF4y2Ba).gydF4y2Ba

    • 两列整数矩阵——第一列是每次观察的成功次数,第二列是该观察的试验次数。gydF4y2Ba

  • 对于一个gydF4y2Ba'二重子'gydF4y2Ba模型与表或数据集gydF4y2BaTBL.gydF4y2Ba:gydF4y2Ba

    • 使用gydF4y2BaResponseVargydF4y2Ba的列的名称-值对gydF4y2BaTBL.gydF4y2Ba这给出了每种观察中的成功次数。gydF4y2Ba

    • 使用gydF4y2BaBinomialSizegydF4y2Ba的列的名称-值对gydF4y2BaTBL.gydF4y2Ba这给出了每次观察的试验次数。gydF4y2Ba

输入和响应数据的数据集数组gydF4y2Ba

例如,从Excel创建数据集数组gydF4y2Ba®gydF4y2Ba电子表格:gydF4y2Ba

ds = dataset(gydF4y2Ba'xlsfile'gydF4y2Ba,gydF4y2Ba“hospital.xls”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba'readobsnames'gydF4y2Ba,真正的);gydF4y2Ba

从工作区变量创建数据集数组:gydF4y2Ba

负载gydF4y2BaCarsmall.gydF4y2BaDS =数据集(MPG,重量);ds.year =序数(model_year);gydF4y2Ba

输入和响应数据表gydF4y2Ba

要从工作区变量创建一个表:gydF4y2Ba

负载gydF4y2BaCarsmall.gydF4y2BaTBL =表(MPG,重量);tbl.year =序数(model_year);gydF4y2Ba

数字矩阵的输入数据,数字向量的响应gydF4y2Ba

例如,要从工作区变量创建数字数组:gydF4y2Ba

负载gydF4y2BaCarsmall.gydF4y2BaX =[重量马力汽缸Model_Year];y = MPG;gydF4y2Ba

从Excel电子表格创建数字数组:gydF4y2Ba

[x,xnames] = xlsread(gydF4y2Ba“hospital.xls”gydF4y2Ba);y = X (:, 4);gydF4y2Ba%反应Y是收缩压gydF4y2BaX (:, 4) = [];gydF4y2Ba从X矩阵中去掉ygydF4y2Ba

请注意非数字项,例如gydF4y2Ba性gydF4y2Ba,不出现在gydF4y2BaXgydF4y2Ba.gydF4y2Ba

选择广义线性模型和链接函数gydF4y2Ba

通常,你的数据表明了广义线性模型的分布类型。gydF4y2Ba

响应数据类型gydF4y2Ba 建议模型分布类型gydF4y2Ba
任意的实数gydF4y2Ba “正常”gydF4y2Ba
任何正数gydF4y2Ba “伽马”gydF4y2Ba要么gydF4y2Ba'逆高斯'gydF4y2Ba
任何一个非负整数gydF4y2Ba “泊松”gydF4y2Ba
从0到的整数gydF4y2BangydF4y2Ba, 在哪里gydF4y2BangydF4y2Ba是一个固定的正值gydF4y2Ba '二重子'gydF4y2Ba

使用该模型分发类型设置gydF4y2Ba分布gydF4y2Ba名称值对。选择模型类型后,选择链接功能以在平均值之间映射gydF4y2BaµgydF4y2Ba线性预测器gydF4y2BaXB.gydF4y2Ba.gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
“comploglog”gydF4y2Ba

日志(日志((1 -gydF4y2BaµgydF4y2Ba))) =gydF4y2BaXB.gydF4y2Ba

“身份”gydF4y2Ba,默认为分发gydF4y2Ba“正常”gydF4y2Ba

µgydF4y2Ba=gydF4y2BaXB.gydF4y2Ba

“日志”gydF4y2Ba,默认为分发gydF4y2Ba“泊松”gydF4y2Ba

日志(gydF4y2BaµgydF4y2Ba)=gydF4y2BaXB.gydF4y2Ba

分对数的gydF4y2Ba,默认为分发gydF4y2Ba'二重子'gydF4y2Ba

日志(gydF4y2BaµgydF4y2Ba/(1 -gydF4y2BaµgydF4y2Ba)) =gydF4y2BaXB.gydF4y2Ba

'loglog'gydF4y2Ba

日志(日志(gydF4y2BaµgydF4y2Ba)) =gydF4y2BaXB.gydF4y2Ba

“probit”gydF4y2Ba

φ.gydF4y2Ba1gydF4y2Ba(gydF4y2BaµgydF4y2Ba)=gydF4y2BaXB.gydF4y2Ba,其中Φ为正态(高斯)累积分布函数gydF4y2Ba

“互惠”gydF4y2Ba,默认为分发gydF4y2Ba“伽马”gydF4y2Ba

µgydF4y2Ba1gydF4y2Ba=gydF4y2BaXB.gydF4y2Ba

pgydF4y2Ba(一个数字),默认为分发gydF4y2Ba'逆高斯'gydF4y2Ba(与gydF4y2BapgydF4y2Ba= 2gydF4y2Ba)gydF4y2Ba

µgydF4y2BapgydF4y2Ba=gydF4y2BaXB.gydF4y2Ba

表格的细胞阵列gydF4y2Ba{FL FD FI}gydF4y2Ba,包含三个函数句柄gydF4y2Ba@gydF4y2Ba,定义链接(gydF4y2BaFLgydF4y2Ba),链接的衍生物(gydF4y2BaFDgydF4y2Ba),以及反向链接(gydF4y2BaFIgydF4y2Ba).或者,与该字段的功能处理的结构gydF4y2Ba链接gydF4y2Ba包含gydF4y2BaFLgydF4y2Ba, 场gydF4y2Ba衍生物gydF4y2Ba包含gydF4y2BaFDgydF4y2Ba和这个领域gydF4y2Ba逆gydF4y2Ba包含gydF4y2BaFIgydF4y2Ba.gydF4y2Ba

用户指定的链接功能(参见gydF4y2Ba自定义链接功能gydF4y2Ba)gydF4y2Ba

非默认链接功能主要适用于二项式模型。这些非默认链接功能是gydF4y2Ba“comploglog”gydF4y2Ba,gydF4y2Ba'loglog'gydF4y2Ba, 和gydF4y2Ba“probit”gydF4y2Ba.gydF4y2Ba

自定义链接功能gydF4y2Ba

link函数定义了这种关系gydF4y2BafgydF4y2Ba(gydF4y2BaµgydF4y2Ba)=gydF4y2BaXB.gydF4y2Ba在平均反应之间gydF4y2BaµgydF4y2Ba线性组合gydF4y2BaXB.gydF4y2Ba=gydF4y2BaXgydF4y2Ba*gydF4y2BabgydF4y2Ba的预测因素。您可以选择一个内置的链接函数,也可以通过指定链接函数来定义自己的链接函数gydF4y2BaFLgydF4y2Ba,它的导数gydF4y2BaFDgydF4y2Ba和它的逆gydF4y2BaFIgydF4y2Ba:gydF4y2Ba

  • 链接功能gydF4y2BaFLgydF4y2Ba计算gydF4y2BafgydF4y2Ba(gydF4y2BaµgydF4y2Ba).gydF4y2Ba

  • 连杆函数的导数gydF4y2BaFDgydF4y2Ba计算gydF4y2BadfgydF4y2Ba(gydF4y2BaµgydF4y2Ba)/gydF4y2BadµgydF4y2Ba.gydF4y2Ba

  • 逆函数gydF4y2BaFIgydF4y2Ba计算gydF4y2BaggydF4y2Ba(gydF4y2BaXB.gydF4y2Ba)=gydF4y2BaµgydF4y2Ba.gydF4y2Ba

你可以用两种等价的方式来指定一个自定义链接函数。每种方法都包含接受表示值的单个数组的函数句柄gydF4y2BaµgydF4y2Ba要么gydF4y2BaXB.gydF4y2Ba,并返回相同大小的数组。功能句柄在单元格数组中或结构中:gydF4y2Ba

  • 窗体的单元格数组gydF4y2Ba{FL FD FI}gydF4y2Ba,包含三个函数句柄,使用gydF4y2Ba@gydF4y2Ba,定义链接(gydF4y2BaFLgydF4y2Ba),链接的衍生物(gydF4y2BaFDgydF4y2Ba),以及反向链接(gydF4y2BaFIgydF4y2Ba).gydF4y2Ba

  • 结构gydF4y2Ba年代gydF4y2Ba有三个字段,每个字段包含使用gydF4y2Ba@gydF4y2Ba:gydF4y2Ba

    • 年代gydF4y2Ba。关联gydF4y2Ba——链接功能gydF4y2Ba

    • 年代gydF4y2Ba。衍生物gydF4y2Ba- 链接功能的衍生gydF4y2Ba

    • 年代gydF4y2Ba。逆gydF4y2Ba—链路函数的逆gydF4y2Ba

例如,使用gydF4y2Ba“probit”gydF4y2Ba链接功能:gydF4y2Ba

X = [2100 2300 2500 2700 2900gydF4y2Ba...gydF4y2Ba3100 3300 3500 3700 3900 4100 4300]';N = [48 42 31 34 31 21 23 23 21 16 17 21]';Y = [1 2 0 3 8 8 14 17 19 15 17 21];(x,[y n],gydF4y2Ba...gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分配”gydF4y2Ba,gydF4y2Ba'二重子'gydF4y2Ba,gydF4y2Ba'关联'gydF4y2Ba,gydF4y2Ba“probit”gydF4y2Ba)gydF4y2Ba
G =广义线性回归模型:探测器(Y)〜1 + X1分布=二项式估计系数:估计SE TSTAT PVALUE(拦截)-7.3628 0.66815 -11.02 3.07010-28 x1 0.79 0.00021352 10.79 3.8274C-27 12观察,10个错误自由度分散度:1 CHI ^ 2统计与常数型号:241,p值= 2.25e-54gydF4y2Ba

您可以使用自定义链接函数执行相同的拟合,该函数相同地执行gydF4y2Ba“probit”gydF4y2Ba链接功能:gydF4y2Ba

s = {@norminv, @ (x) 1. / normpdf (norminv (x)), @normcdf};(x,[y n],gydF4y2Ba...gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分配”gydF4y2Ba,gydF4y2Ba'二重子'gydF4y2Ba,gydF4y2Ba'关联'gydF4y2Ba,s)gydF4y2Ba
g =广义线性回归模型:链接(y) ~ 1 + x1分布=二项式估计系数:估计SE tStat pValue(截距)-7.3628 0.66815 -11.02 3.0701e-28 x1 0.0023039 0.00021352 10.79 3.8274e-27 12个观测值,10个误差自由度gydF4y2Ba

这两种型号是一样的。gydF4y2Ba

同样,你也可以写作gydF4y2Ba年代gydF4y2Ba作为结构而不是单元格阵列:gydF4y2Ba

s.Link = @norminv;s.Derivative = @(x) 1./normpdf(norminv(x));s.Inverse = @normcdf;(x,[y n],gydF4y2Ba...gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分配”gydF4y2Ba,gydF4y2Ba'二重子'gydF4y2Ba,gydF4y2Ba'关联'gydF4y2Ba,s)gydF4y2Ba
g =广义线性回归模型:链接(y) ~ 1 + x1分布=二项式估计系数:估计SE tStat pValue(截距)-7.3628 0.66815 -11.02 3.0701e-28 x1 0.0023039 0.00021352 10.79 3.8274e-27 12个观测值,10个误差自由度gydF4y2Ba

选择拟合方法和模型gydF4y2Ba

有两种方法可以创建一个拟合型号。gydF4y2Ba

  • 使用gydF4y2BafitglmgydF4y2Ba当您对广义的线性模型有一个好主意时,或者稍后要调整模型以包括或排除某些术语时。gydF4y2Ba

  • 使用gydF4y2BastepwiseglmgydF4y2Ba当你想用逐步回归来拟合你的模型时。gydF4y2BastepwiseglmgydF4y2Ba从一个模型(比如一个常数)开始,每次增加或减少一个项,每次以一种贪婪的方式选择最优项,直到无法进一步改进为止。使用逐步拟合找到一个好的模型,一个只有相关条款的模型。gydF4y2Ba

    结果取决于起始模型。通常,从一个常量模型开始,可以得到一个小模型。从更多的项开始会导致一个更复杂的模型,但它具有更低的均方误差。gydF4y2Ba

在这两种情况下,为拟合函数提供一个模型(它是初始模型)gydF4y2BastepwiseglmgydF4y2Ba).gydF4y2Ba

使用这些方法之一指定一个模型。gydF4y2Ba

简短的模型名称gydF4y2Ba

的名字gydF4y2Ba 模型类型gydF4y2Ba
“不变”gydF4y2Ba 模型只包含一个常数(截距)项。gydF4y2Ba
“线性”gydF4y2Ba 模型包含每个预测器的截距和线性项。gydF4y2Ba
'互动'gydF4y2Ba 模型包含截距、线性项和不同预测因子对的所有乘积(没有平方项)。下载188bet金宝搏gydF4y2Ba
“purequadratic”gydF4y2Ba 模型包含截距、线性项和平方项。gydF4y2Ba
'二次'gydF4y2Ba 模型包含截距,线性术语,交互和平方术语。gydF4y2Ba
'Poly.gydF4y2BaIJK.gydF4y2Ba'gydF4y2Ba 模型是一个多项式,所有项都达到次gydF4y2Ba我gydF4y2Ba在第一个预测因子,学位gydF4y2BajgydF4y2Ba在第二个预测器等中使用标号gydF4y2Ba0gydF4y2Ba通过gydF4y2Ba9gydF4y2Ba.例如,gydF4y2Ba“poly2111”gydF4y2Ba有一个常数加上所有的线性和乘积项,也包含预测因子1的平方项。gydF4y2Ba

计算矩阵gydF4y2Ba

一个条件矩阵gydF4y2BaTgydF4y2Ba是一个gydF4y2BatgydF4y2Ba-经过-(gydF4y2BapgydF4y2Ba+ 1)矩阵指定模型中的术语,其中gydF4y2BatgydF4y2Ba是项的个数,gydF4y2BapgydF4y2Ba为预测变量的个数,+1表示响应变量。的价值gydF4y2BaT (i, j)gydF4y2Ba是变量的指数吗gydF4y2BajgydF4y2Ba在术语gydF4y2Ba我gydF4y2Ba.gydF4y2Ba

例如,假设输入包括三个预测变量gydF4y2Bax1gydF4y2Ba,gydF4y2Bax2gydF4y2Ba, 和gydF4y2Bax3gydF4y2Ba以及响应变量gydF4y2BaygydF4y2Ba的顺序gydF4y2Bax1gydF4y2Ba,gydF4y2Bax2gydF4y2Ba,gydF4y2Bax3gydF4y2Ba, 和gydF4y2BaygydF4y2Ba.每一行的gydF4y2BaTgydF4y2Ba代表一个术语:gydF4y2Ba

  • [0 0 0]gydF4y2Ba-常数项或截距gydF4y2Ba

  • [0 1 0 0]gydF4y2Ba- - - - - -gydF4y2Bax2gydF4y2Ba;同样,gydF4y2Bax1 ^ 0 * x2 ^ 1 * x3 ^ 0gydF4y2Ba

  • [1 0 1 0]gydF4y2Ba- - - - - -gydF4y2Bax1 * x3gydF4y2Ba

  • [2 0 0 0]gydF4y2Ba- - - - - -gydF4y2Bax1 ^ 2gydF4y2Ba

  • [0 1 2 0]gydF4y2Ba- - - - - -gydF4y2Bax2 * (x3 ^ 2)gydF4y2Ba

的gydF4y2Ba0gydF4y2Ba在每个术语的末尾表示响应变量。通常,术语矩阵中零的列向量表示响应变量的位置。如果您在矩阵和列向量中有预测器和响应变量,则必须包含gydF4y2Ba0gydF4y2Ba获取每行最后一列中的响应变量。gydF4y2Ba

公式gydF4y2Ba

模型规范的公式是表单的字符向量或字符串标量gydF4y2Ba

'gydF4y2BaygydF4y2Ba~gydF4y2Ba术语gydF4y2Ba'gydF4y2Ba,gydF4y2Ba

  • ygydF4y2Ba是响应名称。gydF4y2Ba

  • 术语gydF4y2Ba包含gydF4y2Ba

    • 变量名称gydF4y2Ba

    • +gydF4y2Ba包括下一个变量gydF4y2Ba

    • -gydF4y2Ba排除下一个变量gydF4y2Ba

    • :gydF4y2Ba定义一种互动,一种术语的产物gydF4y2Ba

    • *gydF4y2Ba定义交互作用和所有低阶项gydF4y2Ba

    • ^gydF4y2Ba将预测器提升到一个指数,就像gydF4y2Ba*gydF4y2Ba重复,所以gydF4y2Ba^gydF4y2Ba也包括低阶项gydF4y2Ba

    • ()gydF4y2Ba组条件gydF4y2Ba

提示gydF4y2Ba

默认情况下,公式包括常数(拦截)术语。要从模型中排除常量术语,包括gydF4y2Ba-1gydF4y2Ba的公式。gydF4y2Ba

例子:gydF4y2Ba

'y ~ x1 + x2 + x3'gydF4y2Ba是一个带截距的三变量线性模型。gydF4y2Ba
'y ~ x1 + x2 + x3 - 1'gydF4y2Ba是一个无截距的三变量线性模型。gydF4y2Ba
'y ~ x1 + x2 + x3 + x2^2'gydF4y2Ba是一个三变量模型,拦截和agydF4y2Bax2 ^ 2gydF4y2Ba学期。gydF4y2Ba
'y ~ x1 + x2^2 + x3'gydF4y2Ba和前面的例子一样,因为gydF4y2Bax2 ^ 2gydF4y2Ba包括一个gydF4y2Bax2gydF4y2Ba学期。gydF4y2Ba
'y ~ x1 + x2 + x3 + x1:x2'gydF4y2Ba包括一个gydF4y2Bax1 * x2gydF4y2Ba学期。gydF4y2Ba
'y ~ x1*x2 + x3'gydF4y2Ba和前面的例子一样,因为gydF4y2BaX1 *x2 = X1 + x2 + X1:x2gydF4y2Ba.gydF4y2Ba
'y ~ x1*x2*x3 - x1:x2:x3'gydF4y2Ba所有的相互作用gydF4y2Bax1gydF4y2Ba,gydF4y2Bax2gydF4y2Ba, 和gydF4y2Bax3gydF4y2Ba,除了三方互动。gydF4y2Ba
y ~ x1*(x2 + x3 + x4)'gydF4y2Ba所有的线性项,加上乘积下载188bet金宝搏gydF4y2Bax1gydF4y2Ba和其他变量。gydF4y2Ba

数据拟合模型gydF4y2Ba

使用拟合型号使用gydF4y2BafitglmgydF4y2Ba要么gydF4y2BastepwiseglmgydF4y2Ba.在它们之间选择gydF4y2Ba选择拟合方法和模型gydF4y2Ba.对于非正态分布的广义线性模型,给出gydF4y2Ba分布gydF4y2Ba名称-值对,如gydF4y2Ba选择广义线性模型和链接函数gydF4y2Ba.例如,gydF4y2Ba

mdl = fitglm (X, y,gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分布”gydF4y2Ba,gydF4y2Ba“泊松”gydF4y2Ba)gydF4y2Ba% 要么gydF4y2Bamdl = fitglm (X, y,gydF4y2Ba'二次'gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“分布”gydF4y2Ba,gydF4y2Ba'二重子'gydF4y2Ba)gydF4y2Ba

检查质量并调整拟合模型gydF4y2Ba

拟合模型后,检查结果。gydF4y2Ba

模型显示gydF4y2Ba

当您输入线性回归模型的名称或输入时,线性回归模型将显示多个诊断gydF4y2BaDISP(MDL)gydF4y2Ba.此显示给出了一些基本信息,以检查拟合模型是否充分代表数据。gydF4y2Ba

例如,将泊松模型拟合到由5个不影响响应的预测因子中的2个构建的数据中,并且没有截距项:gydF4y2Ba

RNG(gydF4y2Ba'默认'gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaX = randn (100 5);mu = exp(x(:,[1 4 5])* [。4; .2; .3]);y = poissrnd(μ);mdl = fitglm (X, y,gydF4y2Ba...gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分布”gydF4y2Ba,gydF4y2Ba“泊松”gydF4y2Ba)gydF4y2Ba
MDL =广义线性回归模型:log(y)〜1 + x1 + x2 + x3 + x4 + x5分布=泊松估计系数:估计SE tstat pvalue(截取)0.039829 0.120793 0.38551 0.0647 4.07936 5.0647 4.08952-07 x2  -0。03.4905 0.086685 -0.40266 0.6872 x3 -0.17826 0.093552 -1.9054 0.056722 x4 0.21929 0.09357 2.3436 0.019097 x5 0.28918 0.1094 2.6432 0.0082126 100 observations, 94 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 44.9, p-value = 1.55e-08

注意:gydF4y2Ba

  • 显示中包含每个系数的估计值gydF4y2Ba估计gydF4y2Ba柱子。这些值合理地附近真实值gydF4y2Ba[0。4;0;0;2、3)gydF4y2Ba,可能除了的系数gydF4y2Bax3gydF4y2Ba不是很近gydF4y2Ba0gydF4y2Ba.gydF4y2Ba

  • 系数估计有一个标准误差列。gydF4y2Ba

  • 的报道gydF4y2BapValuegydF4y2Ba派生自gydF4y2BatgydF4y2Ba预测器1,4和5的定期假设下的统计数据很小。这些是用于创建响应数据的三个预测因子gydF4y2BaygydF4y2Ba.gydF4y2Ba

  • 的gydF4y2BapValuegydF4y2Ba为gydF4y2Ba(拦截)gydF4y2Ba,gydF4y2Bax2gydF4y2Ba和gydF4y2Bax3gydF4y2Ba大于0.01。这三个预测因子没有用于创建响应数据gydF4y2BaygydF4y2Ba.的gydF4y2BapValuegydF4y2Ba为gydF4y2Bax3gydF4y2Ba只是在gydF4y2Ba0。gydF4y2Ba,因此可能被认为是可能重要的。gydF4y2Ba

  • 显示包含卡方统计。gydF4y2Ba

诊断情节gydF4y2Ba

诊断图帮助您识别异常值,并查看模型或拟合模型中的其他问题。为了说明这些图,考虑使用逻辑连接函数的二项式回归。gydF4y2Ba

的gydF4y2Ba物流模型gydF4y2Ba对比例数据很有用。它定义了比例之间的关系gydF4y2BapgydF4y2Ba和重量gydF4y2BawgydF4y2Ba由:gydF4y2Ba

日志[gydF4y2BapgydF4y2Ba/(1 -gydF4y2BapgydF4y2Ba) =gydF4y2BabgydF4y2Ba1gydF4y2Ba+gydF4y2BabgydF4y2Ba2gydF4y2BawgydF4y2Ba

这个例子符合二项模型的数据。这些数据是由gydF4y2Bacarbig.matgydF4y2Ba,其中包含各种重量的大型汽车的测量数据。每一个重量gydF4y2BawgydF4y2Ba有相应数量的汽车gydF4y2Ba全部的gydF4y2Ba以及相应数量的低里程汽车gydF4y2Ba可怜的gydF4y2Ba.gydF4y2Ba

假设值是合理的gydF4y2Ba可怜的gydF4y2Ba跟随gydF4y2Ba一键gydF4y2Ba分布,试验的次数由gydF4y2Ba全部的gydF4y2Ba成功的百分比取决于gydF4y2BawgydF4y2Ba.通过使用带链接函数日志的广义线性模型,可以在逻辑模型的上下文中考虑此分发(gydF4y2BaµgydF4y2Ba/(1 -gydF4y2BaµgydF4y2Ba)) =gydF4y2BaXgydF4y2BabgydF4y2Ba.调用这个链接函数gydF4y2Ba分对数的gydF4y2Ba.gydF4y2Ba

W = [2100 2300 2500 2700 2900 3100gydF4y2Ba...gydF4y2Ba3300 3500 3700 3900 4100 4300]'总= [48 42 31 31 21 23 23 21 16 17 21]';差= [1 2 0 3 8 8 14 17 19 15 17 21]'mdl = fitglm(w,[总计],gydF4y2Ba...gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分布”gydF4y2Ba,gydF4y2Ba'二重子'gydF4y2Ba,gydF4y2Ba'关联'gydF4y2Ba,gydF4y2Ba分对数的gydF4y2Ba)gydF4y2Ba
MDL =通用线性回归模型:Logit(Y)〜1 + X1分布=二项式估计系数:估计SE TSTAT PVALUE(截距)-13.38 1.394 -9.5986 8.10192-22 x1 0.11212 0.0.00044258 9.4739E-21 3.4739E-21 3.4739E-21 3.4739E-21 3.4739E-21 12观察结果,10次错误自由度分散度:1 chi ^ 2统计与常数型号:242,p值= 1.3e-54gydF4y2Ba

看看模型与数据的吻合程度如何。gydF4y2Ba

plotslice(mdl)gydF4y2Ba

这个拟合看起来相当好,置信范围相当宽。gydF4y2Ba

要查看更多细节,请创建一个杠杆图。gydF4y2Ba

Plotdiagnostics(MDL)gydF4y2Ba

这是典型的由预测变量排序的回归。对于具有相对极端预测值的点(在任意方向上),每个拟合点的杠杆较高,对于具有平均预测值的点,杠杆较低。在有多个预测器的例子中,并且点不是按预测值排序的,这个图可以帮助您确定哪些观察值具有较高的杠杆作用,因为它们是由它们的预测值衡量的离群值。gydF4y2Ba

残差-训练数据的模型质量gydF4y2Ba

有几块剩余曲线可以帮助您发现模型或数据中的错误,异常值或相关性。最简单的剩余曲线是默认的直方图图,其显示了残差及其频率的范围,以及概率图,概率图显示了残差的分布方式与具有匹配方差的正态分布。gydF4y2Ba

该示例显示了适合泊松模型的残留图。数据建设有两个不影响响应的预测因子中有两个,而且没有截距术语:gydF4y2Ba

RNG(gydF4y2Ba'默认'gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaX = randn (100 5);mu = exp(X(:,[1 4 5])*[2;1;.5]);y = poissrnd(μ);mdl = fitglm (X, y,gydF4y2Ba...gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分布”gydF4y2Ba,gydF4y2Ba“泊松”gydF4y2Ba);gydF4y2Ba

检验残差:gydF4y2Ba

plotResiduals (mdl)gydF4y2Ba

大多数残差聚在0附近,有几个在±18附近。看看另一个残差图。gydF4y2Ba

plotResiduals (mdlgydF4y2Ba'适合'gydF4y2Ba)gydF4y2Ba

较大的残差似乎与拟合值的大小没有多大关系。gydF4y2Ba

也许概率剧情更具信息量。gydF4y2Ba

plotResiduals (mdlgydF4y2Ba“概率”gydF4y2Ba)gydF4y2Ba

现在很清楚了。残差不服从正态分布。相反,它们的尾巴更肥,很像潜在的泊松分布。gydF4y2Ba

了解预测效果和如何修改模型的图gydF4y2Ba

这个例子展示了如何理解每个预测器对回归模型的影响,以及如何修改模型以删除不必要的术语。gydF4y2Ba

  1. 从人工数据中的一些预测器中创建模型。数据不使用第二列和第三列gydF4y2BaXgydF4y2Ba.因此,您希望模型不会对这些预测器展示很大依赖。gydF4y2Ba

    RNG(gydF4y2Ba'默认'gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaX = randn (100 5);mu = exp(X(:,[1 4 5])*[2;1;.5]);y = poissrnd(μ);mdl = fitglm (X, y,gydF4y2Ba...gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分布”gydF4y2Ba,gydF4y2Ba“泊松”gydF4y2Ba);gydF4y2Ba
  2. 检查响应的切片图。这分别显示了每个预测器的效果。gydF4y2Ba

    plotslice(mdl)gydF4y2Ba

    第一个预测者的规模超过了情节。使用gydF4y2Ba预测因子gydF4y2Ba菜单。gydF4y2Ba

    现在很清楚,预测因子2和3几乎没有影响。gydF4y2Ba

    您可以拖动单个预测值,这些值由蓝色虚线表示。您还可以在同时置信范围和非同时置信范围之间进行选择,它们由红色虚线表示。拖动预测器线可以确认预测器2和3几乎没有影响。gydF4y2Ba

  3. 使用either删除不必要的预测器gydF4y2BaremoveTermsgydF4y2Ba要么gydF4y2Ba一步gydF4y2Ba.使用gydF4y2Ba一步gydF4y2Ba如果在移除另一个术语后,可以更加安全。但是,有时候gydF4y2BaremoveTermsgydF4y2Ba可以有效的时候gydF4y2Ba一步gydF4y2Ba没有继续。在这种情况下,两者提供了相同的结果。gydF4y2Ba

    mdl1 = removeTerms (mdl,gydF4y2Ba“x2 + x3”gydF4y2Ba)gydF4y2Ba
    mdl1 =广义线性回归模型:日志(y) ~ 1 + x1 + x4 + x5 =泊松分布估计系数:估计SE tStat pValue x1(拦截)0.17604 0.062215 2.8295 0.004662 0.98521 0.026393 37.328 5.6696 1.9122 0.024638 77.614 0 x4 e - 305 x5 0.61321 0.038435 15.955 2.6473 e-57 100观察,96错误自由度分散:1 Chi^2-statistic vs. constant model: 4.97e+04, p-value = 0gydF4y2Ba
    mdl1 =步骤(mdl,gydF4y2Ba“NSteps”gydF4y2Ba,5,gydF4y2Ba“上”gydF4y2Ba,gydF4y2Ba“线性”gydF4y2Ba)gydF4y2Ba
    1.删​​除X3,偏差= 93.856,p p = 0.97807 2.卸下X2,偏差= 96.333,CHI2STAT = 2.4769,PVALUE = 0.11553 MDL1 =广义线性回归模型:log(y)〜1 + x1 + x4 +X5 =分布泊松估计系数:估计SE TSTAT p值(截距)0.17604 0.062215 2.8295 0.004662 X1 1.9122 0.024638 77.614 0 X4 0.98521 0.026393 37.328 5.6696e-305 X5 0.61321 0.038435 15.955 2.6473e-57 100观察,96个错误自由度分散体:1CHI ^ 2统计与常量型号:4.97E + 04,p值= 0gydF4y2Ba

预测或模拟对新数据的响应gydF4y2Ba

有三种方法可以使用线性模型来预测对新数据的响应:gydF4y2Ba

预测gydF4y2Ba

的gydF4y2Ba预测gydF4y2Ba方法给出了平均响应的预测,如果需要,还提供了置信范围。gydF4y2Ba

这个例子展示了如何预测和获取预测的置信区间gydF4y2Ba预测gydF4y2Ba方法。gydF4y2Ba

  1. 从人工数据中的一些预测器中创建模型。数据不使用第二列和第三列gydF4y2BaXgydF4y2Ba.所以你期望这个模型不会显示出对这些预测因子的依赖。逐步构建模型,自动包括相关预测器。gydF4y2Ba

    RNG(gydF4y2Ba'默认'gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaX = randn (100 5);mu = exp(X(:,[1 4 5])*[2;1;.5]);y = poissrnd(μ);mdl = stepwiseglm (X, y,gydF4y2Ba...gydF4y2Ba“不变”gydF4y2Ba,gydF4y2Ba'上'gydF4y2Ba,gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分布”gydF4y2Ba,gydF4y2Ba“泊松”gydF4y2Ba);gydF4y2Ba
    1.添加x1,偏差= 2515.02869,pvalue = 0 2.添加x4,偏差= 328.39679,chi2stat = 2186.6319,pvalue = 0 3.添加x5,偏差= 96.3326,chi2stat = 232.0642,pvalue = 2.114384e-52.gydF4y2Ba
  2. 生成一些新数据,并评估数据的预测。gydF4y2Ba

    Xnew = randn(3,5) + repmat([1 2 3 4 5],[3,1]); / /重新定义gydF4y2Ba% 新数据gydF4y2Ba[Ynew,Ynewci] =预测(MDL,Xnew)gydF4y2Ba
    ynewci = 1.0e+04 * 0.0821 0.1555 1.2167 2.4811 2.8419 4.9407gydF4y2Ba

Feval.gydF4y2Ba

当您从表或数据集数组构造模型时,gydF4y2BaFeval.gydF4y2Ba通常比预测平均响应更方便gydF4y2Ba预测gydF4y2Ba.然而,gydF4y2BaFeval.gydF4y2Ba不提供信心范围。gydF4y2Ba

此示例显示如何使用该示例预测平均响应gydF4y2BaFeval.gydF4y2Ba方法。gydF4y2Ba

  1. 从人工数据中的一些预测器中创建模型。数据不使用第二列和第三列gydF4y2BaXgydF4y2Ba.所以你期望这个模型不会显示出对这些预测因子的依赖。逐步构建模型,自动包括相关预测器。gydF4y2Ba

    RNG(gydF4y2Ba'默认'gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaX = randn (100 5);mu = exp(X(:,[1 4 5])*[2;1;.5]);y = poissrnd(μ);x = array2table(x);gydF4y2Ba创建数据表gydF4y2Bay = Array2table(y);tbl = [x y];mdl = stepwiseglm(tbl,gydF4y2Ba...gydF4y2Ba“不变”gydF4y2Ba,gydF4y2Ba'上'gydF4y2Ba,gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分布”gydF4y2Ba,gydF4y2Ba“泊松”gydF4y2Ba);gydF4y2Ba
    1.添加x1,偏差= 2515.02869,pvalue = 0 2.添加x4,偏差= 328.39679,chi2stat = 2186.6319,pvalue = 0 3.添加x5,偏差= 96.3326,chi2stat = 232.0642,pvalue = 2.114384e-52.gydF4y2Ba
  2. 生成一些新数据,并评估数据的预测。gydF4y2Ba

    Xnew = randn(3,5) + repmat([1 2 3 4 5],[3,1]); / /重新定义gydF4y2Ba% 新数据gydF4y2BaYnew = Feval(MDL,Xnew(:,1),Xnew(:,4),Xnew(:,5))gydF4y2Ba%只需要预测因子1,4,5gydF4y2Ba
    Ynew = 1.0e + 04 * 0.1130 1.7375 3.7471gydF4y2Ba

    同等,gydF4y2Ba

    Ynew = Feval(MDL,Xnew(:,[1 4 5]))gydF4y2Ba%只需要预测因子1,4,5gydF4y2Ba
    Ynew = 1.0e + 04 * 0.1130 1.7375 3.7471gydF4y2Ba

随机gydF4y2Ba

的gydF4y2Ba随机gydF4y2Ba方法为指定的预测值值生成新的随机响应值。响应值的分布是模型中使用的分布。gydF4y2Ba随机gydF4y2Ba计算从预测器,估计系数和链接功能的分布的平均值。对于诸如正常的分布,该模型还提供了对响应方差的估计。对于二项式和泊松分布,响应的方差由平均值决定;gydF4y2Ba随机gydF4y2Ba不使用单独的“色散”估计。gydF4y2Ba

该示例演示如何使用gydF4y2Ba随机gydF4y2Ba方法。gydF4y2Ba

  1. 从人工数据中的一些预测器中创建模型。数据不使用第二列和第三列gydF4y2BaXgydF4y2Ba.所以你期望这个模型不会显示出对这些预测因子的依赖。逐步构建模型,自动包括相关预测器。gydF4y2Ba

    RNG(gydF4y2Ba'默认'gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaX = randn (100 5);mu = exp(X(:,[1 4 5])*[2;1;.5]);y = poissrnd(μ);mdl = stepwiseglm (X, y,gydF4y2Ba...gydF4y2Ba“不变”gydF4y2Ba,gydF4y2Ba'上'gydF4y2Ba,gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分布”gydF4y2Ba,gydF4y2Ba“泊松”gydF4y2Ba);gydF4y2Ba
    1.添加x1,偏差= 2515.02869,pvalue = 0 2.添加x4,偏差= 328.39679,chi2stat = 2186.6319,pvalue = 0 3.添加x5,偏差= 96.3326,chi2stat = 232.0642,pvalue = 2.114384e-52.gydF4y2Ba
  2. 生成一些新数据,并评估数据的预测。gydF4y2Ba

    Xnew = randn(3,5) + repmat([1 2 3 4 5],[3,1]); / /重新定义gydF4y2Ba% 新数据gydF4y2BaXnew ysim =随机(mdl)gydF4y2Ba
    Ysim = 1111 17121 37457gydF4y2Ba

    预测从gydF4y2Ba随机gydF4y2Ba是泊松样本,所以是整数。gydF4y2Ba

  3. 评估gydF4y2Ba随机gydF4y2Ba方法再次,结果变化。gydF4y2Ba

    Xnew ysim =随机(mdl)gydF4y2Ba
    Ysim = 1175 17320 37126gydF4y2Ba

共享拟合模型gydF4y2Ba

模型显示包含足够的信息,以使其他人能够以理论意义重新创建模型。例如,gydF4y2Ba

RNG(gydF4y2Ba'默认'gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaX = randn (100 5);mu = exp(X(:,[1 4 5])*[2;1;.5]);y = poissrnd(μ);mdl = stepwiseglm (X, y,gydF4y2Ba...gydF4y2Ba“不变”gydF4y2Ba,gydF4y2Ba'上'gydF4y2Ba,gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分布”gydF4y2Ba,gydF4y2Ba“泊松”gydF4y2Ba)gydF4y2Ba
1.添加x1,偏差= 2515.02869,pvalue = 0 2.添加x4,偏差= 328.39679,chi2stat = 2186.6319,pvalue = 0 3.添加x5,偏差= 96.3326,chi2stat = 232.0642,pvalue = 2.114384e-52.mdl = Generalized Linear regression model: log(y) ~ 1 + x1 + x4 + x5 Distribution = Poisson Estimated Coefficients: Estimate SE tStat pValue (Intercept) 0.17604 0.062215 2.8295 0.004662 x1 1.9122 0.024638 77.614 0 x4 0.98521 0.026393 37.328 5.6696e-305 x5 0.61321 0.038435 15.955 2.6473e-57 100 observations, 96 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 4.97e+04, p-value = 0

您也可以以编程方式访问模型描述。例如,gydF4y2Ba

mdl.Coefficients.EstimategydF4y2Ba
Ans = 0.1760 1.9122 0.9852 0.6132gydF4y2Ba
mdl.formula.gydF4y2Ba
ans = log(y)〜1 + x1 + x4 + x5gydF4y2Ba

参考gydF4y2Ba

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

[2] Dobson,A. J.gydF4y2Ba广义线性模型导论gydF4y2Ba.纽约:1990年Chapman&Hall。gydF4y2Ba

P. McCullagh和J. A. Nelder。gydF4y2Ba广义线性模型gydF4y2Ba.纽约:1990年Chapman&Hall。gydF4y2Ba

Neter, J., M. H. Kutner, C. J. Nachtsheim, W. Wasserman。gydF4y2Ba应用线性统计模型gydF4y2Ba,第四版。欧文,芝加哥,1996年。gydF4y2Ba