主要内容

sbiosampleerror

根据误差模型对误差进行采样,并对输入数据添加噪声

描述

例子

noisydata= sbiosampleerror (inputdataerrormodelerrorparam使用一个或多个错误模型和错误参数向输入数据添加噪声。

例子

全部折叠

这个例子为一阶反应的放射性衰变模型的模拟数据添加了噪声(或误差): d z d t c x ,在那里x而且z物种和c是正向速率常数。

加载包含放射性衰变模型的示例项目m1

sbioloadprojectradiodecay

模拟模型。

[t, sd,名称]= sbiosimulate (m1);

绘制模拟结果图。

情节(t, sd);传奇(名称,“自动更新”“关闭”);持有

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些物体代表x z。

使用误差参数设置为20的恒定误差模型向仿真结果添加噪声。

noisydata = sbiosampleerror (sd,“不变”, 20);

绘制噪声模拟数据。

情节(t, noisydata);

图中包含一个axes对象。axis对象包含4个line类型的对象。这些物体代表x z。

本例使用函数句柄定义了一个自定义错误模型,并将噪声添加到具有一级反应的放射性衰变模型的模拟数据中${{dz} \over {dt}} = c \cdot x$,在那里x而且z物种,c是正向速率常数。

加载包含放射性衰变模型的示例项目m1

sbioloadprojectradiodecay

假设你有一个简单的自定义误差模型,它有一个标准的均值-零和单位-方差(高斯)正态变量e,仿真结果f,和两个参数p1而且p2$y = f + p1 + p2 * e$

定义一个表示错误模型的函数句柄。

Em = @(y,p1,p2) y+p1+p2*randn(size(y));

模拟模型。

[t, sd,名称]= sbiosimulate (m1);

绘制仿真结果图,并按住图。

情节(t, sd);传奇(名称,“自动更新”“关闭”);持有

使用前面定义的自定义函数对错误进行抽样,其中两个参数分别设置为0.5和30。

noisydata = sbiosampleerror (sd、em {0.5, 30});

绘制噪声模拟数据。

情节(t, noisydata);

还可以对每个状态应用不同的错误模型,该状态为中的列sd.假设您想应用自定义错误模型(新兴市场)到第一列(物种x数据)和比例误差模型到第二列(物种z数据)。

持有noisydata = sbiosampleerror (sd, {em,“比例”30}}, {{0.5,, 0.3});情节(t, sd);传奇(名称,“自动更新”“关闭”);持有情节(t, noisydata);

输入参数

全部折叠

输入数据,指定为SimData对象的向量SimData对象,或数字矩阵。如果它是向量SimData对象时,将错误添加到数据财产。如果它是一个数字矩阵,误差被添加到矩阵的每一列。

错误模型,指定为字符向量、字符串、函数句柄、字符串向量、字符向量的单元格数组,或包含字符向量和函数句柄混合的单元格数组。

如果是字符串向量或单元格数组,则其长度必须与中的列(响应)数量匹配inputdata,将每个误差模型应用于中的对应列inputdata.如果是单个字符向量、字符串或函数句柄,则对中的所有列应用相同的错误模型inputdata

函数句柄的第一个参数必须是模拟结果的矩阵。参数中提供的错误模型的参数errorparam输入参数。函数句柄的输出必须是与第一个输入参数相同大小的矩阵(模拟结果)。

例如,假设您有一个具有标准均值- 0和单位-方差(高斯)正态变量的自定义误差模型e,仿真结果f,和两个参数p1而且p2 y f + p 1 + p 2 e .您可以如下定义相应的函数句柄。

Em = @(y,p1,p2) y+p1+p2*randn(size(y));
在哪里y矩阵的仿真结果和p1而且p2是错误参数。函数句柄的输出必须与y的模拟结果与inputdata输入参数。的参数p1而且p2均在errorparam论点。

有四个内置错误模型。每个模型都使用标准的均值-零和单位-方差(高斯)变量来定义误差e,仿真结果f,以及一两个参数一个而且b.模型是:

  • “不变” y f + 一个 e

  • “比例” y f + b | f | e

  • “组合” y f + 一个 + b | f | e

  • “指数” y f 经验值 一个 e

错误模型参数,指定为标量、向量或单元格数组。如果errormodel“不变”“比例”,或“指数”,然后errorparam指定为数值标量。如果它是“组合”,然后errorparam是否指定为具有两个元素的行向量[b]

如果errormodel那么单元格数组呢errorparam必须是相同长度的单元格数组。换句话说,errorparam必须包含N个元素,其中N是错误模型的数量errormodel.每个元素必须具有对应错误模型的正确参数数量。

例如,假设有三个列inputdata,并且应用了不同的错误模型(常数成比例的,指数带有错误参数的错误模型0.10.2,0.5,分别)到每列,则errormodel而且errorparam必须是包含如下三个元素的单元格数组。

errormodel = {“不变”“比例”“指数”};errorparam = {0.1, 0.2, 0.5};

输出参数

全部折叠

添加了噪声的数据,作为向量返回SimData对象或数值矩阵。如果inputdata是的向量SimData对象,noisydata也是一个向量SimData对象,并将错误添加到inputdata。数据财产。如果inputdata指定为一个矩阵,noisydata是一个矩阵,误差被加到矩阵中的每一列。

版本历史

介绍了R2014a

Baidu
map