主要内容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,或表或数据集数组中的输入数据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其中6个是绝对的: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

    • 使用gydF4y2Ba响应遗传gydF4y2Ba的列的名称-值对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。年=序数(Model_Year);gydF4y2Ba

输入和响应数据表gydF4y2Ba

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

负载gydF4y2BacarsmallgydF4y2Ba台=表(MPG、重量);资源描述。年=序数(Model_Year);gydF4y2Ba

用于输入数据的数字矩阵,响应的数字矢量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到gydF4y2BangydF4y2Ba,在那里gydF4y2BangydF4y2Ba是一个固定的正值吗gydF4y2Ba “二”gydF4y2Ba

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

价值gydF4y2Ba 描述gydF4y2Ba
'comploglog'gydF4y2Ba

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

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

µgydF4y2Ba=gydF4y2BaXbgydF4y2Ba

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

日志(gydF4y2BaµgydF4y2Ba) =gydF4y2BaXbgydF4y2Ba

分对数的gydF4y2Ba,默认为发行版gydF4y2Ba“二”gydF4y2Ba

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

“重对数”gydF4y2Ba

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

'概率'gydF4y2Ba

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

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

µgydF4y2Ba-1gydF4y2Ba=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'概率'gydF4y2Ba.gydF4y2Ba

自定义链接功能gydF4y2Ba

链接功能定义了关系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'概率'gydF4y2Ba链接功能:gydF4y2Ba

x = [2100 2300 2500 2700 2900gydF4y2Ba......gydF4y2Ba3100 3300 3500 3700 3900 4100 4300]';n = [48 42 31 31 31 23 23 21 21 16 17 21]';Y = [1 2 0 3 8 8 14 17 19 15 17 21]';(x,[y n],gydF4y2Ba......gydF4y2Ba'线性'gydF4y2Ba,gydF4y2Ba“dist”gydF4y2Ba,gydF4y2Ba“二”gydF4y2Ba,gydF4y2Ba“链接”gydF4y2Ba,gydF4y2Ba'概率'gydF4y2Ba)gydF4y2Ba
g =广义线性回归模型:probit(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

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

  • 使用gydF4y2BaFitglm.gydF4y2Ba当你对你的广义线性模型有一个很好的想法,或者当你以后想要调整你的模型来包含或排除某些项。gydF4y2Ba

  • 使用gydF4y2Ba挺身油gydF4y2Ba当你想用逐步回归来拟合你的模型时。gydF4y2Ba挺身油gydF4y2Ba从一个模型开始,例如常量,并一次添加或减去术语,每次以贪婪的方式选择最佳术语,直到它不能进一步改善。使用逐步拟合来查找一个良好的模型,一个只有相关术语。gydF4y2Ba

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

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

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

短暂的型号名称gydF4y2Ba

姓名gydF4y2Ba 模型类型gydF4y2Ba
'持续的'gydF4y2Ba 模型仅包含一个常数(拦截)术语。gydF4y2Ba
'线性'gydF4y2Ba 模型包含每个预测器的截距和线性项。gydF4y2Ba
“互动”gydF4y2Ba 模型包含截距,线性术语和所有对不同预测器的所有产品(没有平方术语)。下载188bet金宝搏gydF4y2Ba
“purequadratic”gydF4y2Ba 模型包含截距,线性术语和平方术语。gydF4y2Ba
“二次”gydF4y2Ba 模型包含截距、线性项、交互和平方项。gydF4y2Ba
“聚gydF4y2BaijkgydF4y2Ba'gydF4y2Ba 模型是一种多项式,所有条款均可获得程度gydF4y2Ba我gydF4y2Ba第一个预测因子是程度gydF4y2BajgydF4y2Ba在第二个预测中,等等。使用数字gydF4y2Ba0gydF4y2Ba通过gydF4y2Ba9gydF4y2Ba.例如,gydF4y2Ba“poly2111”gydF4y2Ba有一个常数加上所有的线性和乘积项,也包含预测因子1的平方项。gydF4y2Ba

术语矩阵gydF4y2Ba

一个条件矩阵gydF4y2BaTgydF4y2Ba是A.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 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]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是带有截距和a的三变量模型吗gydF4y2Bax2 ^ 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

使用。创建一个合适的模型gydF4y2BaFitglm.gydF4y2Ba或gydF4y2Ba挺身油gydF4y2Ba.在它们之间选择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 + x5Estimate SE tStat pValue (Intercept) 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.0082126 100个观测值,94个误差自由度p-value = 1.55e-08gydF4y2Ba

注意:gydF4y2Ba

  • 显示中包含每个系数的估计值gydF4y2Ba估计gydF4y2Ba列。这些值与真实值相当接近gydF4y2Ba[0。4;0;0;2、3)gydF4y2Ba,除了可能的系数gydF4y2BaX3gydF4y2Ba不是很近gydF4y2Ba0gydF4y2Ba.gydF4y2Ba

  • 有一个标准错误列对于系数估计。gydF4y2Ba

  • 的报道gydF4y2Bapvalue.gydF4y2Ba派生自gydF4y2BatgydF4y2Ba在正态误差假设下的统计)的预测因子1、4和5是小的。这是用于创建响应数据的三个预测器gydF4y2BaygydF4y2Ba.gydF4y2Ba

  • 的gydF4y2Bapvalue.gydF4y2Ba为gydF4y2Ba(截距)gydF4y2Ba,gydF4y2BaX2gydF4y2Ba和gydF4y2BaX3gydF4y2Ba大于0.01。这三个预测因子没有用于创建响应数据gydF4y2BaygydF4y2Ba.的gydF4y2Bapvalue.gydF4y2Ba为gydF4y2BaX3gydF4y2Ba只是在gydF4y2Ba.05gydF4y2Ba,因此可能被认为是可能重要的。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]';Total = [48 42 31 34 31 21 23 23 21 16 17 21]';Poor = [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 (Intercept) -13.38 1.394 -9.5986 8.1019e-22 x1 0.0041812 0.00044258 9.4474 3.4739e-21 12个观测值,10个误差自由度散布:1 Chi^2-statistic vs. constant模型:242,p-value = 1.3e-54gydF4y2Ba

看看模型与数据的吻合程度如何。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

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删除不必要的预测器gydF4y2Baremoveterms.gydF4y2Ba或gydF4y2Ba步gydF4y2Ba.使用gydF4y2Ba步gydF4y2Ba可以更安全,以防有意外的重要性,一个术语变得明显后,删除另一个术语。然而,有时gydF4y2Baremoveterms.gydF4y2Ba当gydF4y2Ba步gydF4y2Ba不继续。在这种情况下,两者给出了相同的结果。gydF4y2Ba

    mdl1 = removeterms(mdl,gydF4y2Ba'x2 + x3'gydF4y2Ba)gydF4y2Ba
    MDL1 =广义线性回归模型:log(y)〜1 + x1 + x4 + x5分布=泊松估计系数:估计系数Pvalue(截距)0.17604 0.062215 2.8295 0.024662 x1 1.9122 0.0 x4 0.98521 0.026393 37.328 5.6696C-305 x50.61321 0.038435 15.955 2.6473E-57 100观察,96个误差自由色散:1 Chi ^ 2统计与常数型号:4.97e + 04,p值= 0gydF4y2Ba
    mdl1 =步骤(mdl,gydF4y2Ba“NSteps”gydF4y2Ba5,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估计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.647e -57 100个观测值,96个误差自由度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 = 0加上x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0加上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
    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 = 0加上x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0加上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 = 0加上x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0加上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%的新数据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, Deviance = 2515.02869, Chi2Stat = 47242.9622, PValue = 0加上x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0加x5, Deviance = 96.3326, Chi2Stat = 232.0642, PValue = 2.114384e-52 mdl =广义线性回归模型:log(y) ~ 1 + x1 + x4 + x5 Distribution = Poisson Estimated Coefficients:估计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.647e -57 100个观测值,96个误差自由度gydF4y2Ba

您也可以通过编程方式访问模型描述。例如,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

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

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