文档

随机

类:CompactGeneralizedLinearModel

模拟广义线性回归模型的响应

语法

ysim = random(mdl,Xnew)
ysim = random(mdl,Xnew,Name,Value)

描述

ysim=随机(mdlXnew对象的响应mdl广义线性模型的数据Xnew

ysim=随机(mdlXnew名称,值模拟具有一个或多个指定的附加选项的响应名称,值对参数。

输入参数

mdl

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

Xnew

这些点mdl预测的反应。

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

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

名称-值对参数

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

“BinomialSize”

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

默认值:1

“抵消”

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

link(ysim) = Offset + Xnew * b

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

输出参数

ysim

的模拟值向量Xnew

随机生成ysim使用随机值与拟合模型给出的均值,并使用分布mdl.中的值ysim是独立的,以预测因子为条件。对于二项式和泊松拟合,随机生成ysim使用指定的分布,没有对任何估计离散度进行调整。

例子

全部展开

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

为模型生成人工数据,泊松随机数和一个潜在的预测因子X

rng (“默认”%可再生的X = rand(20,1);mu = exp(1 + 2*X);Y = poissrnd(mu);

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

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

为预测创造点数。

Xnew = (0:.05:1)';

模拟在新点处的响应。

ysim = random(mdl,Xnew);

将模拟值与原始值一起绘制。

情节(X, y,“处方”Xnew ysim,“波”...Xnew Xnew函数宏指令(mdl),“g -”)传说(“数据”“模拟”“安装的意思”...“位置”“最佳”

训练一个广义线性模型,然后从一个函数生成代码,该函数从给定的新预测器数据的模型中抽取随机响应。

生成人工数据,具体为:

  • 而且

rng (“默认”%用于再现性X = 1 + randn(100,1)*0.5;Beta = -2;P = exp(1 + x*)/(1 + exp(1 + x*beta));%逆logitN = 10;Y = binornd(n,p,100,1);

建立二项数据的广义线性回归模型。指定二项样本量为10。

MDL = fitglm(x,y,'y ~ x1'“分布”“二”“BinomialSize”n);

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

saveCompactModel (mdl“GLMMdl”);

在当前文件夹中,定义名为myrandomGLM.m:

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

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

  • 模拟加载的GLM模型的响应

函数y = myrandomGLM(x,varargin)% # codegen使用GLM模型模拟响应% MYRANDOMGLM模拟n × 1矩阵中n个观测值的响应%向量x使用的GLM模型存储在mat文件GLMMdl。垫,%然后返回n × 1向量y中的模拟结果。CompactMdl = loadCompactModel(“GLMMdl”);narginchk(正);y = random(CompactMdl,x,varargin{:});结束

生成一个MEX函数myrandomGLM.m.指定样本内预测器数据X二项式参数是10n.因为C语言使用静态类型,codegen必须在编译时确定MATLAB®文件中所有变量的属性。要将参数指定为编译时常量,请使用编码器。常数

codegen配置:墨西哥人myrandomGLMarg游戏{x, coder.Constant(“BinomialSize”),coder.Constant (n)}

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

使用MEX函数模拟响应。

ysim = myrandomGLM_mex(x,“BinomialSize”n);

将模拟值与数据绘制在同一图中。

图;情节(x, y,“波”, x, ysim的r *);传奇(观察到的反应的“模拟反应”);包含(“x”);ylabel (“y”);

观察到的和模拟的反应似乎分布相似。

选择

对于没有随机噪声的预测,使用预测函数宏指令

扩展功能

在R2012a中引入

这个话题有用吗?