文档帮助中心文档
广义线性回归模型的随机噪声响应模拟
Xnew ysim =随机(mdl)
ysim =随机(mdl Xnew、名称、值)
例子
ysim=随机(mdl,Xnew)模拟对中预测器数据的响应Xnew采用广义线性回归模型mdl,添加随机噪声。
ysim=随机(mdl,Xnew)
ysim
mdl
Xnew
ysim=随机(mdl,Xnew,名称,值)使用一个或多个名称-值对参数指定其他选项。例如,您可以指定二项分布的试验次数或用于拟合的偏移值。
ysim=随机(mdl,Xnew,名称,值)
名称,值
全部折叠
建立广义线性回归模型,模拟随机噪声对新数据的响应。
使用泊松随机数和一个基本预测值生成样本数据X.
X
rng(“默认”)%为了再现性X=兰特(20,1);mu=exp(1+2*X);y=泊松比(μ);
建立Poisson数据的广义线性回归模型。
mdl = fitglm (X, y,“y ~ x1”,“分布”,“泊松”);
为预测创建数据点。
Xnew = (0: .05:1) ';
在数据点模拟随机噪声的响应。
Xnew ysim =随机(mdl);
绘制模拟值和原始值。
情节(X, y,“处方”Xnew ysim,“波”Xnew、Xnew函数宏指令(mdl),“g -”)传说(“数据”,“噪声模拟响应”,“预测响应”,...“位置”,“最佳”)
此示例使用:
拟合一个广义线性回归模型,然后使用保存模型saveLearnerForCoder.定义一个入口点函数,通过使用loadLearnerForCoder打电话给预测拟合模型的函数。然后使用codegen(MATLAB编码器)生成C/C++代码。请注意,生成C/C++代码需要MATLAB®编码器™.
saveLearnerForCoder
loadLearnerForCoder
预测
codegen
此示例简要说明了用于在命令行中预测线性回归模型的代码生成工作流。有关更多详细信息,请参阅机器学习模型在命令行预测的代码生成.您也可以使用MATLAB Coder应用程序生成代码基于MATLAB编码器的机器学习模型预测代码生成.
火车模型
生成预测器的样本数据x和响应y使用以下发行版:
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*beta)/(1 + exp(1 + x*beta));%逆分对数n = 10;y = binornd (n, p, 100, (1);
建立二项数据的广义线性回归模型。指定二项样本容量为10。
mdl = fitglm (x, y,“y ~ x1”,“分布”,“二”,“BinomialSize”n);
保存模型
将拟合的广义线性回归模型保存到文件中GLMMdl.mat通过使用saveLearnerForCoder.
GLMMdl.mat
saveLearnerForCoder(mdl,“GLMMdl”);
定义入口点函数
在当前文件夹中,定义一个名为myrandomGLM.m它的作用如下:
myrandomGLM.m
接受新的预测器输入和有效的名称-值对参数。
加载拟合的广义线性回归模型GLMMdl.mat通过使用loadLearnerForCoder.
模拟加载的GLM模型的响应。
函数y = myrandomGLM (x,变长度输入宗量)% # codegen%MYRANDOMGLM使用GLM模型模拟响应% MYRANDOMGLM模拟n × 1的n个观察的响应%使用存储在MAT文件GLMMdl.MAT中的GLM模型的向量x,以及%然后返回n×1向量y中的模拟。CompactMdl = loadLearnerForCoder (“GLMMdl”);narginchk(正);x, y =随机(CompactMdl变长度输入宗量{:});结束
添加% # codegen编译器指令(或pragma)指向函数签名后的入口点函数,以指示您打算为MATLAB算法生成代码。添加此指令将指示MATLAB代码分析器帮助您诊断和修复在代码生成过程中可能导致错误的冲突。
% # codegen
生成代码
使用为入口点函数生成代码codegen(MATLAB编码器).因为C和c++都是静态类型语言,所以必须在编译时确定入口点函数中所有变量的属性。要指定数据类型和准确的输入数组大小,请传递一个MATLAB®表达式,该表达式表示具有特定数据类型和数组大小的值集。使用编码器。常数(MATLAB编码器)用于名称-值对参数的名称。
编码器。常数
指定预测器数据x和二项参数n.
n
codegen配置:墨西哥人myrandomGLMarg游戏{x, coder.Constant(“BinomialSize”),coder.Constant (n)}
代码生成成功。
codegen生成MEX函数myrandomGLM_mex具有依赖于平台的扩展。
myrandomGLM_mex
如果在编译时观察值的数量未知,还可以使用coder.typeof(MATLAB编码器)。有关详情,请参阅为代码生成指定可变大小参数和指定入口点函数输入的属性(MATLAB编码器).
coder.typeof
验证生成的代码
使用MEX函数模拟响应。指定预测数据x和二项参数n.
ysim=myrandomglmex(x,“BinomialSize”n);
将模拟值与数据绘制在同一张图中。
图绘制(x, y,“波”, x, ysim“r*”)传说(“观察到的反应”,“模拟反应”)包含(“x”) ylabel (“y”)
观察到的和模拟的响应似乎具有相似的分布。
GeneralizedLinearModel
紧致广义线性模型
广义线性回归模型,指定为GeneralizedLinearModel对象创建使用fitglm或stepwiseglm,或者一个紧致广义线性模型对象创建使用契约.
fitglm
stepwiseglm
契约
新的预测器输入值,指定为表、数据集数组或矩阵。每行Xnew对应一个观察值,每列对应一个变量。
如果Xnew是表还是数据集数组,它必须包含与预测器名称的属性mdl.
预测器名称
如果Xnew是一个矩阵,它必须具有与用于创建的预测输入相同顺序的相同数量的变量(列)mdl.注意Xnew还必须包含在拟合模型中未用作预测因子的任何预测因子变量。此外,创建时使用的所有变量mdl必须是数值。要将数值预测器视为分类预测器,请使用“卡尔瓦尔”创建时的名称-值对参数mdl.
“卡尔瓦尔”
数据类型:单|双重的|表格
单
双重的
表格
指定可选的逗号分隔的对名称,值论据。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数名称1,值1,…,名称,值.
的名字
价值
名称1,值1,…,名称,值
ysim =随机(Mdl、Xnew BinomialSize, 50)
“BinomialSize”
BinomialSize
二项分布的试验次数,指定为由逗号分隔的对组成“BinomialSize”和响应长度相同的标量或向量。随机将标量输入展开为与响应大小相同的常量数组。标量输入意味着所有的观察结果有相同的试验次数。
随机
中输出值的含义ysim取决于价值“BinomialSize”.
如果“BinomialSize”是1(默认值),那么输出中的每个值ysim就是成功的概率。
如果“BinomialSize”如果不是1,则输出中的每个值ysim是试验成功的预测数字。
数据类型:单|双重的
抵消
0(大小(Xnew,1))
中每一行的偏移值Xnew,指定为逗号分隔的对,由“抵消”和响应长度相同的标量或向量。随机将标量输入展开为与响应大小相同的常量数组。
“抵消”
请注意,即使指定了“抵消”拟合模型时的名称-值对参数。如果指定“抵消”为了进行拟合,该软件将偏移量作为一个系数值固定为1的附加预测因子。换句话说,拟合公式为
f(μ)=抵消+X*b,
=抵消+X*b
在哪里f为链接函数,μ平均值是多少X*b是预测因子的线性组合吗X这个抵消预测了系数1.
1
模拟响应值,作为数字向量返回。模拟值是在Xnew受随机噪声扰动,其分布由拟合模型给出。中的值ysim是独立的,取决于预测值。对于二项式拟合和泊松拟合,随机生成ysim与指定的分布和不调整任何估计离散。
对于没有随机噪声的预测,使用预测或节日.
节日
预测接受一个包含所有预测变量的输入参数,并给出其预测的置信区间。
节日接受多个输入参数,每个预测器变量有一个输入,这更容易用于从表或数据集数组创建的模型。的节日函数不支持名称-值对参数金宝app“抵消”和“BinomialSize”这个函数uses 0 as the offset value, and the output values are predicted probabilities.
使用说明和限制:
使用saveLearnerForCoder,loadLearnerForCoder,codegen(MATLAB编码器)生成的代码随机函数。通过使用保存一个训练过的模型saveLearnerForCoder.定义一个入口点函数,通过使用loadLearnerForCoder打电话给随机函数。然后使用codegen为入口点函数生成代码。
随机可以返回一个不同的数字序列比MATLAB®如果下列任何一项为真:
输出是非标量的。
输入参数对该分布无效。
这个表格包含关于的参数的注释随机.表中未包含的参数完全支持。金宝app
有关模型对象的使用说明和限制,请参见代码生成的紧致广义线性模型对象。
Xnew必须是单精度或双精度矩阵,或包含数字变量、分类变量或两者的表。
中的行数或观察值Xnew可以是可变大小,但中的列数Xnew必须是固定的。
如果要指定Xnew作为一个表,那么你的模型必须使用一个表训练,你必须确保你的入口点函数的预测:
以数组形式接受数据
从数据输入参数创建一个表,并指定表中的变量名称
把桌子传递给预测
有关此表格工作流的示例,请参见生成代码对表中的数据进行分类.有关在代码生成中使用表的更多信息,请参见表的代码生成(MATLAB编码器)和代码生成的表限制(MATLAB编码器).
名称-值对参数中的名称必须是编译时常量。例如,使用“BinomialSize”生成的代码中的名称-值对参数,包括{coder.Constant(“BinomialSize”),0}在arg游戏的价值codegen(MATLAB编码器).
{coder.Constant(“BinomialSize”),0}
arg游戏
有关详细信息,请参阅代码生成简介.
此函数完全支持GPU阵列。有关更多信息,金宝app请参阅在GPU上运行MATLAB函数(并行计算工具箱).
此函数支持配备GPU数组输入金宝app参数的模型对象。
GeneralizedLinearModel|紧致广义线性模型|预测|节日
이예제의수정된버전이있습니다。사용자가편집한내용을반영하여이예제를여시겠습니까?
다음 MATLAB명령에 해당하는 링크를 클릭했습니다.
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는MATLAB명령을지원하지않습니다。
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系当地办事处