主要内容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(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 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 = dataset(gydF4y2Ba“XLSFile”gydF4y2Ba,gydF4y2Ba“hospital.xls”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“ReadObsNames”gydF4y2Ba,真正的);gydF4y2Ba

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

负载gydF4y2BacarsmallgydF4y2Bads = dataset(MPG,Weight);ds。Year = ordinal(Model_Year);gydF4y2Ba

输入和响应数据表gydF4y2Ba

使用工作空间变量创建一个表:gydF4y2Ba

负载gydF4y2BacarsmallgydF4y2Batbl = table(MPG,Weight);资源描述。Year = ordinal(Model_Year);gydF4y2Ba

数字矩阵为输入数据,数字矢量为响应gydF4y2Ba

例如,从工作空间变量创建数值数组:gydF4y2Ba

负载gydF4y2BacarsmallgydF4y2BaX =[重量马力气缸型号_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

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

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

“重对数”gydF4y2Ba

日志(日志(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

  • link函数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- Link功能gydF4y2Ba

    • 年代gydF4y2Ba.DerivativegydF4y2Ba-连杆函数的导数gydF4y2Ba

    • 年代gydF4y2Ba.InversegydF4y2Ba- link函数的倒数gydF4y2Ba

例如,拟合一个模型使用gydF4y2Ba“probit”gydF4y2Ba链接功能:gydF4y2Ba

X = [2100 2300 2500 2700 2900 .gydF4y2Ba...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(截距)-7.3628 0.66815 -11.02 3.0701e- 28x1 0.0023039 0.00021352 10.79 3.8274e-27 12个观测值,10个误差自由度离散度:1 Chi^2统计量vs常数模型:241,p值= 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 =广义线性回归模型:link(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个误差自由度离散度:1 Chi^2-统计量vs常数模型:241,p值= 2.25e-54gydF4y2Ba

这两个型号是一样的。gydF4y2Ba

同样地,你可以写gydF4y2Ba年代gydF4y2Ba作为一个结构体,而不是函数句柄的单元格数组:gydF4y2Ba

s.Link = @norminv;s.导数= @(x) 1./normpdf(norminv(x));s.Inverse = @normcdf;G = fitglm(x,[y n],gydF4y2Ba...gydF4y2Ba“线性”gydF4y2Ba,gydF4y2Ba“分配”gydF4y2Ba,gydF4y2Ba“二”gydF4y2Ba,gydF4y2Ba“链接”gydF4y2Ba,年代)gydF4y2Ba
g =广义线性回归模型:link(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个误差自由度离散度:1 Chi^2-统计量vs常数模型:241,p值= 2.25e-54gydF4y2Ba

选择拟合方法和模型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
“聚gydF4y2BaijkgydF4y2Ba'gydF4y2Ba 模型是一个所有项都到次的多项式gydF4y2Ba我gydF4y2Ba第一个预测因子是程度gydF4y2BajgydF4y2Ba在第二个预测器中,等等。使用数字gydF4y2Ba0gydF4y2Ba通过gydF4y2Ba9gydF4y2Ba.例如,gydF4y2Ba“poly2111”gydF4y2Ba有一个常数加上所有线性和乘积项,也包含预测因子1平方的项。gydF4y2Ba

计算矩阵gydF4y2Ba

A项矩阵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 0]gydF4y2Ba-常数项或截距gydF4y2Ba

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

  • [1 0 10 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三变量模型是否具有截距和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

创建一个适合的模型使用gydF4y2BafitglmgydF4y2Ba或gydF4y2BastepwiseglmgydF4y2Ba.在它们之间选择gydF4y2Ba选择拟合方法和模型gydF4y2Ba.对于非正态分布的广义线性模型,给出agydF4y2Ba分布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

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

rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba再现率%gydF4y2BaX = randn(100,5);mu = exp(X(:,[1 4 5])*[.4;.2;.3]);Y = poissrnd(mu);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.0082126 100个观测值,94个误差自由度离散度:1 Chi^2统计量vs常数模型: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

  • 显示包含卡方统计信息。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分对数的gydF4y2Ba.gydF4y2Ba

W = [2100 2300 2500 2700 2900 3100 .gydF4y2Ba...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(截距)-13.38 1.394 -9.5986 8.1019e-22 x1 0.0041812 0.00044258 9.4474 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

本例显示了拟合Poisson模型的残差图。数据结构有五个预测器中的两个不影响响应,并且没有拦截项:gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba再现率%gydF4y2BaX = randn(100,5);mu = exp(X(:,[1 4 5])*[2;1;.5]);Y = poissrnd(mu);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(mu);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. 使用任意一种方法删除不必要的预测符gydF4y2BaremoveTermsgydF4y2Ba或gydF4y2Ba一步gydF4y2Ba.使用gydF4y2Ba一步gydF4y2Ba这样会更安全,以防某个术语在删除另一个术语后变得异常重要。然而,有时gydF4y2BaremoveTermsgydF4y2Ba能在以下情况下有效gydF4y2Ba一步gydF4y2Ba不继续。在本例中,两者给出了相同的结果。gydF4y2Ba

    mdl1 = removeTerms(mdl,gydF4y2Ba'x2 + x3'gydF4y2Ba)gydF4y2Ba
    mdl1 =广义线性回归模型:log(y) ~ 1 + x1 + x4 + x5分布=泊松估计系数:估计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统计量vs常数模型: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 2。去除x2,偏差= 96.333,Chi2Stat = 2.4769, PValue = 0.11553 mdl1 =广义线性回归模型:log(y) ~ 1 + x1 + x4 + x5分布=泊松估计系数:估计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统计量vs常数模型: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(mu);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 = 03.添加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] = predict(mdl,Xnew)gydF4y2Ba
    ynewci = 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(mu);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, Deviance = 2515.02869, Chi2Stat = 47242.9622, PValue = 03.添加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 = 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(mu);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 = 03.添加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新数据%gydF4y2Baysim = random(mdl,Xnew)gydF4y2Ba
    Ysim = 1111 17121 37457gydF4y2Ba

    来自gydF4y2Ba随机gydF4y2Ba是泊松样本,整数也是。gydF4y2Ba

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

    ysim = random(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(mu);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 = 03.添加x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0加x5,偏差= 96.3326,Chi2Stat = 232.0642, PValue = 2.114384e-52 mdl =广义线性回归模型:log(y) ~ 1 + x1 + x4 + x5分布=泊松估计系数:估计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统计量vs常数模型: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]科莱特D。gydF4y2Ba二进制数据建模gydF4y2Ba.纽约:查普曼和霍尔,2002年。gydF4y2Ba

[2]多布森a.j.gydF4y2Ba广义线性模型导论gydF4y2Ba.纽约:查普曼和霍尔,1990年。gydF4y2Ba

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

[4]内特,J., M. H.库特纳,C. J.纳赫茨海姆和W.沃瑟曼。gydF4y2Ba应用线性统计模型gydF4y2Ba第四版。欧文,芝加哥,1996年。gydF4y2Ba