广义线性模型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,或在表或数据集数组中输入数据gydF4y2Ba资源描述gydF4y2Ba并将响应数据作为一列gydF4y2Ba资源描述gydF4y2Ba.输入数据的每一行代表一个观察结果。每一列代表一个预测器(变量)。gydF4y2Ba

用于表或数据集数组gydF4y2Ba资源描述gydF4y2Ba的响应变量gydF4y2Ba“ResponseVar”gydF4y2Ba名称-值对:gydF4y2Ba

mdl = fitglm(资源描述,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 0]));gydF4y2Ba
  • 用于表或数据集数组gydF4y2Ba资源描述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用表或数据集建模gydF4y2Ba资源描述gydF4y2Ba:gydF4y2Ba

    • 使用gydF4y2BaResponseVargydF4y2Ba名称 - 值对以指定列gydF4y2Ba资源描述gydF4y2Ba这给出了每次观察的成功次数。gydF4y2Ba

    • 使用gydF4y2BaBinomialSizegydF4y2Ba名称 - 值对以指定列gydF4y2Ba资源描述gydF4y2Ba这给出了每个观察中的试验次数。gydF4y2Ba

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

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

ds =数据集(gydF4y2Ba“XLSFile”gydF4y2Ba,gydF4y2Ba'hospital.xls'gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“ReadObsNames”gydF4y2Ba,真正的);gydF4y2Ba

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

加载gydF4y2BacarsmallgydF4y2Bads =数据集(MPG、重量);ds。Year = ordinal(Model_Year);

输入和响应数据表gydF4y2Ba

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

加载gydF4y2BacarsmallgydF4y2Ba台=表(MPG、重量);资源描述。Year = ordinal(Model_Year);

数值矩阵用于输入数据,数值向量用于响应gydF4y2Ba

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

加载gydF4y2BacarsmallgydF4y2Bax = [重量马力圆柱体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到0的整数gydF4y2BangydF4y2Ba,在那里gydF4y2BangydF4y2Ba是一个固定的正值吗gydF4y2Ba “二”gydF4y2Ba

属性设置模型分布类型gydF4y2Ba分配gydF4y2Ba名称-值对。选择您的模型类型后,选择一个连接函数来映射之间的平均值gydF4y2BaµgydF4y2Ba线性预测器gydF4y2BaXbgydF4y2Ba.gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
“comploglog”gydF4y2Ba

日志(日志((1 -gydF4y2BaµgydF4y2Ba))) =gydF4y2BaXbgydF4y2Ba

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

µgydF4y2Ba=gydF4y2BaXbgydF4y2Ba

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

日志(gydF4y2BaµgydF4y2Ba) =gydF4y2BaXbgydF4y2Ba

'logit'gydF4y2Ba,默认为发行版gydF4y2Ba“二”gydF4y2Ba

日志(gydF4y2BaµgydF4y2Ba/ (1 -gydF4y2BaµgydF4y2Ba))=gydF4y2BaXbgydF4y2Ba

“重对数”gydF4y2Ba

log(-log(gydF4y2BaµgydF4y2Ba))=gydF4y2BaXbgydF4y2Ba

“probit”gydF4y2Ba

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

'互惠的'gydF4y2Ba,默认为发行版gydF4y2Ba“伽马”gydF4y2Ba

µgydF4y2Ba1gydF4y2Ba=gydF4y2BaXbgydF4y2Ba

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

µgydF4y2BapgydF4y2Ba=gydF4y2BaXbgydF4y2Ba

表单的单元格数组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“重对数”gydF4y2Ba,gydF4y2Ba“probit”gydF4y2Ba.gydF4y2Ba

自定义链接功能gydF4y2Ba

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

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

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

  • 逆功能gydF4y2BaFIgydF4y2Ba计算gydF4y2BaggydF4y2Ba(gydF4y2BaXbgydF4y2Ba) =gydF4y2BaµgydF4y2Ba.gydF4y2Ba

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

  • 表单的单元格数组gydF4y2Ba{FL FD FI}gydF4y2Ba,包含三个函数句柄,使用gydF4y2Ba@gydF4y2Ba,定义链接(gydF4y2BaflgydF4y2Ba),链接的导数(gydF4y2BaFDgydF4y2Ba),而反向链接(gydF4y2BaFIgydF4y2Ba).gydF4y2Ba

  • 结构gydF4y2Ba年代gydF4y2Ba有三个字段,每个字段包含一个函数句柄gydF4y2Ba@gydF4y2Ba:gydF4y2Ba

    • 年代gydF4y2BalinkgydF4y2Ba——链接功能gydF4y2Ba

    • 年代gydF4y2Ba.DerivativegydF4y2Ba-链路函数的导数gydF4y2Ba

    • 年代gydF4y2Ba.InversegydF4y2Ba—链路功能的逆函数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]';G = fitglm(x,[y n],gydF4y2Ba...gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分配”gydF4y2Ba,gydF4y2Ba“二”gydF4y2Ba,gydF4y2Ba“链接”gydF4y2Ba,gydF4y2Ba“probit”gydF4y2Ba)gydF4y2Ba
g =广义线性回归模型:probit(y) ~ 1 + x1分布=二项估计系数:估计SE tStat pValue (Intercept) -7.3628 0.66815 -11.02 3.0701e-28 x1 0.0023039 0.00021352 10.79 3.8274e-27 12个观测值,10个误差自由度离散度:1 Chi^2-statistic vs. constant model: 241, p-value = 2.25e-54gydF4y2Ba

属性执行相同的自定义链接函数可以执行相同的匹配gydF4y2Ba“probit”gydF4y2Ba链接功能:gydF4y2Ba

s = {@norminv, @ (x) 1. / normpdf (norminv (x)), @normcdf};G = fitglm(x,[y n],gydF4y2Ba...gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分配”gydF4y2Ba,gydF4y2Ba“二”gydF4y2Ba,gydF4y2Ba“链接”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

等效,你可以写gydF4y2Ba年代gydF4y2Ba作为函数句柄的结构而不是单元格数组:gydF4y2Ba

s.Link = @norminv;@(x) 1./normpdf(norminv(x));s.Inverse = @normcdf;G = fitglm(x,[y n],gydF4y2Ba...gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分配”gydF4y2Ba,gydF4y2Ba“二”gydF4y2Ba,gydF4y2Ba“链接”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

有两种方法可以创建合适的模型。gydF4y2Ba

  • 用gydF4y2BafitglmgydF4y2Ba当你对你的广义线性模型有一个好的想法时,或者当你想要调整你的模型以包括或排除某些术语时。gydF4y2Ba

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

    结果取决于启动模型。通常,从恒定模型开始导致小型模型。从更多术语开始,可以导致更复杂的模型,但具有较低的平均误差的一个。gydF4y2Ba

在任何一种情况下,提供一个模型拟合函数(这是启动模型gydF4y2BastepwiseglmgydF4y2Ba).gydF4y2Ba

使用其中一种方法指定模型。gydF4y2Ba

短暂的型号名称gydF4y2Ba

的名字gydF4y2Ba 模型类型gydF4y2Ba
“不变”gydF4y2Ba 模型只包含一个常数(截距)项。gydF4y2Ba
“线性”gydF4y2Ba 模型包含每个预测器的截距和线性术语。gydF4y2Ba
“互动”gydF4y2Ba 模型包含截距、线性项和不同预测因子对的所有乘积(没有平方项)。s manbetx 845gydF4y2Ba
“purequadratic”gydF4y2Ba 模型包含截距、线性项和平方项。gydF4y2Ba
“二次”gydF4y2Ba 模型包含截距、线性项、相互作用和平方项。gydF4y2Ba
“聚gydF4y2BaijkgydF4y2Ba'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

例如,假设一个输入包含三个预测变量gydF4y2Ba一个gydF4y2Ba,gydF4y2BaBgydF4y2Ba,gydF4y2BaCgydF4y2Ba而响应变量gydF4y2BaYgydF4y2Ba的顺序gydF4y2Ba一个gydF4y2Ba,gydF4y2BaBgydF4y2Ba,gydF4y2BaCgydF4y2Ba,gydF4y2BaYgydF4y2Ba.每一排gydF4y2BaTgydF4y2Ba代表一个术语:gydF4y2Ba

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

  • [0 1 0 0]gydF4y2Ba- - - - - -gydF4y2BaBgydF4y2Ba;同等,gydF4y2Baa ^ 0 * b ^ 1 * c ^ 0gydF4y2Ba

  • [1 0 1 0]gydF4y2Ba- - - - - -gydF4y2BaA * C.gydF4y2Ba

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

  • [0 1 2 0]gydF4y2Ba- - - - - -gydF4y2BaB * (C ^ 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 ~ a + b + c 'gydF4y2Ba是一个三变线性模型,带有截距。gydF4y2Ba
' y ~ a + b + c - 1'gydF4y2Ba是无截距的三变量线性模型。gydF4y2Ba
' y ~ a + b + c + b ^2'gydF4y2Ba带有截距和agydF4y2BaB ^ 2gydF4y2Ba术语。gydF4y2Ba
' y ~ a + b ^2 + c 'gydF4y2Ba和前面的例子一样,因为gydF4y2BaB ^ 2gydF4y2Ba包括一个gydF4y2BaBgydF4y2Ba术语。gydF4y2Ba
y ~ a + b + c + a: b 'gydF4y2Ba包括一个gydF4y2BaA * B.gydF4y2Ba术语。gydF4y2Ba
' y ~ a * b + c 'gydF4y2Ba和前面的例子一样,因为gydF4y2BaA* b = A + b + A: bgydF4y2Ba.gydF4y2Ba
'Y〜a * b * c - a:b:c'gydF4y2Ba有所有的互动gydF4y2Ba一个gydF4y2Ba,gydF4y2BaBgydF4y2Ba,gydF4y2BaCgydF4y2Ba,除了三方互动。gydF4y2Ba
' y ~ a *(b + c + d)'gydF4y2Ba所有的线性项,加上乘积s manbetx 845gydF4y2Ba一个gydF4y2Ba和其他变量。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

例如,将Poisson模型适用于由5个预测器中的两个不影响响应的两个预测器构建的数据,并且没有截距术语:gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaX = randn (100 5);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.10793 0.36901 0.71212 x1 0.38551 0.076116 5.0647 4.0895e-07 x2 -0.034905 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.008126 100个观测值,94个误差自由度离散度:1 Chi^2统计量与常数模型:44.9, p值= 1.55e-08gydF4y2Ba

请注意: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

  • 显示屏包含Chi-Square统计信息。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.在逻辑模型中,这种分布可以用带有链接函数log的广义线性模型来解释(gydF4y2BaµgydF4y2Ba/ (1 -gydF4y2BaµgydF4y2Ba))=gydF4y2BaXgydF4y2BabgydF4y2Ba.调用此链接函数gydF4y2Ba'logit'gydF4y2Ba.gydF4y2Ba

w = [2100 2300 2500 2700 2900 3100gydF4y2Ba...gydF4y2Ba3300 3500 3700 3900 4100 4300]';Total = [48 42 31 34 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'logit'gydF4y2Ba)gydF4y2Ba
mdl =广义线性回归模型:logit(y) ~ 1 + x1分布=二项估计系数:估计SE tStat pValue (Intercept) -13.38 1.394 -9.5986 8.1019e-22 x1 0.0041812 0.00044258 9.4474 3.4739e-21gydF4y2Ba

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

plotSlice (mdl)gydF4y2Ba

适合看起来相当好,具有相当多的置信度。gydF4y2Ba

为了进一步研究细节,创建一个杠杆情节。gydF4y2Ba

plotDiagnostics (mdl)gydF4y2Ba

这是与预测器变量排序的点的典型回归。对于具有相对极端的预测值值(任一方向)的点,施用上的每个点的杠杆率较高,并且对于具有平均预测值值的点低。在具有多个预测器的示例中,并且具有预测值值未订购的点,此曲线可以帮助您确定哪些观察具有高杠杆率,因为它们是通过其预测值值测量的异常值。gydF4y2Ba

残差 - 培训数据模型质量gydF4y2Ba

有几个残差图可以帮助您发现模型或数据中的错误、异常值或相关性。最简单的残差图是默认的直方图,它显示了残差的范围及其频率,以及概率图,它显示了残差的分布如何与方差匹配的正态分布相比较。gydF4y2Ba

本例显示了拟合泊松模型的残差图。5个预测因子中有2个不影响响应,且没有截距项: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

plotresids(MDL)gydF4y2Ba

虽然大多数残差聚在0附近,但也有几个残差聚在±18附近。所以检查一个不同的残差图。gydF4y2Ba

plotresids(MDL,gydF4y2Ba“安装”gydF4y2Ba)gydF4y2Ba

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

也许概率图能提供更多信息。gydF4y2Ba

plotresids(MDL,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 = 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. 删除不必要的预测器使用eithergydF4y2BaremoveTermsgydF4y2Ba或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统计与常数模型:4.97e+04, p值= 0gydF4y2Ba
    mdl1 =步骤(mdl,gydF4y2Ba“NSteps”gydF4y2Ba,5,gydF4y2Ba“上”gydF4y2Ba,gydF4y2Ba“线性”gydF4y2Ba)gydF4y2Ba
    1.移除x3, Deviance = 93.856, Chi2Stat = 0.00075551, PValue = 0.97807去掉x2, Deviance = 96.333, Chi2Stat = 2.4769, PValue = 0.11553 mdl1 =广义线性回归模型:log(y) ~ 1 + x1 + x4 + x5分布= Poisson估计系数估计SE tStat pValue(截距)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个误差自由度离散度:1 Chi^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, Deviance = 2515.02869, Chi2Stat = 47242.9622, PValue = 02。加x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0 3。添加x5, Deviance = 96.3326, Chi2Stat = 232.0642, PValue = 2.114384e-52gydF4y2Ba
  2. 生成一些新的数据,并根据数据评估预测。gydF4y2Ba

    Xnew = randn(3,5) + repmat([1 2 3 4 5],[3,1]);gydF4y2Ba%的新数据gydF4y2Ba[ynew, ynewci] =预测(mdl Xnew)gydF4y2Ba
    Ynew = 1.0e + 04 * 0.1130 1.7375 3.7471 Ynewci = 1.0e + 04 * 0.0821 0.1555 1.2167 2.4811 2.8419 4.9407gydF4y2Ba

函数宏指令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(μ);X = array2table (X);gydF4y2Ba%创建数据表gydF4y2Bay = array2table (y);tbl = [X y];mdl = stepwiseglm(资源描述,gydF4y2Ba...gydF4y2Ba“不变”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba,gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分布”gydF4y2Ba,gydF4y2Ba“泊松”gydF4y2Ba);gydF4y2Ba
    1.添加x1, Deviance = 2515.02869, Chi2Stat = 47242.9622, PValue = 02。加x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0 3。添加x5, Deviance = 96.3326, Chi2Stat = 232.0642, PValue = 2.114384e-52gydF4y2Ba
  2. 生成一些新的数据,并根据数据评估预测。gydF4y2Ba

    Xnew = randn(3,5) + repmat([1 2 3 4 5],[3,1]);gydF4y2Ba%的新数据gydF4y2Baynew =函数宏指令(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, Deviance = 2515.02869, Chi2Stat = 47242.9622, PValue = 02。加x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0 3。添加x5, Deviance = 96.3326, Chi2Stat = 232.0642, PValue = 2.114384e-52gydF4y2Ba
  2. 生成一些新的数据,并根据数据评估预测。gydF4y2Ba

    Xnew = randn(3,5) + repmat([1 2 3 4 5],[3,1]);gydF4y2Ba%的新数据gydF4y2Baysim =随机(mdl,xnew)gydF4y2Ba
    Ysim = 1111 17121 37457gydF4y2Ba

    的预测gydF4y2Ba随机的gydF4y2Ba都是泊松样本,整数也是。gydF4y2Ba

  3. 评估gydF4y2Ba随机的gydF4y2Ba方法,结果改变。gydF4y2Ba

    ysim =随机(mdl,xnew)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, Deviance = 2515.02869, Chi2Stat = 47242.9622, PValue = 02。加x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0 3。加x5, Deviance = 96.3326, Chi2Stat = 232.0642, PValue = 2.114384e-52 mdl =广义线性回归模型:log(y) ~ 1 + x1 + x4 + x5分布= Poisson估计系数:估计SE tStat pValue(截距)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个误差自由度离散度:1 Chi^2统计量与常数模型:4.97e+04, p值= 0gydF4y2Ba

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

mdl.Coefficients.EstimategydF4y2Ba
Ans = 0.1760 1.9122 0.9852 0.6132gydF4y2Ba
mdl。公式gydF4y2Ba
Ans = log(y) ~ 1 + x1 + x4 + x5gydF4y2Ba

参考文献gydF4y2Ba

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

多布森;gydF4y2Ba广义线性模型的介绍gydF4y2Ba.纽约:查普曼和霍尔,1990。gydF4y2Ba

[3] McCullagh,P.和J.A. Nelder。gydF4y2Ba广义线性模型gydF4y2Ba.纽约:查普曼和霍尔,1990。gydF4y2Ba

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