主要内容

适合

对象使用SimBiology执行参数估计问题

自从R2021b

描述

例子

fitResults=健康(problemObject)执行参数估计使用模型、数据和定义的选项problemObject并返回结果。

(fitResults,simdataI)=健康(problemObject)还返回模拟数据simdataI使用估计的参数值。如果problemObject.FitFunction“sbiofitmixed”、模拟使用单个参数估计。

(fitResults,simdataI,simdataP)=健康(problemObject)使用总体参数估计也返回仿真结果。这个语法只有在支持金宝appproblemObject.FitFunction“sbiofitmixed”

例子

全部折叠

这个例子展示了如何PK SimBiology模型的参数估计使用一个具体问题具体分析的方法。

加载一个合成数据集。它包含药物血浆浓度数据以中央和周边隔间。

负载(“data10_32R.mat”)

将数据集转换成groupedData对象。

gData = groupedData(数据);gData.Properties。VariableUnits = [”“,“小时”,“毫克/升”,“毫克/升”];

显示数据。

sbiotrellis (gData“ID”,“时间”,(“CentralConc”,“PeripheralConc”),标志=“+”线型=“没有”);

图包含4轴对象。坐标轴对象1标题ID包含2线类型的对象。一个或多个行显示的值只使用这些对象标记代表CentralConc, PeripheralConc。坐标轴对象2标题ID 3包含对象类型的线。一个或多个行显示的值只使用标记轴对象3标题ID 2包含2线类型的对象。一个或多个行显示它的值只使用标记轴对象4是空的。

使用内置的PK库来构建一个两舱制模型与注入剂量和一阶消除。使用configset对象单位转换。

pkmd = PKModelDesign;pkc1 = addCompartment (pkmd,“中央”);pkc1。DosingType =“注入”;pkc1。EliminationType =“linear-clearance”;pkc1。HasResponseVariable = true;pkc2 = addCompartment (pkmd,“边缘”);model2cpt =构造(pkmd);configset = getconfigset (model2cpt);configset.CompileOptions。UnitConversion = true;

假设每个人收到注入剂量= 0时,注入总额为100毫克的速度50毫克/小时。设置不同的给药策略的细节,请参阅剂量SimBiology模型

剂量= sbiodose (“剂量”,“TargetName”,“Drug_Central”);剂量。开始时间= 0;剂量。数量= 100;剂量。率= 50;剂量。AmountUnits =“毫克”;剂量。TimeUnits =“小时”;剂量。RateUnits =“毫克/小时”;

创建一个问题对象。

问题= fitproblem
问题= fitproblem属性:要求:数据:[0 x0 groupedData]估计:[1 x0 estimatedInfo] FitFunction:“sbiofit”模型:[0 x0 SimBiology。模型]ResponseMap [1 x0字符串):可选:剂量:[0 x0 SimBiology。剂量]FunctionName:“汽车”选项:[]ProgressPlot: 0 UseParallel: 0变体:[0 x0 SimBiology。变体]sbiofit选项:ErrorModel:“常数”池:“汽车”SensitivityAnalysis:“汽车”的权重:[]

定义所需的属性的对象。

问题。数据= gData;问题。估计= estimatedInfo ([“日志(中央)”,“日志(外围)”,“12”,“Cl_Central”),InitialValue = [1 1 1 1]);问题。模型= model2cpt;问题。ResponseMap = [“Drug_Central = CentralConc”,“Drug_Peripheral = PeripheralConc”];

定义应用在合适的剂量。

问题。剂量=剂量;

显示估计的进展。

问题。ProgressPlot = true;

符合模型所有的数据集中在一起:也就是说,估计一组所有人通过设置参数财产真正的

问题。池= true;

执行评估使用适合对象的功能。

pooledFit =适合(问题);

图进步lsqnonlin情节包含6轴对象和其他对象类型的uicontrol。坐标轴对象1标题日志可能性,包含迭代包含2线类型的对象,文本。坐标轴对象2标题一阶最优性包含一个类型的对象。坐标轴对象3标题中央,ylabel当前参数值包含一个类型的对象。坐标轴对象4标题外围包含一个类型的对象。坐标轴对象5与标题Q12包含一个类型的对象。坐标轴对象6与标题Cl_Central包含一个类型的对象。

显示估计的参数值。

pooledFit.ParameterEstimates
ans =4×3表名字估计________ _________________ StandardError * * *{“中央”}2.6864 - 1.0644 1.6627 - 0.16569{‘外围’}{“12”}0.44945 0.19943 {‘Cl_Central} 0.78497 - 0.095621

画出拟合结果。

情节(pooledFit);

图包含4轴对象。坐标轴对象1是空的。坐标轴对象2标题3包含4线类型的对象。一个或多个行显示的值只使用标记轴对象3标题2包含4线类型的对象。一个或多个行显示的值只使用标记轴对象4标题1包含4线类型的对象。一个或多个行显示的值只使用标记

估计为每个单独的一组参数,看看参数估计得到改善。

问题。池= false; unpooledFit = fit(problem);

图进步lsqnonlin情节包含11轴对象和其他对象类型的uicontrol uipanel。坐标轴对象1标题日志可能性,包含迭代包含3线类型的对象。坐标轴对象与标题2一阶最优性包含3线类型的对象。坐标轴对象3标题终止条件包含一个文本类型的对象。这些对象代表失败,聚合。坐标轴对象4标题中央,ylabel当前参数值包含3线类型的对象。坐标轴对象5与标题最后估计参数值包含一个直方图类型的对象。坐标轴对象与标题外围6包含3线类型的对象。坐标轴对象7与标题最后估计参数值包含一个直方图类型的对象。坐标轴对象与标题Q12 8包含3线类型的对象。 Axes object 9 with title Final Estimated Parameter Values contains an object of type histogram. Axes object 10 with title Cl_Central contains 3 objects of type line. Axes object 11 with title Final Estimated Parameter Values, ylabel Frequency contains an object of type histogram.

显示估计的参数值。

unpooledFit.ParameterEstimates
ans =4×3表名字估计________ _________________ StandardError * * *{“中央”}1.5619 - 0.36355 1.422 - 0.12334{‘外围’}{“12”}0.47163 0.15196 {‘Cl_Central} 0.5291 - 0.036978
ans =4×3表名字估计________ _________________ StandardError * * *{“中央”}5.3364 - 0.65327 1.8322 - 0.019672{‘外围’}{“12”}0.2764 0.030799 {‘Cl_Central} 0.86035 - 0.026257
ans =4×3表名字估计________ _________________ StandardError * * *{“中央”}5.5632 - 0.37063 1.6657 - 0.038529{‘外围’}{“12”}0.78361 0.058657 {‘Cl_Central} 1.0233 - 0.027311
情节(unpooledFit);

图包含4轴对象。坐标轴对象1是空的。坐标轴对象2标题3包含4线类型的对象。一个或多个行显示的值只使用标记轴对象3标题2包含4线类型的对象。一个或多个行显示的值只使用标记轴对象4标题1包含4线类型的对象。一个或多个行显示的值只使用标记

生成一个阴谋的残差随时间比较集中,未共享健康结果。图显示未共享符合残差小于汇集的健康,如预期。除了比较残差外,其他严格的标准可以用来比较拟合结果。

t = [gData.Time; gData.Time];res_pooled = vertcat (pooledFit.R);res_pooled = res_pooled (:);res_unpooled = vertcat (unpooledFit.R);res_unpooled = res_unpooled (:);图;情节(t, res_pooled“o”MarkerFaceColor =“w”markerEdgeColor =“b”)举行情节(t, res_unpooled“o”MarkerFaceColor =“b”markerEdgeColor =“b”)反射= refline (0,0);%的参考线代表零残留标题(“残差与时间”);包含(“时间”);ylabel (“残差”);传奇([“池”,“未共享”]);

图包含一个坐标轴对象。坐标轴对象标题残差与时间,包含时间,ylabel残差包含3线类型的对象。一个或多个行显示的值只使用这些对象标记代表汇集,未共享。

可以看出,未共享健康占变化由于特定学科研究,而且,在这种情况下,模型更适合数据。然而,汇集适合全民返回参数。作为一种替代方法,如果你想估计全民参数同时考虑个体差异,您可以执行非线性mixed-effects (NLME)估计通过设置problem.FitFunctionsbiofitmixed

problem.FitFunction=“sbiofitmixed”;
NLMEResults =适合(问题);

图包含9轴对象。坐标轴对象1标题θ₁包含一个类型的对象。坐标轴对象与标题2θ包含一个类型的对象。坐标轴对象3标题1包含一个类型的对象。坐标轴对象4标题theta4包含一个类型的对象。坐标轴对象5 1标题Psi indexOf _ 1基线包含一个类型的对象。坐标轴对象6 2标题Psi indexOf _ 2基线包含一个类型的对象。坐标轴对象7标题Psi indexOf 3 _ 3基线包含一个类型的对象。坐标轴对象8与标题Psi indexOf 4 _基线包含一个类型的对象。坐标轴对象9与标题loglikelihood包含一个类型的对象。

显示估计的参数值。

NLMEResults.IndividualParameterEstimates
ans =12×3表________组名估计_____ * * * 1 1.4623{“中央”}{‘外围’}1.5306 0.4587 1 {“12”}1 {‘Cl_Central} 0.53208 - 2{“中央”}1.783 - 2{‘外围’}0.3589 6.6623 - 2 {“12”}2 0.8039 {‘Cl_Central} 3{“中央”}3{‘外围’}4.2844 1.7135 0.54895 {“12”}3 1.0708 {“Cl_Central”}

画出拟合结果。

情节(NLMEResults);

图包含4轴对象。坐标轴对象1是空的。坐标轴对象2标题3包含4线类型的对象。一个或多个行显示的值只使用标记轴对象3标题2包含4线类型的对象。一个或多个行显示的值只使用标记轴对象4标题1包含4线类型的对象。一个或多个行显示的值只使用标记

情节条件加权残差(轧)和个人加权残差(本)的模型预测值。

plotResiduals (NLMEResults“预测”)

图包含2轴对象。坐标轴对象1 ylabel PeripheralConc包含3线类型的对象。一个或多个行显示它的值只使用标记轴对象2 ylabel CentralConc包含3线类型的对象。一个或多个行显示的值只使用标记

输入参数

全部折叠

SimBiology估计问题,指定为一个fitproblem对象。

输出参数

全部折叠

估计的结果,作为一个标量返回OptimResults对象,NLINResults的对象,向量OptimResultsNLINResults对象,或标量NLMEResults对象。

返回的结果对象类型取决于如果你使用problemObject.FitFunction = " sbiofit "problemObject.FitFunction = " sbiofitmixed "

  • 如果FitFunction = " sbiofit "FunctionName = " nlinfit "对象类型,返回的结果NLINResults。对于其他优化函数,返回的对象类型OptimResults

  • 如果FitFunction = " sbiofitmixed "总是,返回的对象类型NLMEResults

当你使用FitFunction = " sbiofit ",该函数返回一个标量结果对象或矢量对象的结果如下。

未共享的合适,功能符合每组分别使用与具体参数,和fitResults结果是一个向量对象与一个为每组结果对象。

池适合,函数执行适合所有个人或团体同时使用相同的参数估计,和fitResults是一个标量结果对象。

如果不指定混合选项CategoryVariableName的值estimatedInfo对象都是<一>,fitResults是一个单一的结果对象。这是相同的行为作为一个集合。

如果不指定混合选项CategoryVariableName的值estimatedInfo对象都是< GroupVariableName >,fitResults结果是一个向量对象。这是相同的行为作为一个未共享。

在所有其他情况下,fitResults是一个标量对象包含估计参数值所指定的不同群体或类别CategoryVariableName

看到房地产有关如何执行一个池,未共享或类别。

当你使用FitFunction = " sbiofitmixed ",函数始终返回一个标量NLMEResults对象。

仿真结果,作为一个向量的返回SimData对象代表仿真结果为每个组(或个人)使用细化参数估计。

美国报道simDataI是包含在美国problemObject.ResponseMap以及任何其他州中列出StatesToLog运行时选项的属性(RuntimeOptions)SimBiology模型problemObject.Model

仿真结果,作为一个向量的返回SimData对象代表仿真结果为每个组(或个人)只使用固定效应估计总体参数的估计。

美国报道simDataP是包含在美国problemObject.ResponseMap以及任何其他州中列出StatesToLog运行时选项的属性(RuntimeOptions)SimBiology模型problemObject.Model

版本历史

介绍了R2021b