主要内容

glmval.

广义线性模型值

句法

yhat = glmval(b,x,链接的)
[yhat, dylo dyhi] = glmval (b, X,链接,统计数据)
[...] = glmval(...,param1Val1.PARAM2.Val2.,......)

描述

yhat = glmval(b,x,链接的)使用链接功能计算通用线性模型的预测值链接和预测者X.不同的预测变量应该出现在不同的列XB.是系数估计值的向量吗glmfit.功能。链接对象的值可以是任意字符向量、字符串标量或自定义链接函数'关联'的名称-值对参数glmfit.功能。

笔记

默认情况下,glmval.添加第一列1s到X,对应于模型中的常数术语。请勿直接输入1s列X.您可以更改默认行为glmval.使用'持续的'范围。

[yhat, dylo dyhi] = glmval (b, X,链接,统计数据)还计算预测值的95%的置信度界限。当。。。的时候统计结构输出glmfit.功能指定,迪尔奥dyhi.也返回。迪尔奥dyhi.定义较低的置信度yhat-dylo,和上部置信度yhat + dyhi.置信界限是非同步的,并且适用于拟合曲线,而不是新观测。

[...] = glmval(...,param1Val1.PARAM2.Val2.,......)指定可选的参数名称/值对以控制预测值。本表中列出了可接受的参数:

范围 价值

'信心'- 信心界限的置信水平

0到1之间的标量

'尺寸'-二项模型的大小参数(N)

标量或每行x的一个值的矢量

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

矢量

'持续的'
  • '在'- 包括模型中的常数术语。恒定项的系数是第一个元素B.

  • “关闭”-省略常数项

'同时'-计算同时置信区间(真的)或计算非同时置信区间(默认错误的的) 真的或者错误的

例子

全部收缩

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

创建示例数据集。

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

适合概率回归模型yX

b = glmfit(x,[y n],'二重子''关联''概率');

计算估计的成功次数。

Yfit = glmval(b,x,'概率''尺寸'n);

绘制观察到的成功百分比和估计的成功百分比与X价值观。

绘图(x,y。/ n,“o”, x, yfit. / n,' - '的)

图包含轴对象。轴对象包含2个类型的物体。

输入示例数据。

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

每个y价值是相应数量的试验中的成功次数N., 和X包含预测变量值。

定义使用使用创建的三个功能句柄@,定义链接,链路的导数,以及探测链路功能的逆链路。将手柄存放在单元格阵列中。

链接= @(mu)ranginv(mu);derlink = @(mu)1 ./ normpdf(ordinv(mu));Invlink = @(resp)normcdf(RESP);f = {link,derlink,Invlink};

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

b = glmfit(x,[y n],'二重子''关联',F);

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

YFIT = GLMVAL(B,X,F,'尺寸'n);情节(x, y / n,“o”, x, yfit. / n,' - ''行宽',2)

图包含轴对象。轴对象包含2个类型的物体。

培训广义线性模型,然后从分类基于模型的新观察的函数中生成代码。这个例子是基于使用自定义定义的链接功能的例子。

输入示例数据。

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

假设逆正常PDF是问题的适当链接功能。

定义名为的函数myinvnorm.m.接受价值观$ x \ beta $并返回标准普通CDF的倒数的相应值。

功能在= myinvnorm(mu)%#codegen.%myInvNorm用于代码生成的标准标准cdf的倒数%myinvnorm是一个glm链接函数,接受数字矢量mu,以及%返回,这是一个数字矢量的数值矢量标准正常CDF的%逆。在= norminv(μ);结尾

定义另一个名为的函数mydinvnorm.m.接受价值观$ x \ beta $并返回链路函数的导数的相应值。

功能喧嚣= myDInvNorm(亩)%#codegen.用于代码的标准正常CDF的倒数%mydinvnorm衍生物%一代%mydinvnorm对应于GLM链路函数的导数%myinvnorm。mydinvnorm接受数字矢量mu,并返回din,%是逆的相应衍生物的数字矢量标准正常CDF的百分比。din = 1./normpdf(norminv(mu));结尾

定义另一个名为的函数myinvinvnorm.m.m.接受价值观$ x \ beta $并返回链路函数的倒数的相应值。

功能iin = myinvinvnorm(mu)%#codegen.代码生成%myinvinvnorm标准正常CDF%myinvinvnorm是GLM链接功能myinvnorm的倒数。%myinvinvnorm接受数字矢量mu,返回iin,这是一个标准正常CDF的相应值的%数值矢量。iin = normcdf(mu);结尾

创建一个结构阵列,指定每个链接功能。具体来说,结构阵列包含命名的字段'关联''衍生物', 和“逆”.相应的值是函数的名称。

link = struct('关联''myinvnorm''衍生物''mydinvnorm'......“逆”'myinvinvnorm'的)
link = struct with fields: link: 'myInvNorm' Derivative: 'myInvNorm' Inverse: 'myInvNorm'

适合yX使用链接功能链接.返回统计信息的结构数组。

[b,〜,stats] = glmfit(x,[y n],'二重子''关联',关联);

B.是一个2×1回归系数矢量矢量。

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

  • 接受与对应的列的测量值X,尺寸对应的回归系数B.,一个链接函数,GLM的结构统计,以及任何有效的glmval.名称值对参数

  • 返回错误的预测和置信区间边缘

功能[Yhat,Lo,Hi] = classifyglm(b,x,链接,varargin)%#codegen.使用GLM模型对测量进行分类%classifyglm使用n×1 vector x中的n观察%GLM模型与回归系数B和链接函数链接,%,然后返回YHAT中预测值的n×1向量矢量。%classifyglm还返回使用预测的错误边缘GLM统计结构统计中的%附加信息。Narginchk(3,INF);如果isstruct(varargin{1})) stats = varargin{1};[yhat,嗨]= glmval (b, x,链接,统计,变长度输入宗量{2:结束});别的yhat = glmval (b, x,链接,变长度输入宗量{:});结尾结尾

生成MEX功能classifyGLM.m.因为C使用静态打字,所以Codegen.必须在编译时确定Matlab®文件中所有变量的属性。要确保MEX功能可以使用相同的输入,请使用- args.指定以下命令的参数:

  • 回归系数B.作为编译时间常数

  • 样本观察X

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

  • 导致GLM统计数据作为编译时间常数

  • 姓名“信心”作为编译时间常数

  • 置信水平0.9

将参数指定为编译时常量,使用编码器.Constant.

Codegen.-config:mex.classifyglm.-  args.{编码器.Constant(b),x,coder.constant(链接),coder.constant(stats),coder.constant('信心'),0.9}
代码成功。

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

通过使用glmval.classifyglm_mex..以与如此相同的顺序指定名称值对参数- args.呼吁中的论点Codegen.

[yhat1, melo1 mehi1] = glmval (b, x,链接,统计数据,“信心”,0.9);[Yhat2,Melo2,Mehi2] = ClassifyGLM_MEX(B,X,Link,STATS,“信心”,0.9);Comp1 =(Yhat1  -  Yhat2)'*(Yhat1  -  Yhat2);同意1 = Comp1 
                    
同意1 =逻辑1同意2 =逻辑1 adder3 =逻辑1

生成的MEX函数产生与此相同的预测预测

参考文献

[1] Dobson,A. J.广义线性模型的介绍.纽约:查普曼与霍尔出版社,1990。

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

[3] Collett,D。建模二进制数据.纽约:Chapman&Hall,2002。

扩展能力

在R2006A之前介绍