主要内容

glmval

广义线性模型值

语法

yhat = glmval (b, X,链接
[yhat, dylo dyhi] = glmval (b, X,链接统计数据)
[...] = glmval(…param1val1param2val2,……)

描述

yhat = glmval (b, X,链接计算带有链接函数的广义线性模型的预测值链接和预测X.不同的预测变量应该出现在不同的列Xb是系数估计值的向量吗glmfit函数。链接对象的值可以是任意字符向量、字符串标量或自定义链接函数“链接”的名称-值对参数glmfit函数。

请注意

默认情况下,glmval加上1的第一列X,对应于模型中的常数项。不直接进入一列的1X.可以修改的默认行为glmval使用“不变”参数。

[yhat, dylo dyhi] = glmval (b, X,链接统计数据)同时计算预测值的95%置信范围。当统计数据结构输出glmfit指定函数,dylodyhi也回来了。dylodyhi定义的置信下限yhat-dylo的上置信界yhat + dyhi.置信界限是非同步的,并且适用于拟合曲线,而不是新观测。

[...] = glmval(…param1val1param2val2,……)指定可选参数名称/值对来控制预测值。可接受的参数如下表所示:

参数 价值

“信心”—置信界限的置信级别

在0和1之间的标量

“大小”-二项模型的大小参数(N)

一个标量,或X的每一行都有一个值的向量

“抵消”-用作一个额外的预测变量,但系数值固定在1.0

一个向量

“不变”
  • “上”-模型中包含一个常数项。常数项的系数是第一个元素b

  • “关闭”-省略常数项

“同时”-计算同时置信区间(真正的),或计算非同时置信区间(默认值) 真正的

例子

全部折叠

拟合一个广义线性回归模型,并使用拟合模型计算预测数据的预测值(估值)。

创建一个示例数据集。

X = [2100 2300 2500 2700 2900 3100...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

拟合probit回归模型yx

B = glmfit(x,[y n]),“二”“链接”“probit”);

计算估计的成功次数。

yfit = glmval (b, x,“probit”“大小”n);

绘制观察到的成功率和估计的成功率对比x值。

情节(x, y / n,“o”, x, yfit. / n,“- - -”

图中包含一个轴对象。轴对象包含两个类型为line的对象。

输入样本数据。

X = [2100 2300 2500 2700 2900 3100...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];

每一个y值是在相应的试验中成功的次数n,x包含预测变量值。

定义三个由using创建的函数句柄,定义了连杆、连杆的导数和probit连杆函数的反连杆。将句柄存储在单元格数组中。

链接= @(mu) norminv(mu);Derlink = @(mu) 1 ./ normpdf(norminv(mu));inlink = @(resp) normcdf(resp);F = {link, derlink, invlink};

拟合广义线性模型yx通过使用您定义的链接函数。

B = glmfit(x,[y n]),“二”“链接”F);

计算估计的成功次数。将观察到的和估计的成功百分比与x值。

yfit = glmval (F b, x,,“大小”n);情节(x, y / n,“o”, x, yfit. / n,“- - -”“线宽”, 2)

图中包含一个轴对象。轴对象包含两个类型为line的对象。

训练一个广义线性模型,然后从一个函数生成代码,该函数根据模型对新的观测进行分类。这个例子是基于使用自定义链接函数的例子。

输入示例数据。

X = [2100 2300 2500 2700 2900 3100...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];

假设反标准pdf是一个合适的链接函数的问题。

定义一个名为myInvNorm.m接受$ X \β美元并返回标准标准cdf的倒数对应的值。

函数= myInvNorm(亩)% # codegen%myInvNorm用于代码生成的标准标准cdf的倒数% myInvNorm是一个GLM链接函数,它接受一个数字向量mu,和属性的对应值的数字向量标准正常cdf的倒数%。在= norminv(μ);结束

定义另一个名为myDInvNorm.m接受$ X \β美元并返回相应的链接函数的导数值。

函数喧嚣= myDInvNorm(亩)% # codegen代码的标准法线cdf的逆的导数%的一代% mydinnorm对应GLM链接函数的导数% myInvNorm。mydinnorm接受一个数字向量mu,并返回din,%,它是对应逆函数导数的数值向量%标准正常cdf。喧嚣= 1. / normpdf (norminv(μ));结束

定义另一个名为myInvInvNorm.m接受$ X \β美元并返回链接函数的逆函数对应的值。

函数含= myInvInvNorm(亩)% # codegen%myInvInvNorm用于代码生成的标准标准cdf% myInvInvNorm是GLM链接函数myInvNorm的逆函数。% myInvInvNorm接受一个数字向量mu,并返回iin,它是一个标准法线cdf对应值的数字向量。含= normcdf(μ);结束

创建指定每个链接函数的结构数组。具体来说,结构数组包含以下字段“链接”“衍生品”,“逆”.对应的值是函数的名称。

链接=结构(“链接”“myInvNorm”“衍生品”“myDInvNorm”...“逆”“myInvInvNorm”
link = struct with fields: link: 'myInvNorm' Derivative: 'myInvNorm' Inverse: 'myInvNorm'

适合一个GLMyx使用link函数链接.返回统计信息的结构数组。

[b,~,stats] = glmfit(x,[y n], x, y n)“二”“链接”,链接);

b是一个2乘1的回归系数向量。

在当前工作文件夹中,定义一个被调用的函数classifyGLM.m:

  • 接受与中对应的列的度量x,其维数对应的回归系数b,一个链接函数,GLM的结构统计,以及任何有效的glmval名称-值对的观点

  • 返回预测和置信区间误差

函数[yhat,嗨]= classifyGLM (b, x,链接,变长度输入宗量)% # codegen使用GLM模型对测量进行分类% CLASSIFYGLM对n × 1向量x中的n个观测值进行分类%具有回归系数b和link函数link,%,然后返回以yhat表示的预测值的n × 1向量。% CLASSIFYGLM还返回使用的预测的误差幅度% GLM统计结构stats中的附加信息。narginchk(3正);如果isstruct(varargin{1})) stats = varargin{1};[yhat,嗨]= glmval (b, x,链接,统计,变长度输入宗量{2:结束});其他的yhat = glmval (b, x,链接,变长度输入宗量{:});结束结束

生成一个MEX函数classifyGLM.m.因为C使用静态类型,codegen必须在编译时确定MATLAB®文件中所有变量的属性。要确保MEX函数可以使用相同的输入,请使用arg游戏参数按给定的顺序指定以下内容:

  • 回归系数b作为编译时常量

  • 样本的观察x

  • 链接函数作为编译时常量

  • 生成的GLM统计信息作为编译时常量

  • 的名字“信心”作为编译时常量

  • 置信水平0.9

要将参数指定为编译时常量,请使用编码器。常数

codegen配置:墨西哥人classifyGLMarg游戏{coder.Constant (b), x, coder.Constant(链接),coder.Constant(统计),coder.Constant(信心),0.9}
代码生成成功。

codegen生成MEX文件classifyGLM_mex.mexw64在当前文件夹中。文件扩展名取决于您的系统平台。

通过使用glmvalclassifyGLM_mex.的顺序指定名称-值对参数arg游戏参数codegen

[yhat1, melo1 mehi1] = glmval (b, x,链接,统计数据,“信心”, 0.9);[yhat2, melo2 mehi2] = classifyGLM_mex (b, x,链接,统计数据,“信心”, 0.9);= (yhat1 - yhat2)'*(yhat1 - yhat2);/ / / / / / / / / / / /= = (mehi1 - mehi2)'; / / (mehi1 - mehi2)< eps
Agree1 = logical 1 agree2 = logical 1 agree3 = logical 1

生成的MEX函数生成的预测与预测

参考文献

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

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

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

扩展功能

之前介绍过的R2006a