主要内容

随机

模拟反应广义线性回归模型的随机噪声

描述

例子

ysim=随机(mdl,Xnew)模拟反应的预测数据Xnew使用广义线性回归模型mdl,添加随机噪声。

例子

ysim=随机(mdl,Xnew,名称,值)使用一个或多个指定附加选项名称-值对参数。例如,您可以指定试验二项分布的数量或抵消值用于拟合。

例子

全部折叠

创建一个广义线性回归模型,并模拟其响应新数据的随机噪声。

使用泊松随机生成样本数据与一个潜在的预测数字X

rng (“默认”)%的再现性1 X =兰特(20日);μ= exp (1 + 2 * X);y = poissrnd(μ);

创建一个广义泊松数据的线性回归模型。

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

创建数据点的预测。

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

模拟反应与随机噪声数据点。

Xnew ysim =随机(mdl);

模拟值和原始值的阴谋。

情节(X, y,“处方”Xnew ysim,“波”Xnew、Xnew函数宏指令(mdl),“g -”)传说(“数据”,“模拟响应与噪音”,“预测响应”,“位置”,“最佳”)

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。一个或多个行显示的值只使用这些对象标记表示数据,模拟响应与噪音,预测反应。

适合一个广义线性回归模型,然后保存模型通过使用saveLearnerForCoder。定义一个入口点函数,通过使用加载模型loadLearnerForCoder并调用预测拟合的函数模型。然后使用codegen(MATLAB编码器)来生成C / c++代码。注意,生成C / c++代码需要MATLAB®编码器™。

这个例子简要解释了代码生成工作流的线性回归预测模型在命令行。更多细节,请参阅机器学习模型的代码生成预测在命令行。你还可以生成代码使用MATLAB编码器的应用。代码生成的预测使用MATLAB编码器应用机器学习模型

火车模型

生成样本数据的预测x和响应y用下面的分布:

  • x N ( 1 , 0 5 2 )

  • β 0 = 1 β = - - - - - - 2

  • y B n o 一个 l ( 1 0 , e x p ( 1 + x β ) 1 + e x p ( 1 + x β ) )

rng (“默认”)%的再现性x = 1 + randn (100 1) * 0.5;β= 2;p = exp (1 + x *β)。/ (1 + exp (1 + x *β));%逆分对数n = 10;y = binornd (n, p, 100, (1);

创建一个广义线性回归模型的二项数据。指定一个二项样本大小为10。

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

保存模型

将拟合广义线性回归模型保存到该文件GLMMdl.mat通过使用saveLearnerForCoder

saveLearnerForCoder (mdl“GLMMdl”);

定义入口点函数

在当前文件夹中,定义一个入口点函数命名myrandomGLM.m做以下几点:

  • 接受新输入和有效的名称-值对预测参数。

  • 加载拟合广义线性回归模型GLMMdl.mat通过使用loadLearnerForCoder

  • 模拟反应从漠视加载模型。

函数y = myrandomGLM (x,变长度输入宗量)% # codegen% MYRANDOMGLM模拟反应使用全球语言监测模型% MYRANDOMGLM模拟n n×1的观察反应%向量x使用的漠视,模型存储在MAT-file GLMMdl。垫,%然后返回n×1的模拟矢量y。CompactMdl = loadLearnerForCoder (“GLMMdl”);narginchk(正);y =随机(CompactMdl x,变长度输入宗量{:});结束

添加% # codegen编译器指令(或编译指示)的入口点函数函数签名后,表明您打算为MATLAB算法生成代码。添加这个指令指示MATLAB代码分析器来帮助您诊断和解决违规,将导致错误在代码生成。

生成代码

生成代码的入口点函数使用codegen(MATLAB编码器)。因为C和c++静态类型语言中,您必须确定所有变量的属性在编译时的入口点函数。指定数据类型和准确的输入数组的大小,通过MATLAB®表达式表示的值和特定的数据类型和数组的大小。使用coder.Constant(MATLAB编码器)名称-值对参数的名称。

指定的预测数据x和二项参数n

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

codegen生成墨西哥人的功能myrandomGLM_mex与平台相关的扩展。

如果观测的数量在编译时是未知的,您还可以指定输入所适应的使用coder.typeof(MATLAB编码器)。有关详细信息,请参见为代码生成指定适应可变参数指定入口点函数输入的属性(MATLAB编码器)

验证生成的代码

模拟反应使用墨西哥人功能。指定的预测数据x和二项参数n

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

画出模拟值和数据在同一个图。

图绘制(x, y,“波”,x, ysim的r *)传说(观察到的反应的,“模拟反应”)包含(“x”)ylabel (“y”)

图包含一个坐标轴对象。坐标轴对象包含x, y ylabel包含2线类型的对象。一个或多个行显示的值只使用这些对象标记代表观察到的响应,模拟响应。

观察和模拟的反应似乎同样分布。

输入参数

全部折叠

广义线性回归模型,指定为一个GeneralizedLinearModel对象创建使用fitglmstepwiseglm,或者一个CompactGeneralizedLinearModel对象创建使用紧凑的

新的预测输入值,指定为一个表,数据数组或矩阵。每一行的Xnew对应于一个观察,每一列对应一个变量。

  • 如果Xnew是一个数据集表或数组,它必须包含相同的预测,预测名字的PredictorNames的属性mdl

  • 如果Xnew是一个矩阵,它必须有相同数量的变量(列)在同一顺序的预测输入用于创建mdl。请注意,Xnew还必须包含任何不作为预测变量预测的拟合模型。此外,所有变量用于创建mdl必须是数值。治疗数值预测分类,识别预测使用“CategoricalVars”当您创建名称-值对的论点mdl

数据类型:||

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:ysim =随机(Mdl、Xnew BinomialSize, 50)返回成功的数字,摄动随机噪声,使用指定的数量的试验“BinomialSize”

二项分布的试验数量,指定为逗号分隔组成的“BinomialSize”和一个标量或矢量长度相同的反应。随机扩展了标量输入常数相同大小的数组作为回应。标量输入意味着所有具有相同数量的观测试验。

输出值的意义ysim取决于的价值“BinomialSize”

  • 如果“BinomialSize”是1(默认),然后输出中的每个值ysim是成功的概率。

  • 如果“BinomialSize”不是1,那么每个值在输出ysim成功的预测数量的试验。

数据类型:|

抵消价值为每一行Xnew,指定为逗号分隔两人组成的“抵消”和一个标量或矢量长度相同的反应。随机扩展了标量输入常数相同大小的数组作为回应。

注意,这个参数的默认值是0,即使你指定的向量“抵消”名称-值对参数拟合模型。如果您指定“抵消”拟合软件将抵消额外的预测系数值固定在1。换句话说,拟合的公式

f(μ)=抵消+X*b,

在哪里f是连接函数,μ是平均响应,X*b的线性组合预测吗X。的抵消预测了系数1

数据类型:|

输出参数

全部折叠

模拟响应值,返回一个数值向量。模拟值的预测响应值Xnew摄动通过随机噪声的分布拟合模型。中的值ysim是独立的,有条件的预测。二项和泊松,随机生成ysim与指定的分布和没有任何调整估计分散。

  • 如果“BinomialSize”是1(默认),然后输出中的每个值ysim是成功的概率。

  • 如果“BinomialSize”不是1,那么每个值在输出ysim成功的预测数量的试验。

选择功能

没有随机噪声进行预测时,使用预测函数宏指令

  • 预测接受一个输入参数包含所有预测变量,并给出置信区间预测。

  • 函数宏指令接受多个输入参数为每个预测变量与一个输入,这是简单的使用一个模型从一个表或数据集创建数组。的函数宏指令不支持名称-值对参数的函数金宝app“抵消”“BinomialSize”。函数使用0作为偏移量的值和输出值预测概率。

扩展功能

版本历史

介绍了R2012a