文档

预测

类:CompactGeneralizedLinearModel

预测广义线性回归模型的响应

语法

ypred = predict(mdl,Xnew)
[ypred,yci] = predict(mdl,Xnew)
[ypred,yci] = predict(mdl,Xnew,Name,Value)

描述

ypred=预测(mdlXnew对象的预测响应mdl对广义线性回归模型中的点进行了分析Xnew

ypred开办预测,预测mdlXnew返回真实平均响应的置信区间。

ypred开办预测,预测mdlXnew名称,值用一个或多个指定的附加选项预测响应名称,值对参数。

输入参数

mdl

广义线性模型,指定为全GeneralizedLinearModel使用fitglmstepwiseglm,或压缩CompactGeneralizedLinearModel使用紧凑的

Xnew

这些点mdl预测的反应。

  • 如果Xnew是表或数据集数组,它必须包含预测器名称在mdl

  • 如果Xnew是一个数字矩阵,它必须有相同数量的变量(列)作为用来创建mdl.此外,所有变量用于创建mdl必须是数字。

名称-值对参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在单引号内(' ').您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

“α”

正标量从01.置信水平开办100(1 - ?α) %。

默认值:0.05,即95%置信区间。

“BinomialSize”

二项式的值n训练数据中每一行的参数。BinomialSize向量的长度可以和Xnew,或应用于每一行的标量。默认值1生产ypred预测比例的值。使用BinomialSize只有在mdl适合于二项分布。

默认值:1

“抵消”

中的每一行的偏移量的值Xnew抵消向量的长度可以和Xnew,或应用于每一行的标量。偏移量作为一个附加的预测器,其系数值固定在1.也就是说,如果b拟合系数是向量,和链接是连杆函数,

link(ypred) =偏移量+ Xnew * b

默认值:0(大小(Xnew,1))

“同时”

逻辑值,指定是否同时适用于所有预测器值(真正的),或为每个单独的预测值().同时边界比单独边界宽,因为要求整个曲线在边界内比要求单个预测值处的曲线在边界内更严格。

详细信息请参见polyconf

默认值:

输出参数

ypred

的预测平均值的向量Xnew

开办

置信区间,两列矩阵,每行提供一个区间。置信区间的含义取决于名称-值对的设置。

例子

全部展开

创建一个广义线性模型,并预测其对新数据的响应。

使用带有两个基本预测因子的泊松随机数为模型生成人工数据X (1)X (2)

rng (“默认”%用于再现性Rndvars = randn(100,2);X = [2+rndvars(:,1),rndvars(:,2)];= exp(1 + X*[1;2]);Y = poissrnd(mu);

建立泊松数据的广义线性回归模型。

mdl = fitglm(X,y,'y ~ x1 + x2'“分配”“泊松”);

为预测创造点数。

[Xtest1 Xtest2] = meshgrid(-1:.5:3,-2:.5:2);Xnew = [Xtest1(:),Xtest2(:)];

预测新点的反应。

ypred = predict(mdl,Xnew);

绘制预测图。

冲浪(Xtest1 Xtest2,重塑(ypred 9 9))

在预测上创建置信区间。

[ypred yci] = predict(mdl,Xnew);

训练一个广义线性模型,然后从一个函数生成代码,该函数根据模型对新的观察结果进行分类。本例基于广义线性模型预测的例子。

生成人工数据。

rng (“默认”%用于再现性Rndvars = randn(100,2);X = [2+rndvars(:,1),rndvars(:,2)];= exp(1 + X*[1;2]);Y = poissrnd(mu);

建立泊松数据的广义线性回归模型。

mdl = fitglm(X,y,'y ~ x1 + x2'“分布”“泊松”);

为预测创造点数。

[Xtest1 Xtest2] = meshgrid(-1:.5:3,-2:.5:2);Xnew = [Xtest1(:),Xtest2(:)];

将拟合的广义线性模型保存到文件GLMMdl.mat

saveCompactModel (mdl“GLMMdl”);

在当前工作文件夹中定义一个名为mypredictGLM.m:

  • 中对应的列接受测量值Xnew和有效的名值对参数

  • 将拟合的广义线性模型加载GLMMdl.mat

  • 返回预测和置信区间边界

函数[yhat,ci] = mypredictGLM(x,varargin)% # codegen使用GLM模型预测响应% MYPREDICTGLM预测n × 1矩阵中n个观测值的响应使用GLM模型存储在mat文件GLMMdl.mat中,%,然后返回n × 1向量yhat中的预测结果。的置信区间边界%的预测在n × 2向量ci。CompactMdl = loadCompactModel(“GLMMdl”);narginchk(正);[yhat,ci] = predict(CompactMdl,x,varargin{:});结束

生成一个MEX函数mypredictGLM.m.指定在预测上返回90%的同时置信区间。因为C语言使用静态类型,codegen必须在编译时确定MATLAB®文件中所有变量的属性。要将参数指定为编译时常量,请使用编码器。常数

codegen配置:墨西哥人mypredictGLMarg游戏{Xnew, coder.Constant(α),0.1,coder.Constant(同步),真正的}

MEX文件mypredictGLM_mex.mexw64生成到当前工作目录。文件扩展名取决于您的平台。

比较预测预测mypredictGLM_mex.属性中指定名称-值对参数的顺序与arg游戏的调用中的参数codegen

[yhat1,ci1] = predict(mdl,Xnew,“α”, 0.1,“同时”,真正的);[yhat2,ci2] = mypredictGLM_mex(Xnew,“α”, 0.1,“同时”,真正的);Comp1 = (yhat1 - yhat2)'*(yhat1 - yhat2);Comp2 = diag((ci1 - ci2)'*(ci1 - ci2));agree2 = comp2 < eps
1 . Agree1 = logical 1 agree2 = 2x1 logical array 1

生成的MEX文件产生的结果与预测

提示

  • 对于添加噪声的预测,使用随机

  • 对于从数据集数组创建的模型,可以尝试使用更容易使用的语法函数宏指令

选择

函数宏指令给出相同的预测,但为每个预测器使用单独的输入数组,而不是一个包含所有预测器的输入数组。

随机加上噪音预测。

扩展功能

在R2012a中引入

这个话题有用吗?